Deploying changes
This page has a summary about how to deploy changes to different repositories/applications.
For a more in depth explanation, you should read Deploying to production: applications and Deploying to production: Terraform on the team wiki.
GOV.UK Forms applications
All GOV.UK Forms applications ( forms-admin, forms-runner and forms-product-page) have a pipeline per environment. Each pipeline exists in the account into which it deploys.
To deploy a change to these applications, merge the change into the main branch. The change will be automatically deployed to staging, production, and user research environments in turn.
To deploy a change to the infrastructure running these applications, see the forms-deploy repository and Apply Terraform pipelines.
Pipeline visualiser (this tool)
The pipeline visualiser tool lives at support/pipeline-visualiser/ in the forms-deploy repository. It has a single pipeline that deploys changes to its one environment in the 'deploy' account.
To deploy a change to it, or its infrastructure, merge the change into the main branch and it will be automatically picked up and deployed.
Apply Terraform (infrastructure)
forms-deploy has an 'Apply Terraform' pipeline per environment. The pipelines exist in the account into which it deploys.
To deploy a change to the infrastructure, first merge the change into the main branch. The next step depends on what area of the infrastructure you have made a change to
-
Infrastructure in the environment accounts
The change will be picked up by the pipelines and deployed automatically.
-
Infrastructure in the 'deploy' account
Run
gds aws forms-deploy-admin – make deploy deploy/ROOT apply, where ROOT is the directory underinfra/deployments/deploy/that you have made a change to (or uses the module which you have made a change to)For example, if you made a change to files in
infra/deployments/deploy/ecr/, the command would begds aws forms-deploy-admin -- make deploy deploy/ecr apply. -
Infrastructure at the account level (under
infra/deployments/forms/account/)Run
gds aws forms-ENV-admin – make ENV forms/account applywhere ENV is the name of the environment account you want to deploy to