deploy to environments #108
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 to environments | |
| on: | |
| workflow_dispatch: | |
| env: | |
| BRANCH_NAME: ${{ github.event.ref.BRANCH_NAME }} | |
| jobs: | |
| get_asdf_version: | |
| runs-on: ubuntu-22.04 | |
| outputs: | |
| asdf_version: ${{ steps.asdf-version.outputs.version }} | |
| tag_format: ${{ steps.load-config.outputs.TAG_FORMAT }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 | |
| - name: Get asdf version | |
| id: asdf-version | |
| run: echo "version=$(awk '!/^#/ && NF {print $1; exit}' .tool-versions.asdf)" >> "$GITHUB_OUTPUT" | |
| - name: Load config value | |
| id: load-config | |
| run: | | |
| TAG_FORMAT=$(yq '.TAG_FORMAT' .github/config/settings.yml) | |
| echo "TAG_FORMAT=$TAG_FORMAT" >> "$GITHUB_OUTPUT" | |
| quality_checks: | |
| uses: NHSDigital/eps-common-workflows/.github/workflows/quality-checks.yml@41e3450a9869f278be0e431a4b47b5c77bd55559 | |
| needs: [get_asdf_version] | |
| secrets: | |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
| with: | |
| install_java: true | |
| asdfVersion: ${{ needs.get_asdf_version.outputs.asdf_version }} | |
| 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" | |
| tag_release: | |
| needs: [quality_checks, get_commit_id, get_asdf_version] | |
| uses: NHSDigital/eps-common-workflows/.github/workflows/tag-release.yml@41e3450a9869f278be0e431a4b47b5c77bd55559 | |
| with: | |
| dry_run: false | |
| asdfVersion: ${{ needs.get_asdf_version.outputs.asdf_version }} | |
| branch_name: main | |
| publish_package: false | |
| tag_format: ${{ needs.get_asdf_version.outputs.tag_format }} | |
| secrets: inherit | |
| package_code: | |
| needs: tag_release | |
| uses: ./.github/workflows/sam_package_code.yml | |
| release_dev: | |
| needs: [tag_release, package_code, get_commit_id] | |
| uses: ./.github/workflows/sam_release_code.yml | |
| with: | |
| ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} | |
| STACK_NAME: fhir-validator | |
| TARGET_ENVIRONMENT: dev | |
| BUILD_ARTIFACT: packaged_code | |
| VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} | |
| COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} | |
| LOG_LEVEL: INFO | |
| LOG_RETENTION_DAYS: 30 | |
| CREATE_INT_RELEASE_NOTES: true | |
| CREATE_PROD_RELEASE_NOTES: true | |
| ENABLE_ALERTS: true | |
| secrets: | |
| CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }} | |
| DEV_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_CHECK_VERSION_ROLE }} | |
| INT_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.INT_CLOUD_FORMATION_CHECK_VERSION_ROLE }} | |
| PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE }} | |
| DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE }} | |
| release_ref: | |
| needs: [tag_release, release_dev, package_code, get_commit_id] | |
| uses: ./.github/workflows/sam_release_code.yml | |
| with: | |
| ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} | |
| STACK_NAME: fhir-validator | |
| TARGET_ENVIRONMENT: ref | |
| BUILD_ARTIFACT: packaged_code | |
| VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} | |
| COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} | |
| LOG_LEVEL: INFO | |
| LOG_RETENTION_DAYS: 30 | |
| ENABLE_ALERTS: true | |
| secrets: | |
| CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.REF_CLOUD_FORMATION_DEPLOY_ROLE }} | |
| release_qa: | |
| needs: [tag_release, release_dev, package_code, get_commit_id] | |
| uses: ./.github/workflows/sam_release_code.yml | |
| with: | |
| ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} | |
| STACK_NAME: fhir-validator | |
| TARGET_ENVIRONMENT: qa | |
| BUILD_ARTIFACT: packaged_code | |
| VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} | |
| COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} | |
| LOG_LEVEL: INFO | |
| LOG_RETENTION_DAYS: 30 | |
| ENABLE_ALERTS: true | |
| secrets: | |
| CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.QA_CLOUD_FORMATION_DEPLOY_ROLE }} | |
| release_int: | |
| needs: [tag_release, release_qa, package_code, get_commit_id] | |
| uses: ./.github/workflows/sam_release_code.yml | |
| with: | |
| ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} | |
| STACK_NAME: fhir-validator | |
| TARGET_ENVIRONMENT: int | |
| BUILD_ARTIFACT: packaged_code | |
| VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} | |
| COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} | |
| LOG_LEVEL: INFO | |
| LOG_RETENTION_DAYS: 30 | |
| CREATE_INT_RELEASE_NOTES: true | |
| CREATE_INT_RC_RELEASE_NOTES: true | |
| ENABLE_ALERTS: true | |
| secrets: | |
| CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.INT_CLOUD_FORMATION_DEPLOY_ROLE }} | |
| DEV_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_CHECK_VERSION_ROLE }} | |
| INT_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.INT_CLOUD_FORMATION_CHECK_VERSION_ROLE }} | |
| PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE }} | |
| DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE }} | |
| release_prod: | |
| needs: [tag_release, release_int, package_code, get_commit_id] | |
| uses: ./.github/workflows/sam_release_code.yml | |
| with: | |
| ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} | |
| STACK_NAME: fhir-validator | |
| TARGET_ENVIRONMENT: prod | |
| BUILD_ARTIFACT: packaged_code | |
| VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} | |
| COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} | |
| LOG_LEVEL: INFO | |
| LOG_RETENTION_DAYS: 731 | |
| MARK_JIRA_RELEASED: true | |
| CREATE_PROD_RELEASE_NOTES: true | |
| ENABLE_ALERTS: true | |
| secrets: | |
| CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.PROD_CLOUD_FORMATION_DEPLOY_ROLE }} | |
| DEV_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_CHECK_VERSION_ROLE }} | |
| INT_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.INT_CLOUD_FORMATION_CHECK_VERSION_ROLE }} | |
| PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE }} | |
| DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE }} |