GoCD, from ThoughtWorks in Chicago, is an application lifecycle management and development tool.
N/A
Travis CI
Score 7.3 out of 10
N/A
Travis CI is an open source continuous integration platform, that enables users to run and test simultaneously on different environments, and automatically catch code failures and bugs.
Previously, our team used Jenkins. However, since it's a shared deployment resource we don't have admin access. We tried GoCD as it's open source and we really like. We set up our deployment pipeline to run whenever codes are merged to master, run the unit test and revert back if it doesn't pass. Once it's deployed to the staging environment, we can simply do 1-click to deploy the appropriate version to production. We use this to deploy to an on-prem server and also AWS. Some deployment pipelines use custom Powershell script for.Net application, some others use Bash script to execute the docker push and cloud formation template to build elastic beanstalk.
TravisCI is suited for workflows involving typical software development but unfortunately I think the software needs more improvement to be up to date with current development systems and TravisCI hasn't been improving much in that space in terms of integrations.
Pipeline-as-Code works really well. All our pipelines are defined in yml files, which are checked into SCM.
The ability to link multiple pipelines together is really cool. Later pipelines can declare a dependency to pick up the build artifacts of earlier ones.
Agents definition is really great. We can define multiple different kinds of environments to best suit our diverse build systems.
I think they could have a cheaper personal plan. I'd love to use Travis on personal projects, but I don't want to publish them nor I can pay $69 a month for personal projects that I don't want to be open source.
There is no interface for configuring repos on Travis CI, you have to do it via a file in the repo. This make configuration very flexible, but also makes it harder for simpler projects and for small tweaks in the configuration.
TravisCI hasn't had much changes made to its software and has thus fallen behind compared to many other CI/CD applications out there. I can only give it a 5 because it does what it is supposed to do but lacks product innovation.
After the private equity firm had bought this company the innovation and support has really gone downhill a lot. I am not a fan that they have gutted the software trying to make money from it and put innovation and product development second.
GoCD is easier to setup, but harder to customize at runtime. There's no way to trigger a pipeline with custom parameters.
Jenkins is more flexible at runtime. You can define multiple user-provided parameters so when user needs to trigger a build, there's a form for him/her to input the parameters.
Jenkins is much more complicated to configure and start using. Although, one you have done that, it's extremely powerful and full of features. Maybe many more than Travis CI. As per TeamCity, I would never go back to using it. It's also complicated to configure but it is not worth the trouble. Codeship supports integration with GitHub, GitLab and BitBucket. I've only used it briefly, but it seems to be a nice tool.
Settings.xml need to be backed up periodically. It contains all the settings for your pipelines! We accidentally deleted before and we have to restore and re-create several missing pipelines
More straight forward use of API and allows filtering e.g., pull all pipelines triggered after this date
It's improved my ability to deliver working code, increasing my development velocity.
It increases confidence that your own work (and those of external contributors) does not have any obvious bugs, provided you have sufficient test coverage.
It helps to ensure consistent standards across a team (you can integrate process elements like "go lint" and other style checks as part of your build).
It's zero-cost for public/open source projects, so the only investment is a few minutes setting up a build configuration file (hence the return is very high).
The .travis.yml file is a great way for onboarding new developers, since it shows how to bootstrap a build environment and run a build "from scratch".