Currently hosting the runner on e.g. FreeBSD or custom embedded systems is not supported (or even possible).
It's because GitHub Actions is rebranded Azure Pipelines.
That a team at GitHub has been given a pile of Microsoft authored code is honestly much more concerning. They don't seem to understand it in its entirety either.
```
else if (value.Contains("Microsoft.Azure.DevOps"))
{
m_typeName = value.Replace("Microsoft.Azure.DevOps", "GitHub");
m_typeName = m_typeName.Substring(0, m_typeName.IndexOf(",")) + ", Sdk";
}
```And yet it is still half baked. We prepared for this with internally shared docs and the branch built in private for a while, but still had to roll back yesterday because the scheduler reverted to putting jobs wherever it pleased (including on ephemeral runners that already have a job) and randomly cancels large sets of jobs too.
I have been of the opinion that investing into GH Actions at this stage is purely sunken cost (at my org), and I'm not moving until the team behind this thing ships something that doesn't break half the time. These have been seriously frustrating months, because no amount of working around this messy code[1] made of 5 layers of MS style .NET (seriously, deleting a directory goes 5 layers deep in the call stack) will ever produce a stable product. They don't even know their own code base that well, when they first attempted ephemeral runners with `--once` it turned out the thing they produced could never work (because the server-side scheduler loves pipelining jobs to machines and failing miserably when these disappear, job times out after 20 minute of waiting type)
If we hard reject actions, we’ll probably end up with the prior status quo: Jenkins.
We'd love to look into your specific case if you want shoot me an email: thejoebourneidentity@github.com
AFAIK, there has been no communication/acknowledgement of this as an issue. It makes it hard to decide to pick GHCR as a registry of choice.
Also, we have some useful Ansible scripts that I might share if there is interest
Happy to answer any questions.
The biggest challenge has been the many GH Actions service outages/impacts. We're working on moving to self hosted runners to mitigate this.
Incoming shameless plug; if you don’t have to handle the hosting runners, but still to reap the benefits of having proper hardware(close to the metal). Check out BuildJet for GitHub actions - 2x the speed for half the price. Easy to install and easy to revert.
[1] https://github.com/actions/runner/pull/660 [2] https://buildjet.com/for-github-actions
I can say we're less than half the price, because we focus solely on dedicated hardware and dedicated compute. We're working onworking on pay-for-what-you-use as we speak, and this issue finally getting resolved has generated work for me this weekend.
Does it support nested KVM, e.g. for running Android espresso / emulator tests?
Looking into setting up self-hosted runners has been on my todo list since the first day of using GHA; will definitely check out your service soon.
However, GitHub Enterprise admins may want to take caution - some users have reported that the changes are not currently compatible https://github.com/actions/runner/pull/660
But, these competing offerings between Azure and GitHub have been really confusing to follow. Especially since folks are pointing out that GitHub Actions is partly Azure DevOps under the hood. It just seems like a complicated branding play because some people will refuse to use an Azure service but will gladly use a GitHub service still owned by Microsoft?
Azure Codespaces was rebranded at the 11th hour before launch to Github Codespaces and moved almost entirely to the Github org and Azure DevOps was never given access unlike original announced plans under the Azure brand.
Rumors have been swirling for a while now (including when bharry, the VP whose kingdom was Azure DevOps, retired three years ago) that Azure DevOps is on the slow decline to some sort of chopping block and Microsoft will replace it entirely with Github eventually. There are rumors that even "deeply private" teams you wouldn't expect to move from Azure DevOps to Github internally at Microsoft have already migrated. (Certainly a lot of well known Windows Developers have much more active "Activity Indicators" on Github these days and it isn't necessarily entirely accountable by all the known public repos like Calculator, Terminal, etc and public facing samples projects nor that all of their documentation repos have obviously moved to Github.)
It would be wonderful to get an actual definitive and official statement from Microsoft, even if "eventually" when a migration will happen is still "years away" (which is presumably why they are afraid to give a statement yet, if it's still too far down the roadmap). That would make it easier today for some of us to start making cases to our teams that migrating voluntarily today to Github would be good for us. (Make the debate more than just "I want Codespaces" or "I want Github's dependency scanners" but also "Microsoft suggests it".)
My company just competed the migration from github to gitlab and, while it's not perfect, there's a lot to like on gitlab.
I personally find Actions to be a far better product than GitLab CI and we're moving all our CI from a mix of Circle/Jenkins to Actions.
You can only imagine our follow-up meetings about the fact that we had a fleet of 15 c5a.2xlarge instances and still half of the developers were waiting up to 20 minutes for an instance to go online.
The worst part? The jobs don't clean up -- probably to allow for caching. We ran into into disk space issues regularly enough for it to force us to make the spot instances commit harakiri after 2 days.
GitHub are a cool concept and we'll probably stick with them. But their quality is just bad. There's that .NET runner and it feels like it's so massively different from anything GitHub-like you could imagine .. almost as if it's a whitelabel program they licensed or like it's the result of a 4 week contract work. Simply bad.
Ya, this helps with a specific build cache scenario I use, A workaround if you want it to cleanup is to put `rm -rf "${{ github.workspace }}"` at the end of your workflow.
I wish GitHub copied that feature from GitLab too!
I've been playing about with this and it seems to work quite well. Startup latency is quite high, and it's one pod-per-job (I think), but seems pretty flexible.
I'd really prefer if GH made and managed the K8s operator (e.g. the most popular infra provisioning tool) themselves.
Here's a link: https://duckduckgo.com/?q=github+actions+self+hosted+runners
I haven't used it myself so I can't speak to how well it works.
I don't have any affection for aws or gcp either, their attempt to dominate as de facto infrastructure and software provider is scary.
We don't need github actions. Spinning up machines that run cook books that can do anything, even at scale is ultimately more flexible and platform agnostic. If that's time consuming to make it work at scale, providers dedicated to that are out there.
My main gripe with it that it has the same effect as MS Teams: Execs see that a new product enters the market, with a vendor they already have agreements with, and it's either bundled in for free or relatively cheap. Being the right solution for the job has already lost at that point.
This is likely because they modeled the jobs as one-per-job-def-and-commit, so they don't have a UX to show two.
This is a security blind spot, since you can do something naughty in a job, then rerun it and the logs are no longer accessible.
I've seen my fair share of CI systems (AppVeyor, CircleCI, GitLab, GitHub, TC, Jenkins, etc) and I'd argue that the GitLab CI is the best of all the ones I've seen:
- great syntax (it's YAML like most others but somewhat easy to organize well with great documentation)
- Fantastic documentation
- Unparalleled flexibility
- Unsurprising operation (things generally work as you'd expect)
- The ability to clear your build runner cache (Just ran into the inability to do this with CircleCI again today)
That said competition is a good thing so in general I'm glad to see this finally supported by GHA and dig into it over the weekend. GHA is making a lot of really good sustainable moves in the space and keeping the field open (their marketplace is the best) so I'm all for it.
I run SurplusCI[4] which does what you'd think (runs these runners in VMs) so getting this on-demand runners working happens bit top-of-mind, right now I only offer dedicated runners which are cheaper but of course aren't as cheap as on-demand (depending on usage).
Speaking of competition, just learned of a competitor here on HN in BuildJet[5], so if you don't want to manage your own runners check them out as well, unlike SurplusCI they actually offer to-the-minute on-demand runners, and the onboarding process looks way easier.
[EDIT] - Just to say, the list above is absolutely NOT the full list of platforms GitLab Runner supports -- it's pretty insane how many directions the community and GL have gone in. The Docker Machine integration (they maintain a fork) actually means you could run your single-use-machines on Scaleway or Hetzner easily as well, no need to muss or fuss with ASGs or k8s.
[0]: https://docs.gitlab.com/runner/configuration/runner_autoscal...
[1]: https://docs.gitlab.com/runner/configuration/runner_autoscal...
[2]: https://docs.gitlab.com/runner/executors/kubernetes.html
[3]: https://docs.gitlab.com/runner/executors/custom_examples/lxd...