Hacker News new | past | comments | ask | show | jobs | submit login

I am not pleased with Microsoft. Yes, there have been some improvements. But GitHub Actions is very half baked, yet the bean counters at my company are asking "why do we pay for buildkite?". It feels like they are using the same playbook as MS Teams.



GitHub Actions seems turing complete to me (meaning, I can do anything I can dream up)


To be trite; Jenkins is then equivalent?

CSS can famously be made turing complete.

https://notlaura.com/is-css-turing-complete/


It invokes arbitrary shell scripts, so who cares?


What’s half baked about it?


forgive me if my information is outdated, but:

- You can't retry a failed action, be it manually in the UI or automatically under certain conditions.

- workflows have a pretty low limit for number of jobs - 250 or so. We already split our rspec tests across 300 parallel jobs.

- the UX is full of jank. If I click into an in-progress jobs I often can't see prior logs for the in-progress step until the step completes.

There are also some annoyances that aren't really half-baked, but annoying for Monorepos:

- workflows have to be defined under the .github folder. This means workflows can't be collocated with the code they relate to.

- workflows can't be generated dynamically. At best, you can dynamically trigger predefined workflows, but I don't think they get associated with the PR that triggered them. This makes patterns like dynamically dispatching workflows based on, say, a bazel query for affected rdeps more challenging, if not entirely infeasible.


You can retry failed jobs these days (for awhile now, at least a year? I can't remember).

Workflows can also be (sort of, depending on what you mean?) dynamically generated by using tojson and fromjson to feed the output of one job into a matrix.

Full disclosure, I work at Microsoft but nothing to do with GitHub.


One area is its reusability story. Last I looked you couldn't create reusable actions in the same repo you want to call them from, they have to be in an external repo. For quite a while, private reusable actions were an Enterprise-only feature, but that may have been lifted now. The ability to reuse particular jobs is also missing, and communication among jobs is limited to variables after the fact. You can only use success or failure states to trigger other jobs, you can't pass values.


> Last I looked you couldn't create reusable actions in the same repo you want to call them from, they have to be in an external repo.

I'm not sure if/when this changed, but you can definitely do this now.

> You can only use success or failure states to trigger other jobs, you can't pass values.

This is also not true: you can pipe environment variables to $GITHUB_OUTPUT which can be referenced by future jobs.

If anything, the main issue with GitHub Actions is that it's confusing, and the docs don't make it easy to understand how to do things at a high level.


Interesting, I'm _extremely_ happy with Github Actions. But I have pretty basic needs, admittedly.

You mention buildkite as something you think is a lot better than GH Actions. I'm curious if you've also used the Gitlab equivalent and can compare (I haven't, really).


I would not not say buildkite is better, per se. I'd say it's more mature and much more flexible. Buildkite is easily "programmable" in a way that GHA is not. That flexibility is important for advanced/large scale use cases.

I've not tried Gitlab.


I would still ask why would you pay for Buildkite.

Github Actions might not be the best but so is Buildkite. It's not exactly strictly better in every way.

Having used all 3 mentioned, it'd be Gitlab > Github > Buildkite for CI/CD for me.

Github wins at least by the sheer community support. Every vendor has an action.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: