Skip to content

Commit 974f91a

Browse files
authored
Merge pull request #5667 from nhsuk/next
Version 6.9.0
2 parents 84b0c2e + 7f19de2 commit 974f91a

File tree

127 files changed

+2728
-3236
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+2728
-3236
lines changed

.github/workflows/create_dockerized_db.yml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,21 @@ run-name: Creating dockerized image from ${{ github.ref_name }}
44
on:
55
workflow_dispatch:
66
push:
7-
tags:
8-
- 'v[0-9]+.[0-9]+.[0-9]+'
7+
branches:
8+
- next
9+
workflow_call:
10+
inputs:
11+
github_ref:
12+
description: The git commit sha to build the image from.
13+
type: string
914

1015
permissions:
1116
id-token: write
1217
contents: read
1318

19+
env:
20+
github_ref: ${{ inputs.github_ref || github.ref_name == 'next' && 'next' || github.ref_name }}
21+
1422
jobs:
1523
setup-development-database:
1624
name: Setup Development Database
@@ -25,6 +33,9 @@ jobs:
2533
SKIP_TEST_DATABASE: true
2634
steps:
2735
- uses: actions/checkout@v6
36+
with:
37+
ref: ${{ env.github_ref }}
38+
repository: nhsuk/manage-vaccinations-in-schools
2839
- uses: actions/setup-node@v6
2940
with:
3041
node-version-file: .tool-versions
@@ -66,8 +77,6 @@ jobs:
6677
uses: aws-actions/amazon-ecr-login@v2
6778
- name: Commit postgres container with database
6879
run: |
69-
docker commit database ${{ steps.login-ecr.outputs.registry }}/mavis/development/postgres_db:latest
80+
docker commit database "${{ steps.login-ecr.outputs.registry }}/mavis/development/postgres_db:$github_ref"
7081
- name: Push image
71-
run: |
72-
docker tag ${{ steps.login-ecr.outputs.registry }}/mavis/development/postgres_db:latest ${{ steps.login-ecr.outputs.registry }}/mavis/development/postgres_db:${{ github.ref_name }}
73-
docker push ${{ steps.login-ecr.outputs.registry }}/mavis/development/postgres_db --all-tags
82+
run: docker push "${{ steps.login-ecr.outputs.registry }}/mavis/development/postgres_db:$github_ref"

.github/workflows/end-to-end-tests.yml

Lines changed: 67 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,15 @@ name: End To End test run
33
on:
44
workflow_call:
55
inputs:
6-
github_ref:
6+
git_reference_for_application_image:
77
description: The git reference for deploying containerized mavis application
88
type: string
99
required: false
10+
git_reference_for_database_image:
11+
description: The environment to build the base image against
12+
type: string
13+
required: false
14+
default: "next"
1015
secrets:
1116
HTTP_AUTH_TOKEN_FOR_TESTS:
1217
description: HTTP Basic Auth token for the environment under test
@@ -18,14 +23,13 @@ on:
1823
permissions: { }
1924

2025
jobs:
21-
check-image-presence:
26+
check-development-image-presence:
2227
name: Check if docker image already exists
2328
runs-on: ubuntu-latest
2429
permissions:
2530
id-token: write
2631
outputs:
2732
build-needed: ${{ steps.check-image.outputs.build-needed }}
28-
next-git-sha: ${{ steps.get-next-git-sha.outputs.git-sha }}
2933
steps:
3034
- name: Configure AWS Credentials
3135
uses: aws-actions/configure-aws-credentials@v5
@@ -37,21 +41,22 @@ jobs:
3741
run: |
3842
if aws ecr describe-images --repository-name mavis/development --image-ids imageTag=${{ github.sha }} > /dev/null 2>&1; then
3943
echo "Docker image with given tag already exists"
44+
echo "build-needed=false" >> $GITHUB_OUTPUT
4045
else
4146
echo "Docker image does not exist. Build needed"
4247
echo "build-needed=true" >> $GITHUB_OUTPUT
4348
fi
4449
build-and-push-development-image:
45-
needs: [check-image-presence]
46-
if: needs.check-image-presence.outputs.build-needed == 'true'
50+
needs: [ check-development-image-presence ]
51+
if: needs.check-development-image-presence.outputs.build-needed == 'true'
4752
runs-on: ubuntu-latest
4853
permissions:
4954
id-token: write
5055
steps:
5156
- name: Checkout code
5257
uses: actions/checkout@v6
5358
with:
54-
ref: ${{ inputs.github_ref || github.ref }}
59+
ref: ${{ inputs.git_reference_for_application_image || github.ref }}
5560
repository: nhsuk/manage-vaccinations-in-schools
5661
- name: Configure AWS Credentials
5762
uses: aws-actions/configure-aws-credentials@v5
@@ -69,12 +74,49 @@ jobs:
6974
-t "393416225559.dkr.ecr.eu-west-2.amazonaws.com/mavis/development:${{ github.sha }}" \
7075
.
7176
docker push "393416225559.dkr.ecr.eu-west-2.amazonaws.com/mavis/development:${{ github.sha }}"
77+
check-database-image-presence:
78+
name: Check if docker image already exists
79+
runs-on: ubuntu-latest
80+
permissions:
81+
id-token: write
82+
outputs:
83+
build-needed: ${{ steps.check-image.outputs.build-needed }}
84+
steps:
85+
- name: Configure AWS Credentials
86+
uses: aws-actions/configure-aws-credentials@v5
87+
with:
88+
role-to-assume: arn:aws:iam::393416225559:role/GitHubAssuranceTestRole
89+
aws-region: eu-west-2
90+
- name: Check if image exists
91+
id: check-image
92+
run: |
93+
if aws ecr describe-images --repository-name mavis/development --image-ids imageTag=${{ github.event.pull_request.base.ref }} > /dev/null 2>&1; then
94+
echo "Docker image with given tag already exists"
95+
echo "build-needed=false" >> $GITHUB_OUTPUT
96+
else
97+
echo "Docker image does not exist. Build needed"
98+
echo "build-needed=true" >> $GITHUB_OUTPUT
99+
fi
100+
build-and-push-database-image:
101+
needs: [ check-database-image-presence ]
102+
if: needs.check-database-image-presence.outputs.build-needed == 'true'
103+
permissions:
104+
id-token: write
105+
contents: read
106+
uses: ./.github/workflows/create_dockerized_db.yml
107+
with:
108+
github_ref: ${{ inputs.git_reference_for_database_image }}
72109
launch-dockerized-devimage:
73-
needs: [ check-image-presence, build-and-push-development-image ]
110+
needs: [ check-development-image-presence,
111+
build-and-push-development-image,
112+
check-database-image-presence,
113+
build-and-push-database-image ]
74114
if: ${{ !cancelled() &&
75115
(needs.build-and-push-development-image.result == 'success' ||
76-
(needs.check-image-presence.result == 'success' && needs.build-and-push-development-image.result == 'skipped')
77-
) }}
116+
(needs.check-development-image-presence.result == 'success' && needs.build-and-push-development-image.result == 'skipped')) &&
117+
(needs.build-and-push-database-image.result == 'success' ||
118+
(needs.check-database-image-presence.result == 'success' && needs.build-and-push-database-image.result == 'skipped'))
119+
}}
78120
runs-on: ubuntu-latest
79121
permissions:
80122
id-token: write
@@ -86,26 +128,33 @@ jobs:
86128
with:
87129
role-to-assume: arn:aws:iam::393416225559:role/GitHubAssuranceTestRole
88130
aws-region: eu-west-2
89-
- name: Render task definition 1
90-
id: render-task-definition-1
131+
- name: Render task definition web
132+
id: render-task-definition-web
91133
uses: aws-actions/amazon-ecs-render-task-definition@v1
92134
with:
93135
task-definition-family: "assurance-testing-mavis-development-task-definition-template"
94136
container-name: "mavis-development-web"
95137
image: "393416225559.dkr.ecr.eu-west-2.amazonaws.com/mavis/development:${{ github.sha }}"
96-
- name: Render task definition 2
97-
id: render-task-definition-2
138+
- name: Render task definition database
139+
id: render-task-definition-database
140+
uses: aws-actions/amazon-ecs-render-task-definition@v1
141+
with:
142+
task-definition: ${{ steps.render-task-definition-web.outputs.task-definition }}
143+
container-name: "mavis-development-db"
144+
image: "393416225559.dkr.ecr.eu-west-2.amazonaws.com/mavis/development/postgres_db:${{ github.event.pull_request.base.ref }}"
145+
- name: Render task definition sidekiq
146+
id: render-task-definition-sidekiq
98147
uses: aws-actions/amazon-ecs-render-task-definition@v1
99148
with:
100-
task-definition: ${{ steps.render-task-definition-1.outputs.task-definition }}
149+
task-definition: ${{ steps.render-task-definition-database.outputs.task-definition }}
101150
container-name: "mavis-development-sidekiq"
102151
image: "393416225559.dkr.ecr.eu-west-2.amazonaws.com/mavis/development:${{ github.sha }}"
103152
- name: Prepare deployment
104153
id: prepare-deployment
105154
run: |
106155
file_path="assurance-testing-mavis-development-task-definition.json"
107156
family_name="assurance-testing-mavis-development-task-definition"
108-
echo "$(jq --arg f "$family_name" '.family = $f' "${{ steps.render-task-definition-2.outputs.task-definition }}")" > "$file_path"
157+
echo "$(jq --arg f "$family_name" '.family = $f' "${{ steps.render-task-definition-sidekiq.outputs.task-definition }}")" > "$file_path"
109158
cat "$file_path" #TODO: Debugging, remove later
110159
111160
subnet_id=$(aws ec2 describe-subnets --filters Name=tag:Name,Values=assurance-testing-subnet --query 'Subnets[0].SubnetId' --output text)
@@ -220,7 +269,7 @@ jobs:
220269
echo "task_arn=$TASK_ARN" >> $GITHUB_OUTPUT
221270
echo "Started task: $TASK_ARN"
222271
find-correct-test-branch:
223-
needs: [wait-for-task-stability]
272+
needs: [ wait-for-task-stability ]
224273
if: ${{ !cancelled() && needs.wait-for-task-stability.result == 'success'}}
225274
runs-on: ubuntu-latest
226275
permissions:
@@ -239,7 +288,7 @@ jobs:
239288
env:
240289
BRANCH_TO_CHECK: ${{ github.head_ref }}
241290
call-functional-tests:
242-
needs: [launch-dockerized-devimage, wait-for-task-stability, find-correct-test-branch]
291+
needs: [ launch-dockerized-devimage, wait-for-task-stability, find-correct-test-branch ]
243292
if: ${{ !cancelled() && needs.launch-dockerized-devimage.result == 'success' && needs.wait-for-task-stability.result == 'success'}}
244293
uses: NHSDigital/manage-vaccinations-in-schools-testing/.github/workflows/functional_selected_device.yaml@main
245294
permissions:
@@ -252,7 +301,7 @@ jobs:
252301
HTTP_AUTH_TOKEN_FOR_TESTS: ${{ secrets.HTTP_AUTH_TOKEN_FOR_TESTS }}
253302
MAVIS_TESTING_REPO_ACCESS_TOKEN: ${{ secrets.MAVIS_TESTING_REPO_ACCESS_TOKEN }}
254303
stop-docker-environment:
255-
needs: [call-functional-tests, launch-dockerized-devimage, wait-for-task-stability]
304+
needs: [ call-functional-tests, launch-dockerized-devimage, wait-for-task-stability ]
256305
if: ${{ always() && needs.launch-dockerized-devimage.result != 'skipped'}}
257306
runs-on: ubuntu-latest
258307
permissions:

.github/workflows/test.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ jobs:
9191
id-token: write
9292
contents: write
9393
uses: ./.github/workflows/end-to-end-tests.yml
94+
with:
95+
git_reference_for_database_image: ${{ github.event.pull_request.base.ref }}
9496
secrets:
9597
HTTP_AUTH_TOKEN_FOR_TESTS: ${{ secrets.HTTP_AUTH_TOKEN_FOR_TESTS }}
9698
MAVIS_TESTING_REPO_ACCESS_TOKEN: ${{ secrets.MAVIS_TESTING_REPO_ACCESS_TOKEN }}

0 commit comments

Comments
 (0)