← Back to context

Comment by otterley

18 hours ago

What’s so much better about it? I use both and I don’t see significant differences, but I’m happy to be enlightened.

It has a wider feature set and is just generally easier to use. When I had to set up GHA I was constantly surprised with how hard some very basic things were that were trivial with GitLab CI.

GHA was based on Azure Actions, which was never intended as a CI system nor meant to be used in a context where actions could be malicious. So it's the wrong tool for the job that had to be adapted to fit another use case, straying from its original design principles to make it work.

  • Thanks for responding, but unfortunately it’s still too vague to agree or disagree with.

> What’s so much better about it?

It's so trivial to put together any CICD pipeline that it barely registers as a skill you need to develop. All jobs run on containers you control, you specify the scripts you want to run in each job (e.g., npm test), and done. For standard pipelines you don't even bother to set precedence and fan-out/fan-in because if you set your stages as the default stages then that's already done for you.

Also nice, GitLab provides terraform providers for it's CICD infrastructure.

GitHub Actions in comparison is a god-awful mess that has only parallel in Azure YAML Pipelines, another abomination that should be used as a punishment instead of a production system.

Parent child pipelines

Shared pipelines across multiple projects

rules: have far more flexibility than githubs if:

GitLab is very easy to fan out CI/CD runners on your own k8s infra.