|
14 | 14 |
|
15 | 15 | jobs: |
16 | 16 | # ───────────────────────────────────────────────────────────── |
17 | | - # Release PR: Create/update release PR with version bump |
| 17 | + # Release Please: Create/update release PR with version bump |
18 | 18 | # ───────────────────────────────────────────────────────────── |
19 | | - release-pr: |
| 19 | + release-please: |
20 | 20 | runs-on: ubuntu-latest |
21 | 21 | permissions: |
22 | 22 | contents: write |
23 | 23 | pull-requests: write |
24 | | - steps: |
25 | | - - uses: actions/checkout@v4 |
26 | | - with: |
27 | | - fetch-depth: 0 |
28 | | - persist-credentials: false |
29 | | - |
30 | | - - uses: dtolnay/rust-toolchain@stable |
31 | | - |
32 | | - - name: Create/Update Release PR |
33 | | - uses: release-plz/action@v0.5 |
34 | | - with: |
35 | | - command: release-pr |
36 | | - env: |
37 | | - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
38 | | - |
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 | 24 | outputs: |
47 | | - releases_created: ${{ steps.release-plz.outputs.releases_created }} |
48 | | - version: ${{ steps.get-version.outputs.version }} |
49 | | - tag: ${{ steps.get-version.outputs.tag }} |
| 25 | + release_created: ${{ steps.release.outputs.release_created }} |
| 26 | + tag_name: ${{ steps.release.outputs.tag_name }} |
| 27 | + version: ${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} |
50 | 28 | steps: |
51 | | - - uses: actions/checkout@v4 |
| 29 | + - uses: googleapis/release-please-action@v4 |
| 30 | + id: release |
52 | 31 | with: |
53 | | - fetch-depth: 0 |
54 | | - persist-credentials: false |
55 | | - |
56 | | - - uses: dtolnay/rust-toolchain@stable |
57 | | - |
58 | | - - name: Create Release |
59 | | - id: release-plz |
60 | | - uses: release-plz/action@v0.5 |
61 | | - with: |
62 | | - command: release |
63 | | - env: |
64 | | - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
65 | | - |
66 | | - - name: Extract version from releases output |
67 | | - id: get-version |
68 | | - if: steps.release-plz.outputs.releases_created == 'true' |
69 | | - env: |
70 | | - RELEASES: ${{ steps.release-plz.outputs.releases }} |
71 | | - run: | |
72 | | - # Parse the releases JSON to get tag and version |
73 | | - # Example: [{"package_name":"mcpmux","tag":"v0.1.0","version":"0.1.0"}] |
74 | | - TAG=$(echo "$RELEASES" | jq -r '.[0].tag') |
75 | | - VERSION=$(echo "$RELEASES" | jq -r '.[0].version') |
76 | | - echo "tag=$TAG" >> $GITHUB_OUTPUT |
77 | | - echo "version=$VERSION" >> $GITHUB_OUTPUT |
78 | | - echo "Released tag: $TAG, version: $VERSION" |
| 32 | + # Use manifest mode for Rust project |
| 33 | + manifest-file: .release-please-manifest.json |
| 34 | + config-file: release-please-config.json |
79 | 35 |
|
80 | 36 | # ───────────────────────────────────────────────────────────── |
81 | 37 | # Build Release: Build Tauri app when release is created |
82 | 38 | # ───────────────────────────────────────────────────────────── |
83 | 39 | build-release: |
84 | | - needs: release |
85 | | - if: needs.release.outputs.releases_created == 'true' |
| 40 | + needs: release-please |
| 41 | + if: needs.release-please.outputs.release_created == 'true' |
| 42 | + |
86 | 43 | strategy: |
87 | 44 | fail-fast: false |
88 | 45 | matrix: |
@@ -166,10 +123,10 @@ jobs: |
166 | 123 | APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} |
167 | 124 | APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} |
168 | 125 | with: |
169 | | - # Use tagName to find and upload to the existing release created by release-plz |
170 | | - tagName: ${{ needs.release.outputs.tag }} |
171 | | - releaseName: 'McpMux v${{ needs.release.outputs.version }}' |
172 | | - releaseBody: '' # Release notes already created by release-plz |
| 126 | + # Use tagName to find and upload to the existing release created by release-please |
| 127 | + tagName: ${{ needs.release-please.outputs.tag_name }} |
| 128 | + releaseName: 'McpMux v${{ needs.release-please.outputs.version }}' |
| 129 | + releaseBody: '' # Release notes already created by release-please |
173 | 130 | releaseDraft: false |
174 | 131 | prerelease: false |
175 | 132 | updaterJsonKeepUniversal: true |
0 commit comments