Hacker News new | ask | show | jobs
by jennyyang 1962 days ago
Having never used Gitlab, is there any advantage over Github?
4 comments

Been using it since 2016, and I would say the advantages are mostly related to their DevOps features - there are integrations with k8s, SentryIO, and Prometheus to help you with operations.

Their CI/CD pipelines also seem a bit more refined than GitHub actions - maybe it is just a maturity thing though? That could also just be my inexperience with GitHub Actions.

I think there are also some project management differences in how the items are setup. GitLab, at the premium tier, has epics where I believe GitHub doesn't any distinction.

That being said I believe you kind of trade features with GitHub depending on how much you pay for each platform. Both are pretty good products as far as I am concerned.

> Their CI/CD pipelines also seem a bit more refined than GitHub actions - maybe it is just a maturity thing though? That could also just be my inexperience with GitHub Actions.

My experience with CI/CD is that github action's is stellar, while gitlab-ci is a huge mess of features that don't compose well. For instance, in gitlab-ci, you can specify that the job should only run when a specific file changes with `only:rules`, very useful for monorepo setups. Separately, you can specify explicit dependencies in your steps to construct a sort of DAG of your steps with `needs`. Those two features independently work great, but when used together, things become very weird, down to causing YAML parsing errors...

Another similar experience: Child pipelines are a mess. Child pipelines can't depend on the parent steps, can't download artifacts from the parent steps. Similarly, the parent can't access the child pipeline' artifact.

CI has some fun interaction with bot accounts. By fun, I've had MRs started by bot accounts running in weird CI contexts where some environment variables were not set for whatever reason.

Overall, gitlab-ci feels... poor. Github-actions, on the other hand, has been a joy to use, and is a lot less surprising. Most features tend to be thoughtfully designed and work well together. I can't give many examples here as it's hard to point out things that just work, but I've done extensive work with both gitlab-ci and a github actions and I certainly prefer working with github actions any time of day.

I always wonder how YAML became so popular for build systems. It’s like having a really, really crappy programming language for config.
You can self-host GitLab which may be an advantage for some. If you like the colour purple, there's that too!
You can self-host GitHub as well if I remember if you pay for the licenses. Gitlab does have an open source free version but without all the features.
You can also self-host Github Enterprise I believe.
Self hosted GitHub Enterprise does not allow for public access. So you can't expose your opensource projects to the world using your own instance.
GitHub Enterprise is designed for self-hosting.
At the time, a couple of years ago, better management of issues over a large number of projects (dozens) and Gitlab CI.

GitHub has caught on up on a few things since then.

I've used both and I think Github lags behind on CI/CD & Project Management features comparing to Gitlab even today.