New: [AEA-6257] - scaffold app with CDK #7426
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |