actions / runner

The Runner for GitHub Actions :rocket:
https://github.com/features/actions
MIT License
4.77k stars 932 forks source link

No way to choose a specific runner version in GitHub hosted runners #3447

Closed MarkCallow closed 1 week ago

MarkCallow commented 2 weeks ago

Describe the bug GitHub keeps releasing new versions of the runner images that break users' builds for various reasons. Sometimes users can fix or workaround the issues in their own code. Other times that is not possible. When it is not possible it is important to be able to choose the last working (for one's project) runner image.

There is no way to do that for GitHub hosted runners.

The particular issue I have right now is that the runner's Python has been updated to a version that has removed a feature used by a package, cffi, used in building my software's Python interface. There appears to be nothing I can do to workaround this except remove the Python interface build which is unacceptable. So I have to wait until cffi is fixed and released. If I could tell the workflow to use the previous runner image version I could continue with my work without interruption and revert that change when the fixed cffi is released.

To Reproduce Steps to reproduce the behavior:

Read the docs and see there is no way.

Expected behavior You need to be able to specify a particular runner version in runs-on.

Runner Version and Platform

In this instance windows-2022 but new images breaking builds could happen on any platform and runner version.

OS of the machine running the runner? OSX/Windows/Linux/... Windows

What's not working?

n/a

Job Log Output

n/a

Runner and Worker's Diagnostic Logs

n/a

MarkCallow commented 2 weeks ago

The messages from @rickdoq and @KrissV2 seem to me extremely suspicious having identical wording and asking me to install something when the problem isn't even on my machine. I advise anyone else reading them to not visit the link and definitely not install anything.

GitHub has made it impossible for me to report this possible abuse. It seems the repo maintainers will have to do it.

nebuk89 commented 1 week ago

Hey! Thanks for this feedback, right now we are only supporting one version of our images at a time. As part of our work to support customers 'customizing' their images (https://github.com/github/roadmap/issues/826) we will allow folks to run a workflow and 'snapshot' the end state.

That means you could run a workflow with 'nothing' and snapshot the state of our current image and pin to it for a period of time :) if you wanted. I would say that this feature is our general plan to address the types of challenge you are facing rather than supporting more images. Keep an eye on the roadmap for updates around this one <3

MarkCallow commented 1 week ago

@nebuk89, Thank you for the information. I do not see how the snapshots you propose will help in the situation I described unless I snapshot every runner image just in case the next one introduces a breaking change. If I wait until that breaking change it will be too late to snapshot the image that had been working.

Supporting just previous and current images will help in the situation I describe and most similar situations. Note that if updates are happening frequently it may be necessary to support the two previous images. I don't see any need for a long tail of old images.