-
Notifications
You must be signed in to change notification settings - Fork 989
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
Option to limit runner to a particular run or job #620
Comments
It would be invaluable for us as well. Right now we have to maintain a "garbage collector" lambda which kills runners older than X hours if there are zombies runners. |
Cross-linking the discussion: community/community#19784 |
I didn't find this issue when searching, probably due to the language used in this issue. Please see also: Tie a specific workflow job to a specific ephemeral runner via labels for a more detailed explanation of the problem this solves. |
Without this it's basically impossible to use Edit: another solution would be: unconditionally terminate the instance when you get a |
I agree with this, and would like to mention the experience that I've had so far trying to work with the JIT runner feature. My first approach was:
In this approach, instead of matching up job IDs to runner IDs (which is currently not supported), we spawn N jobs for N runners and any runner can take any job. So the total count of But this approach is unreliable because:
I thought of a solution for these issues, but it is prohibitively complicated:
I wonder if the GitHub team had a different use case in mind when designing jit runners? The current jit design has led me to a pretty complicated design in order to make it work reliably for my use case, and I wonder if I am missing something obvious in how jit runners are supposed to be used. I think the
|
I also agree we need Service support, never built a full autoscaler myself.
This doesn't apply to actions/runner, that's an implementation detail of the runner I have written from scratch. There are (internal) actions apis that are not covered by any rate limit I'm aware of.
|
I landed back here again. Does the GitHub runner team have an update? Would this be something that you would consider? |
Is someone from github still reading this? I am also interested in this feature request. In addition to the reasons mentioned by the previous posters, even within a set of uniform runners, there can be per-runner cache affinity: in build systems, the snapshot of post-submit successful build provides a great cache seed for an incremental pre-submit test run targeting the same branch. Exploiting this requires knowing something about the job (eg. the branch it is targeting) so we can setup the right snapshot before kicking off the agent. |
Describe the enhancement
In addition to supporting the
--once
option (#510), it would be useful if a runner could be limited to a specific run or job, exiting once this job is completed (or cancelled or not otherwise queued).A typical use case would be for autoscaling: either via a webhook or polling the workflow runs API, i would start up the necessary number of workers for the jobs/runs.
Code Snippet
Additional information
Similar to the Buildkite
--acquire-job
option.The text was updated successfully, but these errors were encountered: