|
| 1 | +# shared-workflows/.github/workflows/nbgv_prepare_release.yml |
1 | 2 | name: NBGV Prepare Release |
2 | 3 |
|
3 | 4 | on: |
|
15 | 16 | default: patch |
16 | 17 | secrets: |
17 | 18 | GH_TOKEN: |
18 | | - description: "GitHub token (falls back to github.token if not provided)" |
| 19 | + description: "GitHub token (falls back to github.token)" |
19 | 20 | required: false |
20 | 21 |
|
21 | 22 | jobs: |
22 | 23 | prep: |
23 | 24 | runs-on: ubuntu-latest |
| 25 | + env: |
| 26 | + GH_TOKEN: ${{ secrets.GH_TOKEN || github.token }} |
| 27 | + |
24 | 28 | steps: |
| 29 | + # 1️⃣ Checkout the code |
25 | 30 | - name: 📥 Checkout target branch |
26 | 31 | uses: actions/checkout@v4 |
27 | 32 | with: |
28 | 33 | ref: ${{ inputs.target_branch }} |
29 | 34 | fetch-depth: 0 |
30 | | - token: ${{ secrets.GH_TOKEN || github.token }} |
| 35 | + token: ${{ env.GH_TOKEN }} |
31 | 36 |
|
32 | | - - name: ⚙️ Setup .NET 9.x |
| 37 | + # 2️⃣ Install .NET & the NBGV tool |
| 38 | + - name: ⚙️ Setup .NET & restore NBGV tool |
33 | 39 | uses: actions/setup-dotnet@v4 |
34 | 40 | with: |
35 | 41 | dotnet-version: 9.0.x |
| 42 | + - name: 🔧 Restore NBGV CLI |
| 43 | + run: dotnet tool restore |
36 | 44 |
|
37 | | - - name: 🛠️ Bump version & create branch |
38 | | - id: nbgv |
39 | | - uses: dotnet/nbgv@master |
40 | | - with: |
41 | | - version-increment: ${{ inputs.increment }} |
42 | | - version-file: version.json |
| 45 | + # 3️⃣ Inject omitCommitId so your NuGet version has no git‐hash suffix |
| 46 | + - name: 🖊️ Inject omitCommitId into version.json |
| 47 | + run: | |
| 48 | + tmp=$(mktemp) |
| 49 | + jq '.release += {"omitCommitId": true}' version.json > "$tmp" |
| 50 | + mv "$tmp" version.json |
| 51 | +
|
| 52 | + # 4️⃣ Bump the version, create the release branch |
| 53 | + - name: 🗂️ Prepare release |
| 54 | + id: prepare |
| 55 | + run: | |
| 56 | + cd "$GITHUB_WORKSPACE" |
| 57 | +
|
| 58 | + git config user.name "release-bot" |
| 59 | + git config user.email "release-bot@users.noreply.github.com" |
| 60 | +
|
| 61 | + INC=${{ inputs.increment }} |
| 62 | + case "$INC" in |
| 63 | + major) FLAGS="--versionIncrement major" ;; |
| 64 | + minor) FLAGS="--versionIncrement minor" ;; |
| 65 | + patch) FLAGS="" ;; # omit for revision bump |
| 66 | + *) echo "Invalid increment: $INC" && exit 1 ;; |
| 67 | + esac |
| 68 | +
|
| 69 | + # Force Nerdbank to load your version.json (which starts at 1.0.0) |
| 70 | + dotnet nbgv prepare-release -p "$GITHUB_WORKSPACE" $FLAGS |
| 71 | +
|
| 72 | + # Export the new branch name |
| 73 | + echo "release_branch=$(git rev-parse --abbrev-ref HEAD)" >> "$GITHUB_OUTPUT" |
43 | 74 |
|
44 | 75 | outputs: |
45 | | - release_branch: ${{ steps.nbgv.outputs.BranchName }} |
| 76 | + release_branch: ${{ steps.prepare.outputs.release_branch }} |
0 commit comments