Official upstream source mirror. Do not make UH changes here.
  • Ruby 78.3%
  • HTML 18.2%
  • SCSS 2.1%
  • JavaScript 1%
  • Dockerfile 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-28 10:03:16 +01:00
.github chore(deps): bump ruby/setup-ruby from 1.322.0 to 1.323.0 2026-09-25 15:32:48 +00:00
.yarn/releases Upgrade yarn 2024-06-06 15:48:29 +01:00
app Update visually-hidden text class 2026-09-18 14:06:24 +01:00
bin Switch to comitted binstubs as agreed with our wider dev community, and add sidekiq which is missing and currently breaking release workers 2026-04-20 10:24:17 +01:00
config style: 💄 correctly display deployed sha or version 2025-08-27 14:33:04 +01:00
data Mark fact-check-manager as being continuously deployed 2026-08-20 09:42:49 +01:00
db Add migration to enable change failure marking for production deployments 2026-04-22 09:14:09 +01:00
docs Update Smart Answers shortname 2025-08-20 13:28:16 +01:00
lib/tasks Remove deploy lag report 2024-05-13 15:31:19 +01:00
log Init empty rails app 2012-11-26 10:25:23 +00:00
public Run rails app:update 2024-11-26 16:25:08 +00:00
test Mark production deployments as change failures 2026-04-29 08:02:49 +01:00
vendor Add graphql query for application page 2024-04-29 14:51:53 +01:00
.dockerignore Remove disused Jenkinsfile etc. 2024-01-23 16:07:10 +00:00
.gitignore Upgrade yarn 2024-06-06 15:48:29 +01:00
.govuk_dependabot_merger.yml Allow auto-merging of external dependencies 2024-05-13 15:49:39 +01:00
.rubocop.yml Add standard header to protect .rubocop.yml 2021-11-09 09:40:13 +00:00
.ruby-version Fix Filter search, bundle update, fix that too. 2026-08-19 15:26:51 +01:00
.yarnrc.yml Upgrade yarn 2024-06-06 15:48:29 +01:00
config.ru Run rails app:update 2021-09-22 10:39:14 +01:00
Dockerfile Switch to comitted binstubs as agreed with our wider dev community, and add sidekiq which is missing and currently breaking release workers 2026-04-20 10:24:17 +01:00
Gemfile Fix Filter search, bundle update, fix that too. 2026-08-19 15:26:51 +01:00
Gemfile.lock chore(deps): bump faraday from 2.14.3 to 2.14.4 2026-09-25 15:32:39 +00:00
LICENCE Rename Licence reference in README 2022-12-02 15:24:13 +00:00
package.json chore(deps-dev): bump stylelint from 17.14.1 to 17.15.0 2026-09-14 15:32:54 +00:00
Procfile.dev Add bin/dev and Procfile.dev 2024-03-05 14:57:02 +00:00
Rakefile Use modern approach to load rake tasks 2020-12-03 10:44:38 +00:00
README.md Add Ruby version and build workflow to README 2026-04-29 10:29:04 +01:00
yarn.lock chore(deps-dev): bump stylelint from 17.14.1 to 17.15.0 2026-09-14 15:32:54 +00:00

Release

An application to make managing releases to specific environments easier.

Technical documentation

This is a Ruby on Rails app, and should follow our Rails app conventions.

You can use the GOV.UK Docker environment to run the application and its tests with all the necessary dependencies. Follow the usage instructions to get started.

Seeing the kubernetes API view running locally

To see the kubernetes API view you will need to run the Release app on your machine, not in the govuk-docker stack. If you are just running the tests you can use govuk-docker.

  • Before running the app you will need to update the Trust relationship for the release-assumed role on the AWS IAM control panel using your fulladmin account on the integration environment. The additional trusted entity that you are adding should look like this -
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::1234567890:role/your.name-developer"
            },
            "Action": "sts:AssumeRole"
        }

This step needs to be repeated for the staging environment as the app will show the status for both integration and staging environments.

Note that the production environment is not updated in order to reduce the risk of affecting the production environment if the allowable actions on the kubernetes API changes in the future.

  • Finally on the AWS console you will also need to add the following IAM policy to your developer role in integration. Under the AWS IAM control panel using your fulladmin account, select your developer role and then add a new permission using Create inline policy and switch to JSON so that you can paste the following json block -
{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Effect": "Allow",
   "Action": [
    "sts:AssumeRole"
   ],
   "Resource": "arn:aws:iam::210287912431:role/release-assumed"
  },
  {
   "Effect": "Allow",
   "Action": [
    "sts:AssumeRole"
   ],
   "Resource": "arn:aws:iam::696911096973:role/release-assumed"
  }
 ]
}

Click on Next to name your new policy, it should probably be something like TestAssumeRole and finally you should be able to click on Create policy.

  • Once the extra trust entity and IAM policy has been added you should be able to run the Release app locally after assuming your developer account.

  • Then ensure that you have mysql server running on your machine.

brew install mysql # needed if you don't have mysql installed already
mysql.server start
  • Install the dependencies
npx yarn install # needed if you don't have yarn install already
bundle install
  • Setup the database
DATABASE_URL="mysql2://root@localhost/release_development" bin/rails db:setup
  • Start the Rails server
bin/rails assets:precompile # ensure that you have yarn installed
DATABASE_URL="mysql2://root@localhost/release_development" rails s

Use GOV.UK Docker to run any commands that follow.

To the run the tests

DATABASE_URL="mysql2://root@localhost/release_development" bundle exec rake
  • Run a single test
TEST_DATABASE_URL="mysql2://root@localhost/release_test"  rake test TEST=test/integration/deploy_page_test.rb

Build workflows

This app is used by govuk-ruby-images as part of a workflow to test the base and builder Ruby images. Ensure that this is always at the latest Ruby version.

Architecture diagrams

Licence

MIT License