Why GitHub Actions is the Internet Explorer of CI, and why Buildkite offers a better path forward for teams that care about developer experience.
I’ve the impression that it’s moving the problem to another vendor instead of solving it. Not exactly sure how to feel on this topic.
My work uses Azure Dev Ops because it’s “free”, I assume it’s effectively just GitHub actions, but without the AI (because no one has updated it in the last 5 years)?
If so, I can agree the agents are awful.
I agree with everything he said, but I’m currently living in the simple, honest truth of God’s own “bash” just like he describes and I’m loving it. Maybe someday I won’t. Maybe someday will be soon. Maybe my bash scripts are horrible nightmare fuel. But they’re also my children. I love them. Even the ugly ones.
I do indeed “have 800 lines of bash that reimplements job parallelism with wait and PID files, has its own retry logic built on a for loop and sleep, and parses its own output to determine success or failure.” I do suspect the script is self-aware. This pleases me. I will bend to its desires. If there comes a time when it no longer desires to perform CI for me, I will respect its wishes.
Sounds about right.
I’m using GitHub actions at work because this place is extremely dysfunctional, and I can just add GitHub actions without it being a whole “research spike planning meeting impact analysis” six week journey.
I took it from “there are absolutely no checks and Bob broke the environment because he pushed up a change that’s just invalid syntax” to… well, I couldn’t make it block the build on failures but at least now when Bob breaks it again I can point to the big red X and ask why he merged with an error.
Well, I’m in that Nix shop category. For example, I run tests for my OSS project using lots of Python versions. There’s no need to use a Github Actions matrix for that - Nix does it more efficiently. Doesn’t even require containers or VMs. And the whole setup runs exactly the same locally, on Github Actions, or on Garnix. (But Garnix has better Nix caching than other CI runners, so that’s what I use.)
TLDR; people are idiots. Dependencies are stealing your data. Write your own CI and stop being a lazy fuck.
Im not sure about the CI solution they are recommending, but I do agree there are some sharp edges to GH Actions. Its not the greatest at logs and had hidden issues all over the place.
This story alone was enough to cause me to abandon GitHub actions permanently. I’d have easily gotten bitten by that had I expanded CI to the extent that these gigantic companies are using it.
Ironically, I am one of these people building get up action CI pipelines that automate large multi-service multi-team deployments across different cloud vendors and regions.
It’s all a bit of a pain in the ass and. Actions don’t really provide many of the nice controls and safety guarantees we would want.
However, GitHub actions is relatively straightforward to implement and relatively easy to operate.
It’s just very easy for you to foot gun







