Comment by mdaniel

1 day ago

In my experience, the "really good" is that it comes batteries included:

- completely docker based CI/CD which makes reasoning about what it's going to do easier than "read through some minified .js from some rando"

- they do have composable CI/CD akin to the GitHub Actions marketplace, but I haven't used it as much in anger to speak to how valuable it is versus "competitive checkbox feature"

- built-in Terraform State, so no more S3 + Dynamo

- highly configurable JWT claim curation for ease of OIDC based access from the pipelines

- good integration between the platform and multiple Kubernetes clusters

- related to that, a strong "review environment" setup

- they were also hinting at being a Sentry replacement, but regrettably I had to switch back to GitHub before that came out of preview so I don't this second know where it stands

GitLab doesn't have an equivalent of GitHub actions (except an alpha-quality prototype).

GitHub Actions can share runtime environment, which makes them cheap to compose. GitLab components are separately launched Docker containers, which makes them heavyweight and unsuitable for small things (e.g. a CI component can't install a dependency or set configuration for your build, because your build won't be running there).

The components aren't even actual components. They're just YAML templates concatenated with other YAML that appends lines to a bash script. This means you can't write smart integrations that refer to things like "the output path of the Build component", because there's no such entity. It's just some bash with some env var.

I can map most of the list but I can't recall what would be the "review environment setup" What did you mean by that?