GoCD versus Gitlab

Differences between two delivery pipelines

Published: Wednesday, Mar 8, 2023 Last modified: Monday, Dec 9, 2024

GoCD Gitlab

Operationally

GoCD agents requires Java, the server requires Java and Postgres, and often requires manual migration steps to keep upto to date on an underlying platform.

Gitlab server is managed and the agent are called runners, which are largely self-contained static binaries. However it does require at least Git 2.x, basic utilities like su and ideally Docker for docker based builds.

Tags

GoCD tag logic is a little counter intuitive. If you have two servers each with a tag A and tag B respecitively, you cannot deploy to “A, B”. You need to instead create a new tag C and apply to both machines to deploy to both.

UI

GoCD has numerous UX issues:

Gitlab by contrast has all the builds steps in gitlab-ci.yml with a handy instant visualisation

Version control

GoCD pipelines are edited via the UI form. There is no version control.