Skip to main content

Deploy applications

Deploying 9 systems out at the same time can be a non-trivial task. This should help explain how we do it.

Concourse

Deploying GovWifi is done via Concourse, hosted by GDS.

You will need to be part of the GovWifi team, and logged in.

Core services

For the core services, there is a central deployment pipeline.

The code is hosted in the pipeline repo

This covers the:

  • Admin site
  • Authentication API
  • Logging API
  • User Signup API
  • Frontend RADIUS
  • Safe ‘Canary’ Restarter

The general process is:

  1. Run tests.
  2. Deploy Staging.
  3. Wait for user to allow Production deploy.
  4. Deploy Production.

Each service is deployed independently.

To ensure interoperability between the services, we run Cross-Service tests for the Frontend, and APIs. This ensures that an update to a service will work between the rest of the services.

Trigger a deployment

  1. Merge your development branch to master.
  2. Concourse will test, build and deploy to the Staging environments.
  3. Run the job in the pipeline, titled Confirm Deploy to <service> Production.
  4. Concourse will deploy to the Production environments.

Docs and the product page

The Dev Docs, Tech Docs, and Product Page use a static site generator called Middleman.

Pull Request Previews

Automatic branch previews are deployed to Heroku.

When a PR is raised, a deploy is triggered automatically and the link appears inline on the PR.

Production

Each repo has it’s own pipeline which deploys out to GovPaaS whenever a change is made to the master branch.

Trigger a deployment

  1. Merge your development branch to master.
  2. Concourse will build + deploy to GovPaaS.
  3. Verify contents is deployed (you may need to add a GET parameter to bust the cache).
This page was last reviewed on 10 January 2021. It needs to be reviewed again on 10 July 2021 by the page owner #govwifi .
This page was set to be reviewed before 10 July 2021 by the page owner #govwifi. This might mean the content is out of date.