Skip to main content

Publish prototypes on the web

You can share prototypes made with the GOV.UK Prototype Kit by publishing them on the web using an MoJ service called Cloud Platform.

Before you start

To publish a prototype you’ll need to:

1. Copy (Clone) the environments repository

To create resources on the Cloud Platform, you need to raise a pull request against the cloud-platform-environments repository.

Create a copy of the cloud-platform-environments repository:

$ git clone git@github.com:ministryofjustice/cloud-platform-environments.git
$ cd cloud-platform-environments

2. Create your prototype kit site

In the Cloud Platform CLI run:

$ cloud-platform environment prototype create

You’ll be asked to name your prototype.

This name will be used as:

  • the namespace which will be created on the Cloud Platform
  • the name of the GitHub repository which will be created, and which will contain your code
  • the domain name your prototype kit will be published to

You must ensure that there is not already a namespace or github repository with this name

For example, if you choose my-prototype as the name, you will create:

  • a namespace on the Cloud Platform called my-prototype
  • the GitHub repository https://github.com/ministryofjustice/my-prototype

…and your prototype kit website will be available at the URL:

https://my-prototype.apps.live.cloud-platform.service.justice.gov.uk

3. Raise a PR

After you have answered all the questions, the cloud-platform CLI will create several files in a folder called:

namespaces/live.cloud-platform.service.justice.gov.uk/[name you chose]

Create a new branch, git add the new folder and then raise a pull request (PR).

Once a member of the Cloud Platform team has approved your PR, merge it.

When you merge the PR, the Apply Pipeline will create your namespace and GitHub repository.

Seeing your published prototype

There are a few things to be aware of, concerning your prototype kit site:

  • It can take around 5 minutes for your protoype to be published

  • The first time it tries to publish it will fail. You’ll need to publish a second time to complete the set up.

You don’t have to do this - when you push changes to the repository, they will be deployed successfully - but you may want to confirm that your site works before making any changes.

  • The GitHub repository is created with branch protection applied to the default main branch. If you don’t want this, edit the github-repo.tf file in your namespace folder in the environments repository, and remove this stanza:
resource "github_branch_protection" "default" {
  repository_id          = github_repository.prototype.id
  pattern                = "main"
  enforce_admins         = true
  require_signed_commits = true
}

If you use the GitHub UI to disable branch protection, the Apply Pipeline will re-enable it shortly afterwards.

The only way to permanently disable it is to remove it from the terraform source code.

Deleting your published prototype

When you no longer need your prototype to be published:

Note - These steps are to decommission the hosting infrastructure that your prototype is running on. This will not delete your prototype source code.

  1. raise a PR removing your namespace folder from the cloud-platform-environments repository, and wait for it to be approved by a member of the Cloud Platform team

  2. immediately before you merge the PR use the GitHub web interface to delete your repository

  3. merge the PR

Your namespace will be removed from the Cloud Platform.

This page was last reviewed on 8 November 2021. It needs to be reviewed again on 8 February 2022 .
This page was set to be reviewed before 8 February 2022. This might mean the content is out of date.