diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml index f0ed16ac..ae64fd58 100644 --- a/.github/workflows/prepare-release.yml +++ b/.github/workflows/prepare-release.yml @@ -16,11 +16,11 @@ on: required: true type: string default: "main" - tc_keep: - description: "Remove towncrier fragments" + pre_release: + description: "Pre-release? (Don't render changelog)" required: true type: boolean - default: true + default: false concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -30,6 +30,14 @@ jobs: pre_release_tasks: runs-on: ubuntu-latest steps: + - name: Validate input + run: | + if [[ ${{ inputs.version }} = v* ]] + then + echo "::error title=Invalid Version::Invalid version number given" + exit 1 + fi + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -91,8 +99,9 @@ jobs: echo "${{ steps.markdown-changelog.outputs.content }}" - name: Run towncrier + if: ${{ ! inputs.pre_release }} run: | - towncrier build --version ${{ inputs.version }} ${{ inputs.tc_keep && '--yes' || '--keep' }} + towncrier build --version ${{ inputs.version }} --yes - name: Run pre-commit run: | @@ -102,7 +111,7 @@ jobs: - name: Commit Changelog run: | - git commit -m "Render changelog for v${{ inputs.version }}" + git diff-index --quiet HEAD -- || git commit -m "Render changelog for v${{ inputs.version }}" - name: Create Pull Request uses: peter-evans/create-pull-request@v6 @@ -127,5 +136,6 @@ jobs: tag_name: "v${{ inputs.version }}", name: "v${{ inputs.version }}", body: `${{ steps.markdown-changelog.outputs.content }}`, - draft: true + draft: true, + prerelease: ${{ inputs.pre_release }} });