Promote Release Artefacts Pipeline #9
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: Promote Release Artefacts Pipeline | |
| # checkov:skip=CKV_GHA_7:Workflow dispatch inputs are required for manual triggering with environment selection | |
| on: | |
| workflow_dispatch: | |
| # checkov:skip=CKV_GHA_7:Inputs reviewed and approved | |
| inputs: | |
| release_tag: | |
| description: "Specify the release candidate tag to be used for promotion (e.g. v1.1.0-rc.1)" | |
| required: true | |
| type: string | |
| permissions: | |
| contents: write | |
| id-token: write | |
| jobs: | |
| validate-release-tag: | |
| name: "Check format of input release tag" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: "Validate release tag" | |
| id: validate | |
| run: | | |
| RELEASE_TAG="${{ inputs.release_tag }}" | |
| if [[ ! $RELEASE_TAG =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-rc\.[0-9]+)?$ ]]; then | |
| echo "Invalid release tag format: $RELEASE_TAG" | |
| exit 1 | |
| else | |
| echo "Release tag format is valid: $RELEASE_TAG" | |
| fi | |
| metadata: | |
| name: "Get CI/CD metadata" | |
| needs: | |
| - validate-release-tag | |
| uses: ./.github/workflows/metadata.yaml | |
| with: | |
| ref: ${{ inputs.release_tag }} | |
| promote-release: | |
| name: "Promote artefacts for release ${{ inputs.release_tag }}" | |
| needs: | |
| - metadata | |
| uses: ./.github/workflows/promote-artefacts.yaml | |
| with: | |
| repo_name: ${{ needs.metadata.outputs.reponame }} | |
| artefact_promotion_type: "release" | |
| type: app | |
| release_tag: ${{ inputs.release_tag }} | |
| secrets: inherit | |
| slack-notifications: | |
| name: "Send Notification to Slack" | |
| needs: | |
| - validate-release-tag | |
| - metadata | |
| - promote-release | |
| if: always() | |
| uses: ./.github/workflows/slack-notifications.yaml | |
| with: | |
| env: mgmt | |
| secrets: inherit |