Release-2: Tag, Release, Push #181
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-2: Tag, Release, Push" | |
| env: | |
| GIT_USERNAME: "DefectDojo release bot" | |
| GIT_EMAIL: "dojo-release-bot@users.noreply.github.com" | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| # the actual branch that can be chosen on the UI is made irrelevant by further steps | |
| # because someone will forget one day to change it. | |
| release_number: | |
| type: string | |
| description: 'Release version (x.y.z format)' | |
| required: true | |
| jobs: | |
| tag: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| ref: master | |
| - name: Configure git | |
| run: | | |
| git config --global user.name "${{ env.GIT_USERNAME }}" | |
| git config --global user.email "${{ env.GIT_EMAIL }}" | |
| - name: Create new tag ${{ inputs.release_number }} | |
| # at this point, the PR from the 1st workflow is merged into master. | |
| run: | | |
| git tag -a ${{ inputs.release_number }} -m "[bot] release ${{ inputs.release_number }}" | |
| git push origin ${{ inputs.release_number }} | |
| publish-docker-containers: | |
| needs: tag | |
| strategy: | |
| matrix: | |
| platform: ['linux/amd64', 'linux/arm64'] | |
| fail-fast: false | |
| uses: ./.github/workflows/release-x-manual-docker-containers.yml | |
| with: | |
| release_number: ${{ inputs.release_number }} | |
| platform: ${{ matrix.platform }} | |
| secrets: inherit | |
| publish-container-digests: | |
| needs: publish-docker-containers | |
| uses: ./.github/workflows/release-x-manual-merge-container-digests.yml | |
| with: | |
| release_number: ${{ inputs.release_number }} | |
| secrets: inherit | |
| # for releases we need to tag the images with the latest tag | |
| # this could be parametrized in the merge-container-digests workflow | |
| # but it's simpler to just add a explicit workflow for this here | |
| tag-as-latest: | |
| needs: publish-container-digests | |
| uses: ./.github/workflows/release-x-manual-tag-as-latest.yml | |
| with: | |
| release_number: ${{ inputs.release_number }} | |
| secrets: inherit | |
| release-helm-chart: | |
| needs: publish-container-digests | |
| uses: ./.github/workflows/release-x-manual-helm-chart.yml | |
| with: | |
| release_number: ${{ inputs.release_number }} | |
| secrets: inherit | |
| release-drafter: | |
| needs: publish-container-digests | |
| uses: ./.github/workflows/release-drafter.yml | |
| with: | |
| version: ${{ inputs.release_number }} | |
| secrets: inherit |