@@ -20,53 +20,21 @@ permissions:
2020jobs :
2121 release :
2222 name : Release
23- if : " !contains(github.event.head_commit.message, 'ci: changeset release')"
2423 runs-on : ubuntu-latest
2524 steps :
2625 - name : Checkout
2726 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2827 with :
2928 fetch-depth : 0
30- persist-credentials : true # release job pushes version changes
31- - name : Check for changesets
32- id : changesets
33- run : |
34- CHANGESET_FILES=$(ls .changeset/*.md 2>/dev/null | grep -v README.md || true)
35- if [ -z "$CHANGESET_FILES" ]; then
36- echo "has_changesets=false" >> "$GITHUB_OUTPUT"
37- else
38- echo "has_changesets=true" >> "$GITHUB_OUTPUT"
39- fi
40- - name : Start Nx Agents
41- if : steps.changesets.outputs.has_changesets == 'true'
42- run : npx nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yaml"
29+ persist-credentials : true # changesets/action pushes Release PR commits
4330 - name : Setup Tools
4431 uses : TanStack/config/.github/setup@e4b48f16568324f76f467aa4c2aac2f05db632c3 # main
45- - name : Run Tests
46- if : steps.changesets.outputs.has_changesets == 'true'
47- run : pnpm run test:ci --parallel=3
48- - name : Stop Nx Agents
49- if : ${{ always() && steps.changesets.outputs.has_changesets == 'true' }}
50- run : npx nx-cloud stop-all-agents
32+ - name : Run Build
33+ run : pnpm run build:all
5134 - name : Enter Pre-Release Mode
5235 if : " contains(github.ref_name, '-pre') && !hashFiles('.changeset/pre.json')"
5336 run : pnpm changeset pre enter pre
54- - name : Version Packages
55- run : pnpm run changeset:version
56- env :
57- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
58- - name : Commit and Push Version Changes
59- id : commit
60- run : |
61- git config user.name "github-actions[bot]"
62- git config user.email "github-actions[bot]@users.noreply.github.com"
63- git add .
64- if git commit -m "ci: changeset release"; then
65- git push origin "HEAD:${GITHUB_REF_NAME}"
66- echo "committed=true" >> "$GITHUB_OUTPUT"
67- fi
6837 - name : Determine dist-tag
69- if : steps.commit.outputs.committed == 'true'
7038 id : dist-tag
7139 run : |
7240 BRANCH="${GITHUB_REF_NAME}"
@@ -77,18 +45,18 @@ jobs:
7745 else
7846 echo "latest=true" >> "$GITHUB_OUTPUT"
7947 fi
80- - name : Publish Packages
81- if : steps.commit.outputs.committed == 'true'
48+ - name : Create Release Pull Request or Publish
49+ id : changesets
50+ uses : changesets/action@63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b # v1.8.0
51+ with :
52+ version : pnpm run changeset:version
53+ publish : pnpm run changeset:publish ${{ steps.dist-tag.outputs.tag && format('--tag {0}', steps.dist-tag.outputs.tag) }}
54+ title : ' ci: Version Packages'
55+ commit : ' ci: changeset release'
8256 env :
83- DIST_TAG : ${{ steps.dist-tag.outputs.tag }}
84- run : |
85- if [ -n "$DIST_TAG" ]; then
86- pnpm run changeset:publish --tag "$DIST_TAG"
87- else
88- pnpm run changeset:publish
89- fi
57+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
9058 - name : Create GitHub Release
91- if : steps.commit .outputs.committed == 'true'
59+ if : steps.changesets .outputs.published == 'true'
9260 run : node scripts/create-github-release.mjs ${{ steps.dist-tag.outputs.prerelease == 'true' && '--prerelease' }} ${{ steps.dist-tag.outputs.latest == 'true' && '--latest' }}
9361 env :
9462 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments