My migration from GitHub to Gitea became stalled when I realized that you can tie self-hosted Actions runners to
* Repos (per repo token)
* Orgs
* not to the Pro Account with all repos
If you migrate, you have a parallel setup.
Gitea allows global runners. It's by far less complex. Which is a strength.
To self-host a combined GitHub and Gitea Actions runner, I need to queue jobs. Per repo as well.
I also need to keep the jobs compatible.
To archive this, I use Dagger(.io). My GitHub Action YAML only defines the triggers in GitHub (on push etc.). Dagger works locally, on-prem and in the cloud. It's a compatibility layer that is much more sane than YAML.
With Dagger and a custom queue, it's possible to move away from Actions without much effort. But there is a certain vendor lock-in effect with GitHub Actions.
The other consideration is, that cloud-hosted GitHub Actions runners exist for Linux (AArch64, x86), Windows (same), macOS (x86, Silicon). And they are super cheap.
To get the best out of both worlds:
1. use Dagger where it's possible
2. build a custom combined builder queue
#dagger #cicd #actions #gitea