3 ms·
I have used Gitlab CI basically daily for over 5 years and it makes sense. I would need to think hard to come up with something that seems fundamentally wrong.
by usr1106 2y ago
I have used Gitlab CI basically daily for over 5 years and it makes sense. I would need to think hard to come up with something that seems fundamentally wrong.
I have never used Github Actions. Can you explain or give some examples what doesn't make sense?
- cmgbhm 2y agoUnderstanding how tokens get passed around. The pattern in Gitlab seems to be much more explicit. 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.
- plantain 2y agoTry and test a Github Action locally - it's an engineering project up there with the Space Shuttle. Repositories around the world are filled with endless commits of "test1", "test2", "test3" trying to debug their actions in prod.
- pid-1 2y agoThat particular issue also exists in GitLab. See https://gitlab.com/gitlab-org/gitlab-runner/-/issues/2797 https://gitlab.com/gitlab-org/gitlab-runner/-/issues/2797
- imp0cat 2y agoRight, but Gitlab does have the excellent built-in pipeline editor that will visualize and validate your pipelines for you. 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).
- flohofwoe 2y agoIIRC Github Actions started as a 'visual editor' where you would drop and arrange 'Actions' and define the data flow between actions, but what most people want from a CI system is just a script/config file in their git repo which defines what command line tools to run, and to group those commands in jobs dependending on each other so that some jobs can run in parallel (which Github Actions only implemented as an afterthought after users demanded it). 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.
- omcnoe 2y agoIf I remember correctly GitHub CI is pretty much a straight port of Microsoft’s existing Azure DevOps CI, done pretty soon after the acquisition. The rest of Azure DevOps UX is kinda insane so it’s no surprise the CI is a bit of a pain too.
- DanielHB 2y agoAnd Github Actions is somehow superior to CircleCI in many ways!
- noirscape 2y agoGitHub Actions feels like it was first designed to let people customize the GitHub Pages deploy flow (since GitHub by default only offered Jekyll as a static site generator, and Jekyll is Ruby tooling and not lightweight to run at all) and as a CI tool second, being molded into behaving like one after Travis CI went bad for open source projects. Gitlab CI actually seems like it was made for CI in the first place.
- miohtama 2y ago