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, "email@example.com/alphagov/myapp.git" load 'defaults' load 'ruby' load 'deploy/assets' set :copy_exclude, [ '.git/*' ]
How deployments work
jenkins.sh script is run by
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_classthen 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 ci.dev.publishing.service.gov.uk.