Need advice about which tool to choose?Ask the StackShare community!

GitLab CI

2.3K
1.6K
+ 1
75
GoCD

205
326
+ 1
206
Add tool

GitLab CI vs GoCD: What are the differences?

  1. Key Difference 1: Architecture and Scalability: GitLab CI is designed as a native part of GitLab, providing a single integrated platform for version control, issue tracking, and continuous integration. It uses a distributed architecture that allows horizontal scaling by adding more nodes to the system. On the other hand, GoCD is a standalone continuous delivery server that requires separate installation and configuration. It uses a master-agent architecture that can be scaled vertically by adding more resources to the master server but cannot be scaled horizontally like GitLab CI.

  2. Key Difference 2: Pipeline Configuration: GitLab CI uses a YAML-based configuration file called .gitlab-ci.yml to define pipelines and jobs. The configuration file is stored along with the project's source code in the repository. GoCD, on the other hand, uses a graphical interface to define pipelines, stages, and tasks. The pipeline configuration is stored outside the project's source code in XML format, making it centralized and separate from the codebase.

  3. Key Difference 3: Plugin Ecosystem: GitLab CI has an extensive plugin ecosystem, with a wide range of community-developed plugins available for integration with other tools and services. These plugins can be used to extend the functionality of GitLab CI and integrate with various third-party services. GoCD also supports plugins, but the available options are more limited compared to GitLab CI. It primarily focuses on integrating with popular CI/CD tools and services rather than providing a wide range of plugins.

  4. Key Difference 4: User Interface: GitLab CI provides a user-friendly web-based interface that is well-integrated with the GitLab platform. Users can easily navigate through pipelines, jobs, and artifacts, making it simple to visualize and monitor the CI/CD process. GoCD offers a web-based user interface as well, but it is not as user-friendly and intuitive as GitLab CI. The interface requires more technical expertise to configure and manage pipelines.

  5. Key Difference 5: Agent Allocation and Load Balancing: GitLab CI allows dynamic and automatic allocation of CI/CD runners based on the project's needs. It also supports load balancing by distributing the workload across multiple runners. GoCD, on the other hand, requires manual configuration of agents and does not offer built-in load balancing functionality. The allocation and management of agents need to be manually handled by the administrators.

  6. Key Difference 6: Integration with Version Control Systems: GitLab CI is tightly integrated with GitLab's version control system, providing seamless integration for source code management, issue tracking, and continuous integration. It is optimized for Git workflows and supports Git-specific features like GitLab's code review and merge request system. GoCD, on the other hand, supports integration with multiple version control systems, including Git, Subversion, Mercurial, and more. It provides flexibility for organizations using different version control systems.

In Summary, GitLab CI and GoCD differ in terms of architecture and scalability, pipeline configuration, plugin ecosystem, user interface, agent allocation and load balancing, and integration with version control systems.

Advice on GitLab CI and GoCD
Mohammad Hossein Amri
Chief Technology Officer at Planally · | 3 upvotes · 487.9K views
Needs advice
on
GoCDGoCD
and
JenkinsJenkins

I'm open to anything. just want something that break less and doesn't need me to pay for it, and can be hosted on Docker. our scripting language is powershell core. so it's better to support it. also we are building dotnet core in our pipeline, so if they have anything related that helps with the CI would be nice.

See more
Replies (1)
Ankit Malik
Software Developer at CloudCover · | 1 upvotes · 470.7K views
Recommends
on
Google Cloud BuildGoogle Cloud Build

Google cloud build can help you. It is hosted on cloud and also provide reasonable free quota.

See more
Needs advice
on
CircleCICircleCIGitLab CIGitLab CI
and
Jenkins XJenkins X

We are a mid-size startup running Scala apps. Moving from Jenkins/EC2 to Spinnaker/EKS and looking for a tool to cover our CI/CD needs. Our code lives on GitHub, artifacts in nexus, images in ECR.

Drone is out, GitHub actions are being considered along with Circle CI and GitLab CI.

We primarily need:

  • Fast SBT builds (caching)
  • Low maintenance overhead (ideally serverless)
  • Everything as code
  • Ease of use
See more
Replies (3)
Glenn Gillen
Recommends
on
BuildkiteBuildkite

I think I've tried most of the CI tools out there at some point. It took me a while to get around to Buildkite because at first I didn't see much point given it seemed like you had to run the agent yourself. Eventually it dawned on me why this approach was more ingenious than I realised:

Running my app in a production (or production-like) environment was already a solved problem, because everything was already in some form of "everything as code". Having a test environment where the only difference was adding the Buildkite agent was a trivial addition.

It means that dev/test/prod parity is simple to achieve and maintain. It's also proven to be much easier to support than trying to deal with the problems that come with trying to force an app to fit into the nuances and constraints that are imposed by the containers/runtime of a CI service. When you completely control all of the environment the tests are running in you define those constraints too. It's been a great balance between a managed service and the flexibility of running it yourself.

And while none of my needs have hit the scale of Shopify (I saw one of their engineers speak about it at a conference once, I can't find the video now though 😞) it's good to know I can scale out my worker nodes to hundreds of thousands of workers to reduce the time it takes for my tests to run.

See more
Recommends
on
jFrogjFrog

I would recommend you to consider the JFrog Platform that includes JFrog Pipelines - it will allow you to manage the full artifact life cycle for your sbt, docker and other technologies, and automate all of your CI and CD using cloud native declarative yaml pipelines. Will integrate smoothly with all your other toolset.

See more
Estu Fardani
Recommends
on
GitLab CIGitLab CI

more configurable to setup ci/cd: * It can provide caching when build sbt, just add this section to yml file * Easy to use, many documentation

Weakness: * Need use gitlab as repository to bring more powerful configuration

See more
Decisions about GitLab CI and GoCD

Buddy is one of the most easy-to-use tools for CI I ever met. When I needed to set up the pipeline I was really impressed with how easy it is to create it with Buddy with only a few moments. It's literally like: 1. Add repo 2. Click - Click - Click 3. You're done and your app is on prod :D The top feature that I've found is a simple integration with different notification channels - not only Slack (which is the one by default), but Telegram and Discord. The support is also neat - guys respond pretty quickly on even a small issue.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of GitLab CI
Pros of GoCD
  • 22
    Robust CI with awesome Docker support
  • 13
    Simple configuration
  • 9
    All in one solution
  • 7
    Source Control and CI in one place
  • 5
    Integrated with VCS on commit
  • 5
    Free and open source
  • 5
    Easy to configure own build server i.e. GitLab-Runner
  • 2
    Hosted internally
  • 1
    Built-in Docker Registry
  • 1
    Built-in support of Review Apps
  • 1
    Pipeline could be started manually
  • 1
    Enable or disable pipeline by using env variables
  • 1
    Gitlab templates could be shared across logical group
  • 1
    Easy to setup the dedicated runner to particular job
  • 1
    Built-in support of Kubernetes
  • 31
    Open source
  • 27
    Pipeline dependencies
  • 25
    Pipeline structures
  • 22
    Can run jobs in parallel
  • 20
    Very flexible
  • 15
    Plugin architecture
  • 13
    Environments can keep config secure
  • 12
    Great UI
  • 10
    Good user roles and permissions
  • 9
    Supports many material dependencies
  • 7
    Fan-in, Fan-out
  • 6
    Designed for cd not just ci
  • 4
    Empowers product people to make delivery decisions
  • 2
    Flexible & easy deployment
  • 2
    Pass around artifacts
  • 1
    Build once

Sign up to add or upvote prosMake informed product decisions

Cons of GitLab CI
Cons of GoCD
  • 2
    Works best with GitLab repositories
  • 2
    Lack of plugins
  • 2
    Horrible ui
  • 1
    No support

Sign up to add or upvote consMake informed product decisions

What is GitLab CI?

GitLab offers a continuous integration service. If you add a .gitlab-ci.yml file to the root directory of your repository, and configure your GitLab project to use a Runner, then each merge request or push triggers your CI pipeline.

What is GoCD?

GoCD is an open source continuous delivery server created by ThoughtWorks. GoCD offers business a first-class build and deployment engine for complete control and visibility.

Need advice about which tool to choose?Ask the StackShare community!

Jobs that mention GitLab CI and GoCD as a desired skillset
What companies use GitLab CI?
What companies use GoCD?
See which teams inside your own company are using GitLab CI or GoCD.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with GitLab CI?
What tools integrate with GoCD?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to GitLab CI and GoCD?
Jenkins
In a nutshell Jenkins CI is the leading open-source continuous integration server. Built with Java, it provides over 300 plugins to support building and testing virtually any project.
Bamboo
Focus on coding and count on Bamboo as your CI and build server! Create multi-stage build plans, set up triggers to start builds upon commits, and assign agents to your critical builds and deployments.
Travis CI
Free for open source projects, our CI environment provides multiple runtimes (e.g. Node.js or PHP versions), data stores and so on. Because of this, hosting your project on travis-ci.com means you can effortlessly test your library or applications against multiple runtimes and data stores without even having all of them installed locally.
TeamCity
TeamCity is a user-friendly continuous integration (CI) server for professional developers, build engineers, and DevOps. It is trivial to setup and absolutely free for small teams and open source projects.
CircleCI
Continuous integration and delivery platform helps software teams rapidly release code with confidence by automating the build, test, and deploy process. Offers a modern software development platform that lets teams ramp.
See all alternatives