FWIW, I found them easier to deal wit than github, so will hang tight to see how this plays out.
FWIW, I found them easier to deal wit than github, so will hang tight to see how this plays out.
Nothing they’ve done since they were created has ever moved them in a more open source friendly direction, and they’ve broken a ton of promises both implicit and explicit along the way.
GitHub OTOH has only become more open source friendly (minus the AI stuff, but I suspect Gitlab is no better on that front).
In general, Github still feels like it's built for hobby coders (focusing on simplicity instead of configurability - which doesn't have to be a bad thing) while Gitlab feels like it's built for professional teams from the ground up.
I have never used Github Actions. Can you explain or give some examples what doesn't make sense?
To reuse code, Gitlab CI has simple template files which you can import into your toplevel .gitlab-ci.yml, and you have an inheritance system to derive new jobs from other jobs. That's a very simple and powerful system.
Code reuse in Github works with above mentioned 'actions' where each action seems to be a whole repository of stuff instead of a single file like in Gitlab CI.
Gitlab CI seems to be designed by people who know what they do and what their users need, while Github Actions seems to be designed by architecture astronauts, and has only afterwards and reluctantly been hammered into a shape where it does the things most users expect.
Gitlab CI actually seems like it was made for CI in the first place.
Protected branches and associated secrets. Much cleaner construct on gitlab.
GitHub actions defacto seems to be tracing yaml to compiled JavaScript to hopefully that right source to shell commands.
Gitlab seems to be yaml to shell commands.
Nested projects. Nice midspot between monorepo and access control management.
API. I may be out of date on it but I recall the gitlab apis as pretty sensible. The github apis for administration has a very odd rest/graphql split.
It can also render the complete pipeline config (making it easy to run and debug the problematic parts locally just by copying the relevant parts, even if they're hidden in and include somewhere).
Compare the gitlab UI with phabricator for example. The workflows are mostly a strange mixture of whatever github made up on the back of a napkin and Stakeholder-consultant slop.
Gitlab is open core, (not great but better than nothing) while github is zero open source.
One talks about open source because it's the de facto home of open source. The other is actually open source.