Skip to content

New: [AEA-6257] - scaffold app with CDK #7426

New: [AEA-6257] - scaffold app with CDK

New: [AEA-6257] - scaffold app with CDK #7426

Workflow file for this run

name: deploy_pr
on:
pull_request:
branches: [main]
env:
BRANCH_NAME: ${{ github.event.pull_request.head.ref }}
jobs:
dependabot-auto-approve-and-merge:
needs: quality_checks
uses: NHSDigital/eps-common-workflows/.github/workflows/dependabot-auto-approve-and-merge.yml@5ac2707dd9cd60ad127275179495b9c890d74711
secrets:
AUTOMERGE_APP_ID: ${{ secrets.AUTOMERGE_APP_ID }}
AUTOMERGE_PEM: ${{ secrets.AUTOMERGE_PEM }}
get_config_values:
uses: NHSDigital/eps-common-workflows/.github/workflows/get-repo-config.yml@5ac2707dd9cd60ad127275179495b9c890d74711
with:
verify_published_from_main_image: false
quality_checks:
uses: NHSDigital/eps-common-workflows/.github/workflows/quality-checks-devcontainer.yml@5ac2707dd9cd60ad127275179495b9c890d74711
needs: [get_config_values]
with:
pinned_image: ${{ needs.get_config_values.outputs.pinned_image }}
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
pr_title_format_check:
uses: NHSDigital/eps-common-workflows/.github/workflows/pr_title_check.yml@5ac2707dd9cd60ad127275179495b9c890d74711
get_issue_number:
runs-on: ubuntu-22.04
needs: quality_checks
outputs:
issue_number: ${{steps.get_issue_number.outputs.result}}
steps:
- uses: actions/github-script@v8
name: get issue number
id: get_issue_number
with:
script: |
if (context.issue.number) {
// Return issue number if present
return context.issue.number;
} else {
// Otherwise return issue number from commit
return (
await github.rest.repos.listPullRequestsAssociatedWithCommit({
commit_sha: context.sha,
owner: context.repo.owner,
repo: context.repo.repo,
})
).data[0].number;
}
result-encoding: string
tag_release:
needs: [get_config_values]
uses: NHSDigital/eps-common-workflows/.github/workflows/tag-release-devcontainer.yml@5ac2707dd9cd60ad127275179495b9c890d74711
permissions:
id-token: write
contents: write
with:
dry_run: true
pinned_image: ${{ needs.get_config_values.outputs.pinned_image }}
branch_name: ${{ github.event.pull_request.head.ref }}
tag_format: ${{ needs.get_config_values.outputs.tag_format }}
secrets: inherit
get_commit_id:
runs-on: ubuntu-22.04
outputs:
commit_id: ${{ steps.commit_id.outputs.commit_id }}
steps:
- name: Get Commit ID
id: commit_id
run: |
echo "commit_id=${{ github.sha }}" >> "$GITHUB_OUTPUT"
set_deploy_mode:
runs-on: ubuntu-22.04
outputs:
is_cdk_deploy: ${{ steps.deploy_mode.outputs.is_cdk_deploy }}
steps:
- name: Set deploy mode from PR title
id: deploy_mode
run: |
echo "is_cdk_deploy=${{ contains(github.event.pull_request.title, '[CDK]') }}" >> "$GITHUB_OUTPUT"
- name: Summarize deploy mode
env:
PR_TITLE: ${{ github.event.pull_request.title }}
IS_CDK_DEPLOY: ${{ steps.deploy_mode.outputs.is_cdk_deploy }}
run: |
echo "PR title: ${PR_TITLE}" >> "$GITHUB_STEP_SUMMARY"
echo "is_cdk_deploy: ${IS_CDK_DEPLOY}" >> "$GITHUB_STEP_SUMMARY"
package_code:
if: ${{ needs.set_deploy_mode.outputs.is_cdk_deploy != 'true' }}
needs: [get_issue_number, tag_release, get_config_values, set_deploy_mode]
uses: ./.github/workflows/sam_package_code.yml
with:
pinned_image: ${{ needs.get_config_values.outputs.pinned_image }}
release_code:
if: ${{ needs.set_deploy_mode.outputs.is_cdk_deploy != 'true' }}
needs: [get_issue_number, package_code, get_commit_id, get_config_values, set_deploy_mode]
uses: ./.github/workflows/sam_release_code.yml
with:
IS_PULL_REQUEST: true
STACK_NAME: pfp-pr-${{needs.get_issue_number.outputs.issue_number}}
ARTIFACT_BUCKET_PREFIX: PR-${{needs.get_issue_number.outputs.issue_number}}
TARGET_ENVIRONMENT: dev
APIGEE_ENVIRONMENT: internal-dev
ENABLE_MUTUAL_TLS: false
MTLS_KEY: prescriptions-for-patients-mtls-1
BUILD_ARTIFACT: packaged_code
TRUSTSTORE_FILE: pfp-truststore-pr.pem
VERSION_NUMBER: PR-${{ needs.get_issue_number.outputs.issue_number }}
COMMIT_ID: ${{ needs.get_commit_id.outputs.commit_id }}
LOG_LEVEL: DEBUG
LOG_RETENTION_DAYS: 30
TOGGLE_GET_STATUS_UPDATES: true
ENABLE_ALERTS: false
STATE_MACHINE_LOG_LEVEL: ALL
RUN_REGRESSION_TESTS: true
REGRESSION_TEST_PRODUCT: PFP-AWS
FORWARD_CSOC_LOGS: false
DEPLOY_APIGEE: true
ALLOW_NHS_NUMBER_OVERRIDE: true
pinned_image: ${{ needs.get_config_values.outputs.pinned_image }}
secrets:
REGRESSION_TESTS_PEM: ${{ secrets.REGRESSION_TESTS_PEM }}
CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }}
TARGET_SPINE_SERVER: ${{ secrets.DEV_TARGET_SPINE_SERVER }}
TARGET_SERVICE_SEARCH_SERVER: ${{ secrets.DEV_TARGET_SERVICE_SEARCH_SERVER }}
PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PTL_ROLE }}
release_sandbox_code:
if: ${{ needs.set_deploy_mode.outputs.is_cdk_deploy != 'true' }}
needs: [get_issue_number, package_code, get_commit_id, get_config_values, set_deploy_mode]
uses: ./.github/workflows/sam_release_code.yml
with:
IS_PULL_REQUEST: true
STACK_NAME: pfp-pr-${{needs.get_issue_number.outputs.issue_number}}-sandbox
ARTIFACT_BUCKET_PREFIX: PR-sandbox-${{needs.get_issue_number.outputs.issue_number}}
TARGET_ENVIRONMENT: dev
APIGEE_ENVIRONMENT: internal-dev-sandbox
ENABLE_MUTUAL_TLS: false
MTLS_KEY: prescriptions-for-patients-mtls-1
BUILD_ARTIFACT: packaged_sandbox_code
TRUSTSTORE_FILE: pfp-sandbox-truststore.pem
VERSION_NUMBER: PR-${{ needs.get_issue_number.outputs.issue_number }}
COMMIT_ID: ${{ needs.get_commit_id.outputs.commit_id }}
LOG_LEVEL: DEBUG
LOG_RETENTION_DAYS: 30
STATE_MACHINE_LOG_LEVEL: ALL
RUN_REGRESSION_TESTS: false
FORWARD_CSOC_LOGS: false
DEPLOY_APIGEE: false
ALLOW_NHS_NUMBER_OVERRIDE: true
pinned_image: ${{ needs.get_config_values.outputs.pinned_image }}
secrets:
REGRESSION_TESTS_PEM: ${{ secrets.REGRESSION_TESTS_PEM }}
CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }}
TARGET_SPINE_SERVER: sandbox
TARGET_SERVICE_SEARCH_SERVER: sandbox
PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PTL_ROLE }}
package_cdk_code:
if: ${{ needs.set_deploy_mode.outputs.is_cdk_deploy == 'true' }}
needs: [get_issue_number, tag_release, get_config_values, set_deploy_mode]
uses: ./.github/workflows/cdk_package_code.yml
with:
pinned_image: ${{ needs.get_config_values.outputs.pinned_image }}
release_cdk_code:
if: ${{ needs.set_deploy_mode.outputs.is_cdk_deploy == 'true' }}
needs: [get_issue_number, package_cdk_code, get_commit_id, get_config_values, set_deploy_mode]
uses: ./.github/workflows/cdk_release_code.yml
with:
IS_PULL_REQUEST: true
STACK_NAME: pfp-pr-cdk-${{needs.get_issue_number.outputs.issue_number}}
TARGET_ENVIRONMENT: dev
APIGEE_ENVIRONMENT: internal-dev
# TODO: needed?
# APIM_STATUS_API_KEY: ${{ secrets.APIM_STATUS_API_KEY }}
ENABLE_MUTUAL_TLS: false
MTLS_KEY: prescriptions-for-patients-mtls-1
BUILD_ARTIFACT: build_artifact
TRUSTSTORE_FILE: pfp-truststore-pr.pem
VERSION_NUMBER: PR-${{ needs.get_issue_number.outputs.issue_number }}
COMMIT_ID: ${{ needs.get_commit_id.outputs.commit_id }}
LOG_LEVEL: DEBUG
LOG_RETENTION_DAYS: 30
TOGGLE_GET_STATUS_UPDATES: true
ENABLE_ALERTS: false
STATE_MACHINE_LOG_LEVEL: ALL
RUN_REGRESSION_TESTS: false # Don't run regression tests on CDK yet
REGRESSION_TEST_PRODUCT: PFP-AWS
FORWARD_CSOC_LOGS: false
DEPLOY_APIGEE: true
ALLOW_NHS_NUMBER_OVERRIDE: true
pinned_image: ${{ needs.get_config_values.outputs.pinned_image }}
secrets:
REGRESSION_TESTS_PEM: ${{ secrets.REGRESSION_TESTS_PEM }}
CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }}
TARGET_SPINE_SERVER: ${{ secrets.DEV_TARGET_SPINE_SERVER }}
TARGET_SERVICE_SEARCH_SERVER: ${{ secrets.DEV_TARGET_SERVICE_SEARCH_SERVER }}
PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PTL_ROLE }}
release_cdk_sandbox_code:
if: ${{ needs.set_deploy_mode.outputs.is_cdk_deploy == 'true' }}
needs: [get_issue_number, package_cdk_code, get_commit_id, get_config_values, set_deploy_mode]
uses: ./.github/workflows/cdk_release_code.yml
with:
IS_PULL_REQUEST: true
STACK_NAME: pfp-pr-cdk-${{needs.get_issue_number.outputs.issue_number}}-sandbox
TARGET_ENVIRONMENT: dev
APIGEE_ENVIRONMENT: internal-dev-sandbox
ENABLE_MUTUAL_TLS: false
MTLS_KEY: prescriptions-for-patients-mtls-1
BUILD_ARTIFACT: build_artifact
TRUSTSTORE_FILE: pfp-sandbox-truststore.pem
VERSION_NUMBER: PR-${{ needs.get_issue_number.outputs.issue_number }}
COMMIT_ID: ${{ needs.get_commit_id.outputs.commit_id }}
LOG_LEVEL: DEBUG
LOG_RETENTION_DAYS: 30
TOGGLE_GET_STATUS_UPDATES: true
ENABLE_ALERTS: false
STATE_MACHINE_LOG_LEVEL: ALL
RUN_REGRESSION_TESTS: false
REGRESSION_TEST_PRODUCT: PFP-AWS
FORWARD_CSOC_LOGS: false
DEPLOY_APIGEE: false
ALLOW_NHS_NUMBER_OVERRIDE: true
pinned_image: ${{ needs.get_config_values.outputs.pinned_image }}
secrets:
REGRESSION_TESTS_PEM: ${{ secrets.REGRESSION_TESTS_PEM }}
CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }}
TARGET_SPINE_SERVER: sandbox
TARGET_SERVICE_SEARCH_SERVER: sandbox
PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PTL_ROLE }}