Our Evaluation of GoCD
"GoCD is an open source tool used in software development to achieve continuous delivery (CD) of software. It supports automating the entire build-test-release process from code check-in to deployment. It helps to keep producing valuable software in short cycles and ensure that the software can be reliably released at any time. GoCD was originally developed at ThoughtWorks Studios in 2007 and released as open source in 2014." ( https://en.wikipedia.org/wiki/Go_continuous_delivery)
- GoCD can easily model and visualize complex workflows. It is suitable for single purpose, focused tool.
- "GoCD can easily configure dependencies for fast feedback and on-demand deployment."( https://www.gocd.org/why-gocd/) Its fan-in/fan-out dependency management ensures that a pipeline triggers only when all its upstream pipelines have triggered off the same version of an ancestor pipeline or material.
- GoCD compares both files and commit messages across any two arbitrary builds, making it easy to troubleshoot a broken pipeline.
- GoCD provides parallel execution across platforms, versions, branches, pipelines, etc. and helps eliminate bottlenecks.
Now for some things that are not so good with GoCD:
- GoCD is built specifically with CD in mind as compared to Jenkins and Travis that are built for CI. This is a huge factor since we are looking for CI at this stage.
- It uses a bit more memory than Jenkins which can be a problem if it runs on Windows VM.
- Almost all operations are shell based, as compared to GUI support through Jenkins and travis plugins
- GoCD does not have a large plugin ecosystem and there are very few documented integrations
- GoCD's community is only 1000 members strong as it is relatively new. It hasn't been used by many companies yet and documentation is comparatively less. This means there is still a great scope for development and newer versions.