-
Notifications
You must be signed in to change notification settings - Fork 5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ci: pin image versions used in CI so it remains deterministic #28779
Conversation
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
Builds ready [285f0d8]
Page Load Metrics (1868 ± 135 ms)
Bundle size diffs
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We've gone back and forth on this a few times. We used to pin browser versions as well, but the team decided at one point that auto-updating made it easier to keep up (and to detect issues with newer browser versions). I see that the browser images are still tags that we'd expect to be updated over time with OS updates.
Still, no objection to pinning, I don't think this is too onerous to keep up with if you see the moving target as causing problems.
I think it makes sense for our browser versions to auto update because if the extension doesn't work properly on a recent/future browser version it is going to (soon) be failing in production as well [1]. These types of failures are runtime bugs that must be fixed ASAP. I'm just firmly against having our CI infrastructure changing out from under us; when the CI image is updated the tooling (i.e., node version) is already going to be many versions old anyway; there is just no urgency, so there is no need to create a "CI IS BROKEN!" panic if it auto-updates and things fail on us. Of course [1] We could automate updating our pinned version at every release of a new browser build, Dependabot style. We'd then get the best of both worlds: CI determinism and early detections of browser incompatibilities. |
To clarify this part, I was pointing out that this problem remained with the other executors. The Node version is fixed for them (at least to the minor version), but OS updates would still sporadically be made. Really we need a |
Ah, I hadn't even thought about that. Digging into https://circleci.com/developer/images/image/cimg/node its not clear if they'll retag a fully-versioned (e.g., Anyway, you brought up some points I hadn't thought about. I'll mull on it over the long weekend. |
We shouldn't use image versions in CI that can update all willy-nilly. This will result in non-deterministic test runs.
ubuntu-2404:2024.05.1
is currently the same asubuntu-2404:2024.05.1
(see https://discuss.circleci.com/t/new-ubuntu-24-04-linux-machine-executor-image/51018#linux-1)