You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It is now with mixed feelings that I present an idea for a feature: Imagine you have a basic PHP website, which is an "admin control panel", that has a button. If you press the button Github Actions switches between self-hosted runners and GitHub hosted runners. In real-time.
Also, the webpage includes backend scripts which query the GitHub API. When you have billing minutes remaining, it uses GitHub hosted runners. After billing minutes have been depleted, it switches to self-hosted runners "instantly". You don't need to re-run Terraform.
Another criterion: if many workflows are in a queued state, it switches to self-hosted runners. If queues are empty or not busy, it switches back to GitHub hosted runners.
I have implemented this in production. Let me know if anyone is interested in seeing the code.
The unexpected problem is that GitHub does not behave consistently, and so the entire feature-set is questionable.
Billing minutes. Regardless if you have remaining billing minutes or not, GitHub queues might become slow or stall while using GitHub hosted runners.
Queues. The statistics about queues are not reliable. GitHub does not always count queued workflows correctly, certain jobs might be stuck in queued state.
If a decision threshold is set to 5 queued workflows (for example) it means that up to 5 workflows will be queued, before switching to self-hosted runners. Which is 5 too many. Since those users must wait.
So in the end maybe it's not worthwhile. But being able to manually switch between runner hosting is still an interesting feature.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
It is now with mixed feelings that I present an idea for a feature: Imagine you have a basic PHP website, which is an "admin control panel", that has a button. If you press the button Github Actions switches between self-hosted runners and GitHub hosted runners. In real-time.
Also, the webpage includes backend scripts which query the GitHub API. When you have billing minutes remaining, it uses GitHub hosted runners. After billing minutes have been depleted, it switches to self-hosted runners "instantly". You don't need to re-run Terraform.
Another criterion: if many workflows are in a queued state, it switches to self-hosted runners. If queues are empty or not busy, it switches back to GitHub hosted runners.
I have implemented this in production. Let me know if anyone is interested in seeing the code.
The unexpected problem is that GitHub does not behave consistently, and so the entire feature-set is questionable.
Billing minutes. Regardless if you have remaining billing minutes or not, GitHub queues might become slow or stall while using GitHub hosted runners.
Queues. The statistics about queues are not reliable. GitHub does not always count queued workflows correctly, certain jobs might be stuck in queued state.
If a decision threshold is set to 5 queued workflows (for example) it means that up to 5 workflows will be queued, before switching to self-hosted runners. Which is 5 too many. Since those users must wait.
So in the end maybe it's not worthwhile. But being able to manually switch between runner hosting is still an interesting feature.
Beta Was this translation helpful? Give feedback.
All reactions