Use Thoughtworks' go to manage continuous delivery pipelines via Vagrant
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Use Thoughtworks' go to manage continuous delivery pipelines via Vagrant.

You probably want to read this blog post first. It explains motivation and even has some nice pictures of the repo in action.


You need to have the following installed to try out vagrant-go:


Install librarian-chef first. This dependency is specified in the Gemfile, so run the following command:

bundle install

Next, install recipes with librarian-chef:

librarian-chef install

Lastly, install vagrant-cachier plugin:

vagrant plugin install vagrant-cachier

If you want to have additional development tools installed (properly set up Vim, Ruby & RVM, etc.) on all the machines, set the INSTALL_DEV_TOOLS to true in the Vagrantfile. This will significantly increase cluster setup time, but it will happen only once. This feature is currently still experimental.

Go examples

If the CONFIGURE_GO_EXAMPLES flag is set (default), Go will be configured with some initial example settings.

Example pipelines and more will be configured. 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.

All the interaction between host and VMs is happening through /vagrant directory on VMs that is shared folder for this repository on host (directory containing Vagrantfile).

To push current repository's master, run:

git push test-repo master

The pipelines demonstrate some of the capabilities of Go:

  • triggering pipelines
  • chaining pipelines
  • managing artifacts
  • etc.

For more details, take a look at the pipelines themselves.

Setting up the cluster

To start the go cluster start the vagrant with:

vagrant up

When you run this command for the first time, it will probably take more time as it needs to download the CentOS box. This will only happen once.

After the previous command finishes, you log into the desired machine, e.g.:

vagrant ssh server

The go server is accessible at

Before you do anything else, do not forget to enable the agents under agents tab in go web interface.

That's it, now you can play with your band new go cluster.


When the vagrant machines are running, access the go server at

When you want to temporary stop the cluster, execute vagrant halt to stop it and vagrant up to start it up again (just booting up the instances, no provisioning).

To learn more on how to use the Vagrant, check the vagrant-intro blog post.