Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

GitHub Actions runners are hard to self-host.

The runner configuration and registration process is unnecessarily byzantine. [1]

They can't cancel jobs cleanly. [2]

There are consistency problems everywhere. [3]

Their own documentations describes horrible things unless you use runners in JIT mode. Though JIT runners are not always removed after exit.

If there is a worse self-hosted CI runner, I haven't yet met it.

[1] https://docs.github.com/en/actions/how-tos/manage-runners/se...

[2] https://github.com/orgs/community/discussions/26311

[3] https://github.com/orgs/community/discussions/62365





And if you want any concurrency at all, you need 1 runner registration per concurrent job. And each runner needs its own user. And each runner requires a full and separate copy of the runner software, which is large (hundreds of megs) and self-updates.

You don't need your own user.

The rest is correct. (Though you can hardlink the installation.) And you can disable self-update, though it does it by default.


Ah right, I've forgotten because I'm using a multi-user strategy and a patched version of the runner at this point anyway. The config directory for each runner is normally based on its install path (insane), something like that?

The config directory based on the install directory, yes.

To be fair, running multiple copies of a service isn't that common.

E.g. if you wanted to run multiple copies of PostgreSQL you can't just do a vanilla install.


Hard-linking and running concurrent self-updates, sounds like a recipe for disaster.

And they are even on their third (fourth?) from-scratch rewrite of their agent server. When will they get it right? (Rhetorical question)

Yet it works perfectly which forgejo/gitea (uses the act runner)

I am developing a self-hosted solution for this [1]. It’s true that it’s somewhat of a pain but JIT runners allow a lot of flexibility that we don’t find elsewhere.

[1] https://runs-on.com


I did something very similar.

Create/start/stop/terminate EC2.

https://github.com/redoapp/fast-actions-runner-ec2


In my experience even with runs-on it is a bit painful with runner cancellations.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: