Replies: 1 comment 3 replies
-
Hello @dentuzhik, thank you for reaching us!
Unfortunately, we can't bake every patch version into the images due to maintenance concerns.
I am absolutely agree that running against different Ruby versions on local box and in CI is not acceptable because of version mismatch. It is one more reason why we strongly recommend to switch to
Yep, sorry for that. Repository was temporary blocked because of incorrect moderator configuration. Hope it will never happen again 😄 |
Beta Was this translation helpful? Give feedback.
-
Hey guys!
Updates to Ubuntu VMs on 15.04.2021 broke our CI builds because suddenly a version of ruby which we relied on has been completely gone from the VMs. We are quite sure now that the latest version has been bumped to
2.7.3
, without keeping2.7.2
available.This can be also somewhat seen here:
b20eda7#diff-6be9f9ce03ba57ca01e4ae937d5c2bb04893520fdf391ea87eb46acbc43ecdc5L202-R206
Now we know that "recommended" way of consuming ruby is to refer to
2.7
or2.7.x
version, to avoid locking on the patch, however in our place it's not practically possible, since we also have a fleet of self-hosted MacOS machines where we use rbenv, which does not really understand semver and requires us provide patches.We could also keep precise numbers only on mac and
rbenv
, but send “open range” to GH, however this could create version mismatches, where ubuntu runners would have likely higher patch versions than MacOS.So far it seems to us that occasional failures are better that version mismatches. This means that, unfortunately this issue will happen again for us, because we have no way to tell how and when do you deploy updates to virtual env.
There's an "alternative setup" which could provide us an "open version" on the self-hosted runners, using a fresh ruby/setup-ruby action, however it's considerably more cumbersome to setup and maintain comparing to rbenv (especialy considering combo of X86 and M1 runners).
This issue gave us roughly a 2 hour downtime on our CI to identify root cause of the issue and update all the consumers which rely on that version of ruby. I am closely watching this repository and I might have missed some announcement, but I honestly couldn't find anything post-factum related specifically to ruby, so I assume it was done just as "planned image maintenance".
One thing which could help us - is to reference exact snapshot of Ubuntu VM, without any eager updates being pushed (currently we use ubuntu-latest). At the time of writing, there's no real way we know of to provide such a strict lock. Neither docs refer that.
https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
Considering that this is not the first time that eager updates to VMs break consumer CI (I have seen a few other discussions in this repo), we would be glad to an overhead of a full control on when/how to update for increased stability.
Most recent one we have been affected by is this: #2420
Do you have any suggestions for us on how to avoid such issues in the future?
One more thing which made this a little bit worse, that all the discussions and issue creation was temporarily locked on this repository. I don't know whether it was a mistake on the repo config side or a "planned lock", but without any possible place to report or get support, or get any way of realtime status of VM upgrades, it felt quite frustrating.
Or is there any way to monitor VM updates or contact GH in such cases without going through this repo?
We are on Github Enterpirse Cloud plan, if that makes a difference.
I hope it didn't sound too negative, we are just trying to mitigate future issues, so any advices are appreciated :)
Beta Was this translation helpful? Give feedback.
All reactions