diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6a41042c2..b24f4c0e8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -320,6 +320,7 @@ jobs: runs-on: ubuntu-latest permissions: contents: write + pull-requests: write needs: - prepare-release - integration_test @@ -347,6 +348,22 @@ jobs: run: pnpm run release-github env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Mark merged release PR as tagged + # skip-github-release in release-please-config.json means release-please + # never sees this release finalized, so it never flips the merged release + # PR's label from "autorelease: pending" to "autorelease: tagged" itself. + # Without this, release-please permanently refuses to open the next + # release PR ("There are untagged, merged release PRs outstanding"). + # The "autorelease: tagged" label itself is created once, repo-wide. + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + pr=$(gh api "repos/${{ github.repository }}/commits/${{ github.sha }}/pulls" --jq '.[0].number // empty') + if [ -z "${pr}" ]; then + echo "No pull request associated with ${{ github.sha }}, skipping relabel" + exit 0 + fi + gh pr edit "${pr}" --remove-label "autorelease: pending" --add-label "autorelease: tagged" publish_release: permissions: