1414
1515jobs :
1616 # ─────────────────────────────────────────────────────────────
17- # Changesets: Version management and release PR
17+ # Release PR: Create/update release PR with version bump
1818 # ─────────────────────────────────────────────────────────────
19- changesets :
19+ release-pr :
2020 runs-on : ubuntu-latest
2121 permissions :
2222 contents : write
2323 pull-requests : write
24- outputs :
25- published : ${{ steps.changesets.outputs.published }}
26- publishedPackages : ${{ steps.changesets.outputs.publishedPackages }}
27- version : ${{ steps.get-version.outputs.version }}
2824 steps :
2925 - uses : actions/checkout@v4
3026 with :
3127 fetch-depth : 0
28+ persist-credentials : false
3229
33- - uses : pnpm/action-setup@v4
34- - uses : actions/setup-node@v4
30+ - uses : dtolnay/rust-toolchain@stable
31+
32+ - name : Create/Update Release PR
33+ uses : release-plz/action@v0.5
3534 with :
36- node-version : 20
37- cache : ' pnpm'
35+ command : release-pr
36+ env :
37+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
3838
39- - run : pnpm install --frozen-lockfile
39+ # ─────────────────────────────────────────────────────────────
40+ # Release: Create git tag and GitHub release when PR is merged
41+ # ─────────────────────────────────────────────────────────────
42+ release :
43+ runs-on : ubuntu-latest
44+ permissions :
45+ contents : write
46+ outputs :
47+ releases_created : ${{ steps.release-plz.outputs.releases_created }}
48+ version : ${{ steps.get-version.outputs.version }}
49+ steps :
50+ - uses : actions/checkout@v4
51+ with :
52+ fetch-depth : 0
53+ persist-credentials : false
54+
55+ - uses : dtolnay/rust-toolchain@stable
4056
41- - name : Create Release PR or Publish
42- id : changesets
43- uses : changesets /action@v1
57+ - name : Create Release
58+ id : release-plz
59+ uses : release-plz /action@v0.5
4460 with :
45- title : ' chore: version packages'
46- commit : ' chore: version packages'
47- version : pnpm changeset version
48- publish : pnpm run publish
49- createGithubReleases : true
61+ command : release
5062 env :
5163 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
5264
53- - name : Get version from package.json
65+ - name : Extract version from tag
5466 id : get-version
55- if : steps.changesets .outputs.published == 'true'
67+ if : steps.release-plz .outputs.releases_created == 'true'
5668 run : |
57- VERSION=$(node -p "require('./apps/desktop/package.json').version")
69+ TAG="${{ steps.release-plz.outputs.tag }}"
70+ VERSION="${TAG#v}"
5871 echo "version=$VERSION" >> $GITHUB_OUTPUT
72+ echo "Released version: $VERSION"
5973
6074 # ─────────────────────────────────────────────────────────────
61- # Build and Release: Triggered when changesets publishes
75+ # Build Release: Build Tauri app when release is created
6276 # ─────────────────────────────────────────────────────────────
6377 build-release :
64- needs : changesets
65- if : needs.changesets .outputs.published == 'true'
78+ needs : release
79+ if : needs.release .outputs.releases_created == 'true'
6680 strategy :
6781 fail-fast : false
6882 matrix :
@@ -146,9 +160,9 @@ jobs:
146160 APPLE_PASSWORD : ${{ secrets.APPLE_PASSWORD }}
147161 APPLE_TEAM_ID : ${{ secrets.APPLE_TEAM_ID }}
148162 with :
149- tagName : v${{ needs.changesets .outputs.version }}
150- releaseName : ' McpMux v${{ needs.changesets .outputs.version }}'
151- releaseBody : ' '
163+ tagName : v${{ needs.release .outputs.version }}
164+ releaseName : ' McpMux v${{ needs.release .outputs.version }}'
165+ releaseBody : ' ' # Release notes already created by release-plz
152166 releaseDraft : false
153167 prerelease : false
154168 updaterJsonKeepUniversal : true
@@ -157,7 +171,7 @@ jobs:
157171 # Nightly: Build on every push (no release)
158172 # ─────────────────────────────────────────────────────────────
159173 nightly :
160- if : " github.event_name == 'push' && !contains(github.event.head_commit.message, 'chore: version packages ')"
174+ if : " github.event_name == 'push' && !contains(github.event.head_commit.message, 'chore: release ')"
161175 strategy :
162176 fail-fast : false
163177 matrix :
0 commit comments