Replies: 7 comments 12 replies
-
A better, future-proof, solution would be for GHA users to avoid relying on any software being installed whatsoever, except for what is supported by GHA itself. Create a container which contains everything you need, then specify that your job runs in your container. That way you have everything you need, with the exact versions you've built in, and you can count on those tools being present no matter where your job runs. I've been recommending that GHA users at my employer do this for a couple of years, now. |
Beta Was this translation helpful? Give feedback.
-
@naikrovek wrote:
How would this be "future-proof"? It would break every time an action (whether newly added to your workflow or, via maintenance, needs a new tool or a new version of a tool maintained) needs new support. What do you mean by "supported by GHA itself?" The GitHub Hosted Action Runners are VMs that have over 18 GB of software and libraries installed or cached. The Runner Set Docker image is a little over 1 GB, and obviously missing a ton of support relative to the GitHub Hosted Runners. I think there is a lot of value in having a smaller image that can be more quickly downloaded, but I also think a small image could cover more than 80% of the use cases, the way the Summerwind Runner Docker Image did at under 500 MB.
We went down that road briefly. The problem is that there is a large collection of publicly available actions that have been written with the expectation they will be running on GitHub Hosted Action Runners and naïvely expect those tools to be installed, to the extent that they do not document (and the maintainers often appear to be unaware) of what tools they are relying on, so we cannot just read the documentation and install the appropriate software. For example the setup-python action on Ubuntu requires that the The availability of powerful, free, well-documented, and well-maintained actions is an important part of the overall value of the GitHub Action feature. The fact that the officially supported and maintained runner image for self-hosting cannot run many (if not most) of them is a significant hinderance. Having to build and maintain your own runner image requires the kind of needless duplication of effort that the entire open source movement was created to alleviate. |
Beta Was this translation helpful? Give feedback.
-
At the very least, make a few different runner images in addition to the minimal one. Something similar to the Summerwind image as an additionally supported runner image would be really nice. The effort involved in having to maintain custom docker images to do anything is a really big annoyance. A lot of organizations that use GitHub Actions are not set up to do this, they just rely on pulling a ready-to-go image. In my own organization, this issue is literally the one thing that's keeping us on the old self-hosted runner image setup and preventing us from migrating to ARC. We don't want to be maintaining our own docker images. |
Beta Was this translation helpful? Give feedback.
-
I can understand the request of installing at least some basic software. What puzzles me the most is that marketplace actions are relying on software being installed on a runner, but on the minimal images is neither curl, wget nor git installed. so most actions for setting up other packages like node can not run bc theses packages are missing. We needed to create our own images: FROM ghcr.io/actions/actions-runner:2.314.1
RUN sudo apt-get update && sudo apt-get install -y \
jq unzip git curl But now need to track the releases of the actions-runner docker images. |
Beta Was this translation helpful? Give feedback.
-
Hey team! Any ideas on this? We are migrating to the new Scaleset architecture and this is being an issue. While migrating we have workflows failing due to the tools missing. Sorry for the ping btw. |
Beta Was this translation helpful? Give feedback.
-
The absence of essential software (which are available in the Summerwind runner image) is increasing the workload during the migration. Unfortunately, things aren't backward compatible. |
Beta Was this translation helpful? Give feedback.
-
for some context, github adding tools to their runner: actions/runner#3056 |
Beta Was this translation helpful? Give feedback.
-
Currently the Runner Set runner image ships with no more packages than are necessary. This makes it extremely awkward to develop workflows (especially shared and Marketplace workflows) that run on both GitHub hosted runners and self-hosted runners, as you have to have the workflows install commands which are preinstalled on the GitHub hosted runners.
Obviously you want to slim the image down from the 20 GB of the GitHub hosted image to something that can be pulled all the time, and I'm not arguing for full feature parity, but please reconsider installing some extremely commonly used tools, such as
It just seems insane on the face of it that we have to install
git
in an Official GitHub action runner image. Being able to retrieve files viacurl
andwget
are so basic to bootstrapping anything else that the only argument I can see against including them is that they duplicate each other. Nevertheless, both are so popular (and small) that it seems needlessly dogmatic not to include them both.I estimate that including just these 3 extra tools will cover 80% of the issues. I would prefer you also include
jq
, which, along with the other 3, would cover nearly all of my workflows, but I agree is not so basic.The argument that we can build our own image neglects the fact that any marketplace or shared workflow that wants to be able to run on a self-hosted Runner Set must assume that only the tools on the official GitHub images are present. It also neglects the significant effort it takes to build, publish, and keep up-to-date a custom image.
I think you should seriously consider installing all the tools installed on the legacy open source self-hosted runner image. That way workflow writers will only have to deal with 2 sets of preinstalled software rather than 3.
Beta Was this translation helpful? Give feedback.
All reactions