Skip to content

alphagov/govuk-app-deployment

main
Switch branches/tags
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Jul 24, 2017

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, "git@github.com/alphagov/myapp.git"

load "defaults"
load "ruby"
load "deploy/assets"

set :copy_exclude, [
  ".git/*",
]

How deployments work

The main jenkins.sh 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 ci.dev.publishing.service.gov.uk.

About

GOV.UK's application deployment code

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published