To better understand Go and to enable you to test it freely, I’ve decided to set up a small Vagrant cluster. The project is available on github.
Go (Continuous Delivery)
If you need to set up continuous delivery pipelines, Go is the way to go1. It has easy-to-use and intuitive graphical web interface. The configuration is stored in XML file enabling simple backups (you can automated them with Go itself if you want). You can sanely divide pipelines in groups and manage resources. Documentation is quite nice as well. It’s now free. Most importantly – it gets the job done without evoking killer urges in the users.
I’ve already written about Vagrant. It is one of the favorite tools in my toolbox, enabling me to try things out in an isolated and controlled environment. In this project I’ve set a Vagrant cluster consisting of 3 nodes. One node is the Go server node and the other 2 are agent nodes. After you start the cluster with Vagrant and it comes up, you are ready to play with Go.
How to use vagrant-go
Be sure to take a look at the README. It contains detailed instruction on how to install and use vagrant-go.
After the cluster is up, navigate to 127.0.0.1:8153 to access the web interface.
If you are interested in the details of vagrant-go’s implementation, take a look at the Vagrantfile.
There are 2 flags,
give you some control over the cluster’s start up process.
When the cluster is up, take a look at the example pipelines and other
configurations. The pipelines can be triggered with git push or manually. To
do so, push something to
test-repo, the local bare git repository created in
provisioning process, e.g.
git push test-repo master.
All the interaction between the host and VMs is happening through
directory on VMs that is shared folder for this repository on the host
(directory containing the
Vagrantfile). This shared directory can be used to
produce results that are visible on the host machine too.
The pipelines demonstrate some of the capabilities of Go, e.g. triggering and chaining pipelines or managing artifacts.
Finally, here are some snapshots so you can get some idea how Go looks like.
Configuring a pipeline:
Manually triggering a pipeline with custom input:
For more details, take a look at the pipelines themselves and give vagrant-go a try.
Go is really great Continuous Delivery tool, and you can try it out painlessly with this Vagrant setup. Go and do so. :)
No pun intended.↩