Capistrano deployment scripts for applications running on GOV.UK.
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 protected]/alphagov/myapp.git"
load "defaults"
load "ruby"
load "deploy/assets"
set :copy_exclude, [
".git/*",
]
The main jenkins.sh
script is run by
Jenkins
to deploy each app.
There are a number of environment variables set in Jenkins that can be used in deploy scripts:
DEPLOY_TO
- the environment being deployed toDEPLOY_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'sserver_class
then it is ignored. This is a Capistrano 2 feature.ORGANISATION
- The vCloud organisation being deployed toCI_DEPLOY_JENKINS_API_KEY
- API key used to fetch build artefacts from ci.dev.publishing.service.gov.uk.