diff --git a/.github/workflows/code_quality.yml b/.github/workflows/code_quality.yml index b660004..e6ec9ee 100644 --- a/.github/workflows/code_quality.yml +++ b/.github/workflows/code_quality.yml @@ -8,6 +8,9 @@ on: branch: required: false type: string + tag: + required: false + type: string jobs: Test: @@ -20,3 +23,4 @@ jobs: with: os: ${{ matrix.os }} python-version: ${{ matrix.python-version }} + ref: ${{inputs.tag}} diff --git a/.github/workflows/release_bump.yml b/.github/workflows/release_bump.yml index d079a04..6b6a87d 100644 --- a/.github/workflows/release_bump.yml +++ b/.github/workflows/release_bump.yml @@ -17,15 +17,8 @@ concurrency: group: release jobs: - UnitTests: - name: Unit Tests - uses: ./.github/workflows/code_quality.yml - with: - branch: mainline - Bump: name: Version Bump - needs: UnitTests uses: OpenJobDescription/.github/.github/workflows/reusable_bump.yml@mainline secrets: inherit with: diff --git a/.github/workflows/release_publish.yml b/.github/workflows/release_publish.yml index ff79738..04ff087 100644 --- a/.github/workflows/release_publish.yml +++ b/.github/workflows/release_publish.yml @@ -1,5 +1,5 @@ name: "Release: Publish" -run-name: "Release: ${{ github.event.head_commit.message }}" +run-name: "Release: ${{ github.event.head_commit.message || inputs.tag }}" on: push: @@ -7,20 +7,62 @@ on: - mainline paths: - CHANGELOG.md + workflow_dispatch: + inputs: + tag: + required: true + type: string + description: Specify a tag to re-run a release. concurrency: group: release +permissions: + contents: read + jobs: + TagRelease: + uses: OpenJobDescription/.github/.github/workflows/reusable_tag_release.yml@mainline + secrets: inherit + with: + tag: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || '' }} + + UnitTests: + name: Unit Tests + needs: TagRelease + uses: ./.github/workflows/code_quality.yml + with: + tag: ${{ needs.TagRelease.outputs.tag }} + + PreRelease: + needs: [TagRelease, UnitTests] + uses: OpenJobDescription/.github/.github/workflows/reusable_prerelease.yml@mainline + permissions: + id-token: write + contents: write + secrets: inherit + with: + tag: ${{ needs.TagRelease.outputs.tag }} + + Release: + needs: [TagRelease, PreRelease] + uses: OpenJobDescription/.github/.github/workflows/reusable_release.yml@mainline + secrets: inherit + permissions: + id-token: write + contents: write + with: + tag: ${{ needs.TagRelease.outputs.tag }} + Publish: - name: Publish Release + needs: [TagRelease, Release] + uses: OpenJobDescription/.github/.github/workflows/reusable_publish_python.yml@mainline permissions: id-token: write - contents: write - uses: OpenJobDescription/.github/.github/workflows/reusable_publish.yml@mainline secrets: inherit - # PyPI does not support reusable workflows yet - # # See https://github.com/pypi/warehouse/issues/11096 + with: + tag: ${{ needs.TagRelease.outputs.tag }} + PublishToPyPI: needs: Publish runs-on: ubuntu-latest