release workflow #35
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: release workflow | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: "0 8 * * 3" | |
| env: | |
| BRANCH_NAME: ${{ github.ref_name }} | |
| jobs: | |
| get_config_values: | |
| uses: NHSDigital/eps-common-workflows/.github/workflows/get-repo-config.yml@8404cf6e3a61ac8de4d1644e175e288aa4965815 | |
| with: | |
| verify_published_from_main_image: true | |
| get_commit_id: | |
| runs-on: ubuntu-22.04 | |
| outputs: | |
| commit_id: ${{ steps.commit_id.outputs.commit_id }} | |
| sha_short: ${{ steps.commit_id.outputs.sha_short }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd | |
| with: | |
| ref: ${{ env.BRANCH_NAME }} | |
| - name: Get Commit ID | |
| id: commit_id | |
| run: | | |
| # echo "commit_id=${{ github.sha }}" >> "$GITHUB_ENV" | |
| echo "commit_id=${{ github.sha }}" >> "$GITHUB_OUTPUT" | |
| echo "sha_short=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT" | |
| quality_checks: | |
| uses: NHSDigital/eps-common-workflows/.github/workflows/quality-checks-devcontainer.yml@8404cf6e3a61ac8de4d1644e175e288aa4965815 | |
| needs: [get_config_values, get_commit_id] | |
| with: | |
| pinned_image: ${{ needs.get_config_values.outputs.pinned_image }} | |
| run_docker_scan: true | |
| docker_images: "eps-cdk-utils" | |
| secrets: | |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
| tag_release: | |
| needs: [quality_checks, get_commit_id, get_config_values] | |
| uses: NHSDigital/eps-common-workflows/.github/workflows/tag-release-devcontainer.yml@8404cf6e3a61ac8de4d1644e175e288aa4965815 | |
| with: | |
| dry_run: false | |
| pinned_image: ${{ needs.get_config_values.outputs.pinned_image }} | |
| branch_name: main | |
| publish_packages: packages/cdkConstructs,packages/deploymentUtils | |
| tag_format: ${{ needs.get_config_values.outputs.tag_format }} | |
| secrets: inherit | |
| package_code: | |
| needs: [tag_release, quality_checks, get_commit_id, get_config_values] | |
| uses: ./.github/workflows/docker_image_build.yml | |
| with: | |
| VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} | |
| COMMIT_ID: ${{ needs.get_commit_id.outputs.commit_id }} | |
| pinned_image: ${{ needs.get_config_values.outputs.pinned_image }} | |
| release_dev: | |
| needs: [tag_release, package_code, get_commit_id, get_config_values] | |
| uses: ./.github/workflows/docker_image_upload.yml | |
| with: | |
| pinned_image: ${{ needs.get_config_values.outputs.pinned_image }} | |
| AWS_ENVIRONMENT: dev | |
| VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} | |
| COMMIT_ID: ${{ needs.get_commit_id.outputs.commit_id }} | |
| TAG_LATEST: true | |
| DOCKER_IMAGE_TAG: ${{needs.tag_release.outputs.version_tag}} | |
| secrets: | |
| CDK_PUSH_IMAGE_ROLE: ${{ secrets.DEV_CDK_PUSH_IMAGE_ROLE }} | |
| release_qa: | |
| needs: | |
| [tag_release, release_dev, package_code, get_commit_id, get_config_values] | |
| uses: ./.github/workflows/docker_image_upload.yml | |
| with: | |
| pinned_image: ${{ needs.get_config_values.outputs.pinned_image }} | |
| AWS_ENVIRONMENT: qa | |
| VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} | |
| COMMIT_ID: ${{ needs.get_commit_id.outputs.commit_id }} | |
| TAG_LATEST: true | |
| DOCKER_IMAGE_TAG: ${{needs.tag_release.outputs.version_tag}} | |
| secrets: | |
| CDK_PUSH_IMAGE_ROLE: ${{ secrets.QA_CDK_PUSH_IMAGE_ROLE }} | |
| release_ref: | |
| needs: | |
| [tag_release, release_dev, package_code, get_commit_id, get_config_values] | |
| uses: ./.github/workflows/docker_image_upload.yml | |
| with: | |
| pinned_image: ${{ needs.get_config_values.outputs.pinned_image }} | |
| AWS_ENVIRONMENT: ref | |
| VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} | |
| COMMIT_ID: ${{ needs.get_commit_id.outputs.commit_id }} | |
| TAG_LATEST: true | |
| DOCKER_IMAGE_TAG: ${{needs.tag_release.outputs.version_tag}} | |
| secrets: | |
| CDK_PUSH_IMAGE_ROLE: ${{ secrets.REF_CDK_PUSH_IMAGE_ROLE }} | |
| release_int: | |
| needs: | |
| [tag_release, release_qa, package_code, get_commit_id, get_config_values] | |
| uses: ./.github/workflows/docker_image_upload.yml | |
| with: | |
| pinned_image: ${{ needs.get_config_values.outputs.pinned_image }} | |
| AWS_ENVIRONMENT: int | |
| VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} | |
| COMMIT_ID: ${{ needs.get_commit_id.outputs.commit_id }} | |
| TAG_LATEST: true | |
| DOCKER_IMAGE_TAG: ${{needs.tag_release.outputs.version_tag}} | |
| secrets: | |
| CDK_PUSH_IMAGE_ROLE: ${{ secrets.INT_CDK_PUSH_IMAGE_ROLE }} | |
| release_prod: | |
| needs: | |
| [tag_release, release_int, package_code, get_commit_id, get_config_values] | |
| uses: ./.github/workflows/docker_image_upload.yml | |
| with: | |
| pinned_image: ${{ needs.get_config_values.outputs.pinned_image }} | |
| AWS_ENVIRONMENT: prod | |
| VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} | |
| COMMIT_ID: ${{ needs.get_commit_id.outputs.commit_id }} | |
| TAG_LATEST: true | |
| DOCKER_IMAGE_TAG: ${{needs.tag_release.outputs.version_tag}} | |
| secrets: | |
| CDK_PUSH_IMAGE_ROLE: ${{ secrets.PROD_CDK_PUSH_IMAGE_ROLE }} |