Skip to content

Commit a489481

Browse files
New: [AEA-4587] - Added option for second run against SHA1 app (#198)
## Summary - ✨ New Feature ### Details Feature under test: Enable prescribing systems to toggle to SHA-256 unilaterally --------- Co-authored-by: Anthony Brown <[email protected]>
1 parent 52ff972 commit a489481

File tree

2 files changed

+124
-1
lines changed

2 files changed

+124
-1
lines changed

.github/workflows/regression_tests.yml

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ on:
3737
description: 'The github tag to run the test pack from'
3838
required: false
3939
default: "main"
40+
run_sha1_tests:
41+
description: whether to also run against a sha1 enabled apigee app
42+
required: false
43+
type: boolean
44+
default: false
4045

4146
jobs:
4247
regression_tests:
@@ -115,6 +120,32 @@ jobs:
115120
echo Pull request ID = "$PULL_REQUEST_ID"
116121
poetry run python ./runner.py --env="$ENVIRONMENT" --product="$PRODUCT" --tags="$TAGS"
117122
123+
- name: SHA1 Regression Tests
124+
id: sha1_tests
125+
continue-on-error: true
126+
if: inputs.run_sha1_tests == true
127+
env:
128+
PRODUCT: ${{ inputs.product }}
129+
ENVIRONMENT: ${{ inputs.environment }}
130+
PULL_REQUEST_ID: ${{ inputs.pull_request_id }}
131+
TAGS: ${{ inputs.tags }}
132+
CLIENT_ID: ${{ secrets.SHA1_CLIENT_ID }}
133+
CLIENT_SECRET: ${{ secrets.SHA1_CLIENT_SECRET }}
134+
CERTIFICATE: ${{ secrets.CERTIFICATE }}
135+
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
136+
JWT_KID: ${{ secrets.JWT_KID }}
137+
JWT_PRIVATE_KEY: ${{ secrets.JWT_PRIVATE_KEY }}
138+
run: |
139+
export CLIENT_ID="$CLIENT_ID"
140+
export CLIENT_SECRET="$CLIENT_SECRET"
141+
export CERTIFICATE="$CERTIFICATE"
142+
export PRIVATE_KEY="$PRIVATE_KEY"
143+
export JWT_KID="$JWT_KID"
144+
export JWT_PRIVATE_KEY="$JWT_PRIVATE_KEY"
145+
export PULL_REQUEST_ID="$PULL_REQUEST_ID"
146+
echo Pull request ID = "$PULL_REQUEST_ID"
147+
poetry run python ./runner.py --env="$ENVIRONMENT" --product="$PRODUCT" --tags="$TAGS"
148+
118149
- name: Upload Artifact
119150
uses: actions/upload-artifact@v4
120151
with:
@@ -132,7 +163,7 @@ jobs:
132163
repositories: "electronic-prescription-service-api-regression-tests,eps-test-reports"
133164

134165
- name: Report failure on test failure
135-
if: steps.tests.outcome != 'success'
166+
if: steps.tests.outcome != 'success' || steps.sha1_tests.outcome != 'success'
136167
run: |
137168
poetry run python scripts/send_test_results.py --token=${{ steps.generate-token.outputs.token }} --run_id ${{GITHUB.RUN_ID}}
138169
echo The regression tests step failed, this likely means there are test failures.

scripts/set_secrets.sh

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
#!/usr/bin/env bash
2+
3+
check_gh_logged_in() {
4+
if ! gh auth status >/dev/null 2>&1; then
5+
echo "You need to login using gh auth login"
6+
exit 1
7+
fi
8+
}
9+
10+
set_environment_secret() {
11+
secret_name=$1
12+
secret_value=$2
13+
environment=$3
14+
if [ -z "${secret_value}" ]; then
15+
echo "value passed for secret ${secret_name} is unset or set to the empty string. Not setting"
16+
return 0
17+
fi
18+
echo
19+
echo "*****************************************"
20+
echo
21+
echo "setting value for ${secret_name} in environment ${environment}"
22+
echo "secret_value: ${secret_value}"
23+
read -r -p "Press Enter to set secret or ctrl+c to exit"
24+
gh secret set "${secret_name}" \
25+
--repo NHSDigital/electronic-prescription-service-api-regression-tests \
26+
--app actions \
27+
--env "${environment}" \
28+
--body "${secret_value}"
29+
}
30+
31+
set_repository_secret() {
32+
secret_name=$1
33+
secret_value=$2
34+
if [ -z "${secret_value}" ]; then
35+
echo "value passed for secret ${secret_name} is unset or set to the empty string. Not setting"
36+
return 0
37+
fi
38+
echo
39+
echo "*****************************************"
40+
echo
41+
echo "setting value for ${secret_name}"
42+
echo "secret_value: ${secret_value}"
43+
read -r -p "Press Enter to set secret or ctrl+c to exit"
44+
gh secret set "${secret_name}" \
45+
--repo NHSDigital/electronic-prescription-service-api-regression-tests \
46+
--app actions \
47+
--body "${secret_value}"
48+
}
49+
50+
check_gh_logged_in
51+
set_environment_secret CLIENT_ID "${REF_CLIENT_ID}" REF
52+
set_environment_secret CLIENT_ID "${INTERNAL_DEV_SANDBOX_CLIENT_ID}" INTERNAL-DEV-SANDBOX
53+
set_environment_secret CLIENT_ID "${INTERNAL_DEV_CLIENT_ID}" INTERNAL-DEV
54+
set_environment_secret CLIENT_ID "${INT_CLIENT_ID}" INT
55+
set_environment_secret CLIENT_ID "${INTERNAL_QA_CLIENT_ID}" INTERNAL-QA
56+
57+
set_environment_secret CLIENT_SECRET "${REF_CLIENT_SECRET}" REF
58+
set_environment_secret CLIENT_SECRET "${INTERNAL_DEV_SANDBOX_CLIENT_SECRET}" INTERNAL-DEV-SANDBOX
59+
set_environment_secret CLIENT_SECRET "${INTERNAL_DEV_CLIENT_SECRET}" INTERNAL-DEV
60+
set_environment_secret CLIENT_SECRET "${INT_CLIENT_SECRET}" INT
61+
set_environment_secret CLIENT_SECRET "${INTERNAL_QA_CLIENT_SECRET}" INTERNAL-QA
62+
63+
set_environment_secret JWT_KID "${REF_JWT_KID}" REF
64+
set_environment_secret JWT_KID "${INTERNAL_DEV_SANDBOX_JWT_KID}" INTERNAL-DEV-SANDBOX
65+
set_environment_secret JWT_KID "${INTERNAL_DEV_JWT_KID}" INTERNAL-DEV
66+
set_environment_secret JWT_KID "${INT_JWT_KID}" INT
67+
set_environment_secret JWT_KID "${INTERNAL_QA_JWT_KID}" INTERNAL-QA
68+
69+
set_environment_secret JWT_PRIVATE_KEY "${REF_JWT_PRIVATE_KEY}" REF
70+
set_environment_secret JWT_PRIVATE_KEY "${INTERNAL_DEV_SANDBOX_JWT_PRIVATE_KEY}" INTERNAL-DEV-SANDBOX
71+
set_environment_secret JWT_PRIVATE_KEY "${INTERNAL_DEV_JWT_PRIVATE_KEY}" INTERNAL-DEV
72+
set_environment_secret JWT_PRIVATE_KEY "${INT_JWT_PRIVATE_KEY}" INT
73+
set_environment_secret JWT_PRIVATE_KEY "${INTERNAL_QA_JWT_PRIVATE_KEY}" INTERNAL-QA
74+
75+
set_environment_secret SHA1_CLIENT_ID "${REF_SHA1_CLIENT_ID}" REF
76+
set_environment_secret SHA1_CLIENT_ID "${INTERNAL_DEV_SANDBOX_SHA1_CLIENT_ID}" INTERNAL-DEV-SANDBOX
77+
set_environment_secret SHA1_CLIENT_ID "${INTERNAL_DEV_SHA1_CLIENT_ID}" INTERNAL-DEV
78+
set_environment_secret SHA1_CLIENT_ID "${INT_SHA1_CLIENT_ID}" INT
79+
set_environment_secret SHA1_CLIENT_ID "${INTERNAL_QA_SHA1_CLIENT_ID}" INTERNAL-QA
80+
81+
set_environment_secret SHA1_CLIENT_SECRET "${REF_SHA1_CLIENT_SECRET}" REF
82+
set_environment_secret SHA1_CLIENT_SECRET "${INTERNAL_DEV_SANDBOX_SHA1_CLIENT_SECRET}" INTERNAL-DEV-SANDBOX
83+
set_environment_secret SHA1_CLIENT_SECRET "${INTERNAL_DEV_SHA1_CLIENT_SECRET}" INTERNAL-DEV
84+
set_environment_secret SHA1_CLIENT_SECRET "${INT_SHA1_CLIENT_SECRET}" INT
85+
set_environment_secret SHA1_CLIENT_SECRET "${INTERNAL_QA_SHA1_CLIENT_SECRET}" INTERNAL-QA
86+
87+
set_repository_secret AUTOMERGE_APP_ID "${AUTOMERGE_APP_ID}"
88+
set_repository_secret AUTOMERGE_PEM "${AUTOMERGE_PEM}"
89+
set_repository_secret CERTIFICATE "${CERTIFICATE}"
90+
set_repository_secret PRIVATE_KEY "${PRIVATE_KEY}"
91+
set_repository_secret REGRESSION_TESTS_PEM "${REGRESSION_TESTS_PEM}"
92+
set_repository_secret SONAR_TOKEN "${SONAR_TOKEN}"

0 commit comments

Comments
 (0)