Skip to content

Commit 488b328

Browse files
authored
Merge branch 'master' into NIAD-3287-updated-postman
2 parents 89d8cb1 + d722a5c commit 488b328

File tree

21 files changed

+1080
-932
lines changed

21 files changed

+1080
-932
lines changed

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ end_of_line = lf
1111
[Makefile]
1212
indent_style = tab
1313

14-
[*.{xml,js,json,yaml}]
14+
[*.{xml,js,json,yaml,yml}]
1515
indent_size = 2
1616

1717
[*.postman_collection.json]

.github/workflows/continuous-integration.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ jobs:
1212
with:
1313
fetch-depth: 0 # This causes all history to be fetched, which is required for calculate-version to function
1414

15-
- name: Install Python 3.8
15+
- name: Install Python 3.9
1616
uses: actions/setup-python@v1
1717
with:
18-
python-version: 3.8
18+
python-version: 3.9
1919

2020
- name: Update apt repositories
2121
run: sudo apt update
@@ -36,13 +36,13 @@ jobs:
3636
run: pip install poetry
3737

3838
- name: Cache poetry packages
39-
uses: actions/cache@v1
39+
uses: actions/cache@v4
4040
with:
4141
path: ~/.cache/pypoetry
4242
key: ${{ runner.os }}-build-cache-poetry-packages-${{ hashFiles('**/poetry.lock') }}
4343

4444
- name: Cache node modules
45-
uses: actions/cache@v1
45+
uses: actions/cache@v4
4646
with:
4747
path: ~/.npm
4848
key: ${{ runner.os }}-build-cache-npm-packages-${{ hashFiles('**/package-lock.json') }}

.github/workflows/pr-lint.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ jobs:
55
runs-on: ubuntu-latest
66
steps:
77
- name: Check ticket name conforms to requirements
8-
run: echo ${{ github.event.pull_request.head.ref }} | grep -i -E -q "((apm|niad|amb)-[0-9]+)|(dependabot\/)"
8+
run: echo ${{ github.event.pull_request.head.ref }} | grep -i -E -q "((apm|niad|amb|flagsapi)-[0-9]+)|(dependabot\/)"
99

1010
- name: Grab ticket name
1111
if: contains(github.event.pull_request.head.ref, 'apm-') || contains(github.event.pull_request.head.ref, 'APM-') || contains(github.event.pull_request.head.ref, 'niad-') || contains(github.event.pull_request.head.ref, 'NIAD-') || contains(github.event.pull_request.head.ref, 'amb-') || contains(github.event.pull_request.head.ref, 'AMB-')

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ guard-%:
99
install: install-node install-python install-hooks
1010

1111
install-python:
12-
poetry install
12+
poetry install --no-root
1313

1414
install-node:
1515
npm install
@@ -79,4 +79,4 @@ smoketest: pytest-guards
7979
poetry run python -m pytest -v --junitxml=smoketest-report.xml -s -m smoketest
8080

8181
prod-smoketest: pytest-guards
82-
poetry run python -m pytest -v --junitxml=smoketest-report.xml -s -m prodsmoketest
82+
poetry run python -m pytest -v --junitxml=smoketest-report.xml -s -m prodsmoketest

Pipfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ name = "pypi"
88
[dev-packages]
99

1010
[requires]
11-
python_version = "3.8"
11+
python_version = "3.9"

azure/azure-build-pipeline.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ variables:
2626
extends:
2727
template: azure/common/apigee-build.yml@common
2828
parameters:
29+
python_version: 3.9
2930
service_name: ${{ variables.service_name }}
3031
short_service_name: ${{ variables.short_service_name }}
3132

azure/azure-pr-pipeline.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ variables:
2929
extends:
3030
template: azure/common/apigee-deployment.yml@common
3131
parameters:
32+
python_version: 3.9
3233
service_name: ${{ variables.service_name }}
3334
service_base_path: ${{ variables.service_base_path }}
3435
short_service_name: ${{ variables.short_service_name }}

azure/templates/run-tests-int.yml

Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,16 @@ parameters:
55
default: false
66

77
steps:
8+
- task: UsePythonVersion@0
9+
inputs:
10+
versionSpec: "3.9"
11+
812
- task: s3-cache-action@1
913
inputs:
10-
key: 'poetry | $(SERVICE_NAME) | $(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/poetry.lock'
11-
location: '$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/.venv'
14+
key: "poetry | $(SERVICE_NAME) | $(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/poetry.lock"
15+
location: "$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/.venv"
1216
debug: true
13-
alias: 'Pytest'
17+
alias: "Pytest"
1418
displayName: cache pytest dependencies
1519

1620
- bash: |
@@ -20,44 +24,44 @@ steps:
2024
displayName: Setup pytests
2125
# Smoketests
2226
- ${{ if parameters.smoke_tests }}:
23-
- template: "azure/components/aws-assume-role.yml@common"
24-
parameters:
25-
role: "auto-ops"
26-
profile: "apm_ptl"
27-
- template: "azure/components/get-aws-secrets-and-ssm-params.yml@common"
28-
parameters:
29-
secret_file_ids:
30-
- ptl/app-credentials/jwt_testing/non-prod/JWT_TESTING_PRIVATE_KEY
31-
- ptl/app-credentials/jwt_testing/non-prod/ID_TOKEN_NHS_LOGIN_PRIVATE_KEY
32-
config_ids:
33-
- /ptl/azure-devops/summary-care-record/int/CLIENT_ID_INT
34-
secret_ids:
35-
- ptl/azure-devops/summary-care-record/int/CLIENT_SECRET_INT
36-
- bash: |
37-
wait
38-
sleep 350
39-
export RELEASE_RELEASEID=$(Build.BuildId)
40-
export SOURCE_COMMIT_ID=$(Build.SourceVersion)
41-
export APIGEE_ENVIRONMENT="$(ENVIRONMENT)"
42-
export SERVICE_BASE_PATH="$(SERVICE_BASE_PATH)"
43-
export STATUS_ENDPOINT_API_KEY="$(status-endpoint-api-key)"
44-
export APIGEE_PRODUCT="$(FULLY_QUALIFIED_SERVICE_NAME)"
45-
export OAUTH_PROXY="oauth2"
46-
export OAUTH_BASE_URI="https://$(ENVIRONMENT).api.service.nhs.uk"
47-
export APIGEE_API_TOKEN="$(secret.AccessToken)"
48-
export REDIRECT_URI="https://example.org/callback"
49-
export CLIENT_ID="$(CLIENT_ID_INT)"
50-
export CLIENT_SECRET="$(CLIENT_SECRET_INT)"
51-
export JWT_PRIVATE_KEY_ABSOLUTE_PATH="$(Pipeline.Workspace)/secrets/$(JWT_TESTING_PRIVATE_KEY)"
52-
export ID_TOKEN_NHS_LOGIN_PRIVATE_KEY_ABSOLUTE_PATH="$(Pipeline.Workspace)/secrets/$(ID_TOKEN_NHS_LOGIN_PRIVATE_KEY)"
53-
export JWT_PRIVATE_KEY_APP_RESTRICTED_ABSOLUTE_PATH=""
54-
export AUTHENTICATE_URL=""
55-
make prod-smoketest
56-
workingDirectory: $(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)
57-
displayName: Run smoketests
58-
- task: PublishTestResults@2
59-
displayName: 'Publish smoketest results'
60-
condition: always()
61-
inputs:
62-
testResultsFiles: '$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/smoketest-report.xml'
63-
failTaskOnFailedTests: true
27+
- template: "azure/components/aws-assume-role.yml@common"
28+
parameters:
29+
role: "auto-ops"
30+
profile: "apm_ptl"
31+
- template: "azure/components/get-aws-secrets-and-ssm-params.yml@common"
32+
parameters:
33+
secret_file_ids:
34+
- ptl/app-credentials/jwt_testing/non-prod/JWT_TESTING_PRIVATE_KEY
35+
- ptl/app-credentials/jwt_testing/non-prod/ID_TOKEN_NHS_LOGIN_PRIVATE_KEY
36+
config_ids:
37+
- /ptl/azure-devops/summary-care-record/int/CLIENT_ID_INT
38+
secret_ids:
39+
- ptl/azure-devops/summary-care-record/int/CLIENT_SECRET_INT
40+
- bash: |
41+
wait
42+
sleep 350
43+
export RELEASE_RELEASEID=$(Build.BuildId)
44+
export SOURCE_COMMIT_ID=$(Build.SourceVersion)
45+
export APIGEE_ENVIRONMENT="$(ENVIRONMENT)"
46+
export SERVICE_BASE_PATH="$(SERVICE_BASE_PATH)"
47+
export STATUS_ENDPOINT_API_KEY="$(status-endpoint-api-key)"
48+
export APIGEE_PRODUCT="$(FULLY_QUALIFIED_SERVICE_NAME)"
49+
export OAUTH_PROXY="oauth2"
50+
export OAUTH_BASE_URI="https://$(ENVIRONMENT).api.service.nhs.uk"
51+
export APIGEE_API_TOKEN="$(secret.AccessToken)"
52+
export REDIRECT_URI="https://example.org/callback"
53+
export CLIENT_ID="$(CLIENT_ID_INT)"
54+
export CLIENT_SECRET="$(CLIENT_SECRET_INT)"
55+
export JWT_PRIVATE_KEY_ABSOLUTE_PATH="$(Pipeline.Workspace)/secrets/$(JWT_TESTING_PRIVATE_KEY)"
56+
export ID_TOKEN_NHS_LOGIN_PRIVATE_KEY_ABSOLUTE_PATH="$(Pipeline.Workspace)/secrets/$(ID_TOKEN_NHS_LOGIN_PRIVATE_KEY)"
57+
export JWT_PRIVATE_KEY_APP_RESTRICTED_ABSOLUTE_PATH=""
58+
export AUTHENTICATE_URL=""
59+
make prod-smoketest
60+
workingDirectory: $(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)
61+
displayName: Run smoketests
62+
- task: PublishTestResults@2
63+
displayName: "Publish smoketest results"
64+
condition: always()
65+
inputs:
66+
testResultsFiles: "$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/smoketest-report.xml"
67+
failTaskOnFailedTests: true

azure/templates/run-tests-prod.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
steps:
2+
- task: UsePythonVersion@0
3+
inputs:
4+
versionSpec: "3.9"
5+
26
- task: s3-cache-action@1
37
inputs:
4-
key: 'poetry | $(SERVICE_NAME) | $(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/poetry.lock'
5-
location: '$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/.venv'
8+
key: "poetry | $(SERVICE_NAME) | $(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/poetry.lock"
9+
location: "$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/.venv"
610
debug: true
7-
alias: 'Pytest'
11+
alias: "Pytest"
812
displayName: cache pytest dependencies
913

1014
- bash: |
@@ -41,8 +45,8 @@ steps:
4145
workingDirectory: $(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)
4246
displayName: Run smoketests
4347
- task: PublishTestResults@2
44-
displayName: 'Publish smoketest results'
48+
displayName: "Publish smoketest results"
4549
condition: always()
4650
inputs:
47-
testResultsFiles: '$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/smoketest-report.xml'
51+
testResultsFiles: "$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/smoketest-report.xml"
4852
failTaskOnFailedTests: true

azure/templates/run-tests.yml

Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,16 @@ parameters:
55
default: false
66

77
steps:
8+
- task: UsePythonVersion@0
9+
inputs:
10+
versionSpec: "3.9"
11+
812
- task: s3-cache-action@1
913
inputs:
10-
key: 'poetry | $(SERVICE_NAME) | $(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/poetry.lock'
11-
location: '$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/.venv'
14+
key: "poetry | $(SERVICE_NAME) | $(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/poetry.lock"
15+
location: "$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/.venv"
1216
debug: true
13-
alias: 'Pytest'
17+
alias: "Pytest"
1418
displayName: cache pytest dependencies
1519

1620
- bash: |
@@ -20,44 +24,44 @@ steps:
2024
displayName: Setup pytests
2125
# Smoketests.
2226
- ${{ if parameters.smoke_tests }}:
23-
- template: "azure/components/aws-assume-role.yml@common"
24-
parameters:
25-
role: "auto-ops"
26-
profile: "apm_ptl"
27-
- template: "azure/components/get-aws-secrets-and-ssm-params.yml@common"
28-
parameters:
29-
secret_file_ids:
30-
- ptl/app-credentials/jwt_testing/non-prod/JWT_TESTING_PRIVATE_KEY
31-
- ptl/app-credentials/jwt_testing/non-prod/ID_TOKEN_NHS_LOGIN_PRIVATE_KEY
32-
- ptl/azure-devops/summary-care-record/JWT_TESTING_APP_RESTRICTED_PRIVATE_KEY
33-
config_ids:
34-
- /ptl/azure-devops/env-internal-dev/test-app/internal-testing-internal-dev/CLIENT_ID
35-
- /ptl/azure-devops/env-internal-dev/test-app/internal-testing-internal-dev/CLIENT_SECRET
36-
- bash: |
37-
wait
38-
sleep 350
39-
export RELEASE_RELEASEID=$(Build.BuildId)
40-
export SOURCE_COMMIT_ID=$(Build.SourceVersion)
41-
export APIGEE_ENVIRONMENT="$(ENVIRONMENT)"
42-
export SERVICE_BASE_PATH="$(SERVICE_BASE_PATH)"
43-
export STATUS_ENDPOINT_API_KEY="$(status-endpoint-api-key)"
44-
export APIGEE_PRODUCT="$(FULLY_QUALIFIED_SERVICE_NAME)"
45-
export OAUTH_PROXY="oauth2-mock"
46-
export OAUTH_BASE_URI="https://$(ENVIRONMENT).api.service.nhs.uk"
47-
export APIGEE_API_TOKEN="$(secret.AccessToken)"
48-
export REDIRECT_URI="https://example.org/callback"
49-
export CLIENT_ID="$(CLIENT_ID)"
50-
export CLIENT_SECRET="$(CLIENT_SECRET)"
51-
export JWT_PRIVATE_KEY_ABSOLUTE_PATH="$(Pipeline.Workspace)/secrets/$(JWT_TESTING_PRIVATE_KEY)"
52-
export JWT_PRIVATE_KEY_APP_RESTRICTED_ABSOLUTE_PATH="$(Pipeline.Workspace)/secrets/$(JWT_TESTING_APP_RESTRICTED_PRIVATE_KEY)"
53-
export ID_TOKEN_NHS_LOGIN_PRIVATE_KEY_ABSOLUTE_PATH="$(Pipeline.Workspace)/secrets/$(ID_TOKEN_NHS_LOGIN_PRIVATE_KEY)"
54-
export AUTHENTICATE_URL="https://nhsd-apim-testing-internal-dev.herokuapp.com/"
55-
make smoketest
56-
workingDirectory: $(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)
57-
displayName: Run smoketests
58-
- task: PublishTestResults@2
59-
displayName: 'Publish smoketest results'
60-
condition: always()
61-
inputs:
62-
testResultsFiles: '$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/smoketest-report.xml'
63-
failTaskOnFailedTests: true
27+
- template: "azure/components/aws-assume-role.yml@common"
28+
parameters:
29+
role: "auto-ops"
30+
profile: "apm_ptl"
31+
- template: "azure/components/get-aws-secrets-and-ssm-params.yml@common"
32+
parameters:
33+
secret_file_ids:
34+
- ptl/app-credentials/jwt_testing/non-prod/JWT_TESTING_PRIVATE_KEY
35+
- ptl/app-credentials/jwt_testing/non-prod/ID_TOKEN_NHS_LOGIN_PRIVATE_KEY
36+
- ptl/azure-devops/summary-care-record/JWT_TESTING_APP_RESTRICTED_PRIVATE_KEY
37+
config_ids:
38+
- /ptl/azure-devops/env-internal-dev/test-app/internal-testing-internal-dev/CLIENT_ID
39+
- /ptl/azure-devops/env-internal-dev/test-app/internal-testing-internal-dev/CLIENT_SECRET
40+
- bash: |
41+
wait
42+
sleep 350
43+
export RELEASE_RELEASEID=$(Build.BuildId)
44+
export SOURCE_COMMIT_ID=$(Build.SourceVersion)
45+
export APIGEE_ENVIRONMENT="$(ENVIRONMENT)"
46+
export SERVICE_BASE_PATH="$(SERVICE_BASE_PATH)"
47+
export STATUS_ENDPOINT_API_KEY="$(status-endpoint-api-key)"
48+
export APIGEE_PRODUCT="$(FULLY_QUALIFIED_SERVICE_NAME)"
49+
export OAUTH_PROXY="oauth2-mock"
50+
export OAUTH_BASE_URI="https://$(ENVIRONMENT).api.service.nhs.uk"
51+
export APIGEE_API_TOKEN="$(secret.AccessToken)"
52+
export REDIRECT_URI="https://example.org/callback"
53+
export CLIENT_ID="$(CLIENT_ID)"
54+
export CLIENT_SECRET="$(CLIENT_SECRET)"
55+
export JWT_PRIVATE_KEY_ABSOLUTE_PATH="$(Pipeline.Workspace)/secrets/$(JWT_TESTING_PRIVATE_KEY)"
56+
export JWT_PRIVATE_KEY_APP_RESTRICTED_ABSOLUTE_PATH="$(Pipeline.Workspace)/secrets/$(JWT_TESTING_APP_RESTRICTED_PRIVATE_KEY)"
57+
export ID_TOKEN_NHS_LOGIN_PRIVATE_KEY_ABSOLUTE_PATH="$(Pipeline.Workspace)/secrets/$(ID_TOKEN_NHS_LOGIN_PRIVATE_KEY)"
58+
export AUTHENTICATE_URL="https://nhsd-apim-testing-internal-dev.herokuapp.com/"
59+
make smoketest
60+
workingDirectory: $(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)
61+
displayName: Run smoketests
62+
- task: PublishTestResults@2
63+
displayName: "Publish smoketest results"
64+
condition: always()
65+
inputs:
66+
testResultsFiles: "$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/smoketest-report.xml"
67+
failTaskOnFailedTests: true

0 commit comments

Comments
 (0)