Table of contents

Deployments for data.gov.uk

Find and Publish (Rails Apps)

Continuous Integration

Travis is configured for both Publish (CI) and Find (CI) according to .travis.yml file in each repo. Each PR request should automatically build a Heroku Review App, which can be accessed from the PR page on GitHub.

Heroku Integration Environment

Heroku has a pipeline for each of Publish and Find, with each app set to run in its ‘integration’ environment. Each pipeline has a permanent instance of the app, providing a common instance of Elasticsearch for us by the Find PR apps.

Each repo has a Procfile and an app.json file, which help to specify how the app is deployed. The environment variables ('Config Vars’) are then set via the website, both for the permanent app instance, and the review app template.

PaaS Staging and Production Environment

Publish and Find are provisioned on GOV.UK PaaS. Each app repo contains a set of manifests that specify the container settings for when it’s deployed. You can deploy an app manually as follows.

## run once to install the plugin
cf add-plugin-repo CF-Community https://plugins.cloudfoundry.org
cf install-plugin autopilot -r CF-Community -f

## manually deploy the publish app
cf zero-downtime-push publish-data-beta-staging -f staging-app-manifest.yml
cf zero-downtime-push publish-data-beta-staging-worker -f staging-worker-manifest.yml

Merging code into master triggers a deployment to the ’staging’ environment, but you can also do this manually as follows. A production deployment is triggered when a new GitHub release is created for the app.

For more advanced uses of the PaaS that are not covered in the PaaS internal documentation (e.g. provisioning an app using a buildpack that is not Ruby or Java), refer to the Cloud Foundry documentation.

New CKAN

CKAN uses GOV.UK infrastructure, which includes Jenkins for CI.

Integration, staging and production environments behave like all other GOV.UK applications.

This page was last reviewed . It needs to be reviewed again by the page owner #govuk-platform-health.