GoCD: a continuous delivery server with a value-stream model
GoCD - Continuous Delivery server main repository
At a glance
- What is it?
- GoCD is an Apache-2.0 continuous delivery server written mainly in Java and TypeScript. Its pipeline and value-stream concepts fit teams that need to model a release path, not just run builds.
- Who is it for?
- Adopt GoCD if your release process has stages that need to be modelled and tracked as one dependency graph, and if you are willing to run a Jetty-based Java server yourself. Do not adopt it if you only need a build runner that triggers on push and reports pass or fail; the pipeline and value-stream concepts are overhead in that case.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Java, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem GoCD solves: release paths, not just builds
Most CI tools answer one question: did the build pass? GoCD's README frames the project differently. It says GoCD "helps you automate and streamline the build-test-release cycle for worry-free, continuous delivery of your product." The unit of work is not a job but a pipeline, and the documentation treats the sequence of stages from commit to deployable artifact as the thing you configure and watch. That distinction matters when a release involves several stages that must each pass before the next begins, and when you need to know which build is currently sitting at which stage across many pipelines. The intended audience is a team that already has a repeatable release process and wants the server to hold the shape of it. The README points new users at a Test Drive page and at docs.gocd.org, which is where the pipeline vocabulary is actually explained. Anyone looking for a single-file config that runs a test suite on every push will find the model heavier than they need.
How GoCD is put together: Java, Jetty, SparkJava and a JRuby corner
The README describes GoCD as "predominantly a Java & TypeScript project" using Spring Framework, SparkJava and MithrilJS as key frameworks, built with Gradle and Webpack, and running inside Eclipse Jetty. That is the shape of the main repository: a server process on Jetty, a Java domain and API layer, and a TypeScript front end. The repository layout backs this up. Top-level entries include app-server/, server/, api/, domain/, db/ and db-support/, jetty/, spark/, plugin-infra/, and a set of agent modules: agent/, agent-bootstrapper/, agent-common/, agent-launcher/ and agent-process-launcher/. There is also a commandline/ module and an installers/ module. Two details are worth flagging. First, plugin-infra/ is a first-class module, so extension points are part of the architecture rather than an afterthought. Second, the README admits that "a small number of older parts of GoCD [are] rendered server-side within JRuby on Rails" and use legacy plain JavaScript with JQuery. That is an honest description of a codebase with layers of different ages, and it is the kind of thing you notice when you go looking for where a particular screen is rendered. The README also notes that GoCD is used to build GoCD, with a link to build.gocd.org.
Installing GoCD and configuring a first pipeline
The README does not contain install commands. It directs readers to the downloads page at gocd.org/download for the server, and to a Test Drive page for a guided first pipeline. The repository does contain a docker/ directory and the README's badge links to the gocd/gocd-server image on Docker Hub, so a container image is the documented distribution path for the server. The README gives no run command, port or environment variable, so the only thing that can be copied here is the image name itself.
docker pull gocd/gocd-serverThat pulls the server image referenced by the README's Docker Hub badge. The README does not state which ports the container exposes, so check the image documentation before mapping ports. For a source build, the repository ships a Gradle wrapper at the top level, and the README points developers at developer.gocd.org/current for environment setup rather than repeating the steps. For the actual first pipeline, use the Test Drive page the README links to, which is written to teach the pipeline concepts before you touch a real server.
Where GoCD is the wrong tool
GoCD assumes you want a server. You install it, run it, and keep it running, and the repository reflects that: a Jetty server module, a database layer in db/ and db-support/, an agent fleet with its own bootstrapper and launcher modules, and an installers/ module for packaged distributions. That is a real operational surface. A small team that wants a hosted runner and a YAML file in the repository will spend more time on GoCD's server and agent topology than on their own build. The second limitation is the layered codebase the README itself describes. Spring, SparkJava, MithrilJS, and a JRuby on Rails corner with JQuery mean that a change touching an older screen can require you to work in a different stack from a change touching the API. Contributing a fix is not uniform across the product. Third, the README's install guidance is thin by design: it defers to the downloads page and docs.gocd.org. If you need a single source of truth for supported platforms, versions and upgrade paths, that source is the documentation site, not this repository.
GoCD compared with Jenkins
The comparison people search for is GoCD versus Jenkins, and the difference is in the model rather than the feature list. Jenkins is built around jobs and a large plugin ecosystem; you assemble a delivery process from freestanding jobs and whatever plugins you install. GoCD is built around pipelines and the dependency relationships between them, with plugin-infra/ as one module among many rather than the centre of the product. Practically, that means GoCD asks you to describe the release path up front: which stages exist, what order they run in, and what has to pass before the next one starts. Jenkins lets you start with one job and grow. Neither approach is wrong. If your delivery process is already a known sequence with gates, GoCD's model matches it directly and the server's job is to hold that shape. If your process is still forming, or is a collection of independent checks, Jenkins' job-by-job model will be less friction. The trade-off is configuration effort now versus modelling effort later.
Maintenance, releases and the Apache-2.0 licence
The last push to the default branch was on 2026-09-21, so the repository is being pushed to. Recent releases are 26.1.0 on 2026-07-06, 25.4.0 on 2025-12-31 and 25.3.0 on 2025-08-01, which is a cadence of roughly two releases a year on the evidence given. That matters for upgrade planning: you are not tracking a fast-moving trunk, and the gap between 25.3.0 and 25.4.0 was about five months. The repository is not archived. GoCD is licensed under Apache License 2.0, and the README states the project is sponsored by Thoughtworks. Apache-2.0 is a permissive licence with an explicit patent grant, which is generally straightforward for commercial use, but the repository does not describe any support contract or commercial offering, so paid support is not something you can assume from this material. For legal questions about redistribution or modification, read the LICENSE file and consult your own counsel; nothing here is legal advice. The README also points to SECURITY.md for the security status and the responsible disclosure process, and the repository carries a SECURITY_THREAT_MODEL.md at the top level.
Editorial conclusion
Adopt GoCD if your release process has stages that need to be modelled and tracked as one dependency graph, and if you are willing to run a Jetty-based Java server yourself. Do not adopt it if you only need a build runner that triggers on push and reports pass or fail; the pipeline and value-stream concepts are overhead in that case. Before committing, read the docs at docs.gocd.org for the current pipeline configuration syntax, check the SECURITY.md and SECURITY_THREAT_MODEL.md files for the disclosure policy, and confirm which release you are installing from the downloads page rather than assuming the master branch is a release.
Frequently asked questions
What is the GoCD pipeline?
A pipeline is GoCD's unit of work: a configured sequence of stages that takes a change through build, test and release steps. The README describes GoCD's purpose as automating the build-test-release cycle, and the Test Drive page it links to is written to teach pipeline concepts before you configure a real server.
What are the key differences between Jenkins and GoCD?
Jenkins is organised around individual jobs and a broad plugin ecosystem, while GoCD is organised around pipelines and the dependencies between them, with plugin support as one module in the repository rather than the centre of the product. GoCD also runs as a server with a separate agent fleet, which is more infrastructure to operate than a single Jenkins controller.
How do I install the GoCD server?
The README does not give install commands; it directs readers to the downloads page at gocd.org/download and links to the gocd/gocd-server image on Docker Hub. It does not document ports or environment variables, so check the image or package documentation before running it.
What language and frameworks is GoCD written in?
The README describes GoCD as predominantly a Java and TypeScript project using Spring Framework, SparkJava and MithrilJS, built with Gradle and Webpack and running inside Eclipse Jetty. It also notes that a small number of older parts are rendered server-side in JRuby on Rails with legacy JQuery JavaScript.
What licence is GoCD released under?
GoCD is released under the Apache License, Version 2.0, and the README states the project is sponsored by Thoughtworks. The licence file is at the top level of the repository.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/gocd-gocd)