Skip to content
Branch: master
Go to file


Failed to load latest commit information.

GOV.UK application deployment scripts

Capistrano deployment scripts for applications running on GOV.UK.

Adding a new app

Create a new directory for your app based on one of the other apps e.g.

# Capfile

load 'deploy'

$:.unshift(File.expand_path('../../lib', __FILE__))
load_paths << File.expand_path('../../recipes', __FILE__)

load 'config/deploy'
# config/deploy.rb

set :application, "myapp"
set :capfile_dir, File.expand_path('../', File.dirname(__FILE__))
set :server_class, "myserverclass"
set :repository, ""

load 'defaults'
load 'ruby'
load 'deploy/assets'

set :copy_exclude, [

How deployments work

The master script is run by Jenkins to deploy each app.

Environment variables available to deploy scripts

There are a number of environment variables set in Jenkins that can be used in deploy scripts:

  • DEPLOY_TO - the environment being deployed to
  • DEPLOY_TASK - the deploy task selected in the Jenkins interface ("deploy", "deploy:setup", etc)
  • TAG - the tag/branch entered in the Jenkins interface ("release", "release_1234", "build-1234", etc)
  • HOSTFILTER - optional, comma-separated list of hosts to deploy to. We use this when deploying apps onto new machine instances. If a machine doesn't match one of the app's server_class then it is ignored. This is a Capistrano 2 feature.
  • ORGANISATION - The vCloud organisation being deployed to
  • CI_DEPLOY_JENKINS_API_KEY - API key used to fetch build artefacts from
You can’t perform that action at this time.