55 branches :
66 - main
77
8+ concurrency :
9+ group : release-please
10+ cancel-in-progress : false
11+
812defaults :
913 run :
1014 shell : bash
1115
1216jobs :
17+ # release-please owns tag + GitHub Release creation (no
18+ # skip-github-release). Because it tags every release inside its own run
19+ # — before it computes the next release PR — it always knows the previous
20+ # release boundary, so it never regenerates the changelog from the start
21+ # of history or proposes a spurious major bump. This job is kept minimal
22+ # so nothing downstream (changelog enrichment, release notes) can fail it.
1323 release-please :
1424 runs-on : ubuntu-latest
1525 permissions :
@@ -27,31 +37,39 @@ jobs:
2737 app-id : ${{ vars.SDK_BOT_APP_ID }}
2838 private-key : ${{ secrets.SDK_BOT_PRIVATE_KEY }}
2939
30- # release-please owns tag + GitHub Release creation (no
31- # skip-github-release). This keeps its release-state tracking intact:
32- # because it tags every release itself, it always knows the previous
33- # release boundary, so it never regenerates the changelog from the
34- # start of history or proposes a spurious major bump. The rich release
35- # body is applied afterward by the update-release-notes job below.
3640 - name : Run release-please
3741 id : release
3842 uses : googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0
3943 with :
4044 token : ${{ steps.generate-token.outputs.token }}
4145
46+ # While the release PR is open, enrich it before it merges. Runs as its
47+ # own job (gated on the PR existing) so a failure here can never block the
48+ # release or the PyPI publish that depends on release-please.
49+ enrich-release-pr :
50+ needs : release-please
51+ if : needs.release-please.outputs.pr
52+ runs-on : ubuntu-latest
53+ permissions :
54+ contents : write
55+ steps :
56+ - name : Generate token
57+ id : generate-token
58+ uses : actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # 3.1.1
59+ with :
60+ app-id : ${{ vars.SDK_BOT_APP_ID }}
61+ private-key : ${{ secrets.SDK_BOT_PRIVATE_KEY }}
62+
4263 - name : Checkout release PR branch
43- if : steps.release.outputs.pr
4464 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4565 with :
46- ref : ${{ fromJSON(steps .release.outputs.pr).headBranchName }}
66+ ref : ${{ fromJSON(needs .release-please .outputs.pr).headBranchName }}
4767 token : ${{ steps.generate-token.outputs.token }}
4868
4969 - name : Install uv
50- if : steps.release.outputs.pr
5170 uses : astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
5271
5372 - name : Update lockfile
54- if : steps.release.outputs.pr
5573 run : |
5674 uv lock
5775 git config user.name "workos-sdk-automation[bot]"
6886 # release-please wrote. Fragments are deleted in the same commit.
6987 # Idempotent: if no fragments exist, skip silently.
7088 - name : Inline rich changelog fragments
71- if : steps.release.outputs.pr
7289 env :
73- PR_JSON : ${{ steps .release.outputs.pr }}
90+ PR_JSON : ${{ needs .release-please .outputs.pr }}
7491 run : |
7592 set -euo pipefail
7693 shopt -s nullglob
0 commit comments