@@ -19,71 +19,40 @@ permissions:
1919jobs :
2020 release :
2121 name : Release
22- if : " !contains(github.event.head_commit.message, 'ci: changeset release')"
2322 runs-on : ubuntu-latest
2423 steps :
2524 - name : Checkout
2625 uses : actions/checkout@v6.0.2
2726 with :
2827 fetch-depth : 0
29- - name : Check for changesets
30- id : changesets
31- run : |
32- CHANGESET_FILES=$(ls .changeset/*.md 2>/dev/null | grep -v README.md || true)
33- if [ -z "$CHANGESET_FILES" ]; then
34- echo "has_changesets=false" >> "$GITHUB_OUTPUT"
35- else
36- echo "has_changesets=true" >> "$GITHUB_OUTPUT"
37- fi
38- - name : Start Nx Agents
39- if : steps.changesets.outputs.has_changesets == 'true'
40- run : npx nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yaml"
4128 - name : Setup Tools
4229 uses : TanStack/config/.github/setup@main
43- - name : Run Tests
44- if : steps.changesets.outputs.has_changesets == 'true'
45- run : pnpm run test:ci
46- - name : Stop Nx Agents
47- if : ${{ always() && steps.changesets.outputs.has_changesets == 'true' }}
48- run : npx nx-cloud stop-all-agents
49- - name : Enter Pre-Release Mode
50- if : " contains(github.ref_name, '-pre') && !hashFiles('.changeset/pre.json')"
51- run : pnpm changeset pre enter pre
52- - name : Version Packages
53- run : pnpm run changeset:version
54- env :
55- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
56- - name : Commit and Push Version Changes
57- id : commit
58- run : |
59- git config user.name "github-actions[bot]"
60- git config user.email "github-actions[bot]@users.noreply.github.com"
61- git add .
62- if git commit -m "ci: changeset release"; then
63- git push
64- echo "committed=true" >> "$GITHUB_OUTPUT"
65- fi
66- env :
67- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
6830 - name : Determine dist-tag
69- if : steps.commit.outputs.committed == 'true'
7031 id : dist-tag
7132 run : |
7233 BRANCH="${GITHUB_REF_NAME}"
7334 if [[ "$BRANCH" == *-pre ]]; then
7435 echo "prerelease=true" >> "$GITHUB_OUTPUT"
36+ echo "tag=pre" >> "$GITHUB_OUTPUT"
7537 elif [[ "$BRANCH" == *-maint ]]; then
7638 echo "tag=maint" >> "$GITHUB_OUTPUT"
7739 elif [[ "$BRANCH" =~ ^v[0-9]+$ ]]; then
7840 echo "tag=$BRANCH" >> "$GITHUB_OUTPUT"
7941 else
8042 echo "latest=true" >> "$GITHUB_OUTPUT"
8143 fi
82- - name : Publish Packages
83- if : steps.commit.outputs.committed == 'true'
84- run : pnpm run changeset:publish ${{ steps.dist-tag.outputs.tag && format('--tag {0}', steps.dist-tag.outputs.tag) }}
44+ - name : Create Release Pull Request or Publish
45+ id : changesets
46+ uses : changesets/action@v1
47+ with :
48+ version : pnpm run changeset:version
49+ publish : pnpm run changeset:publish ${{ steps.dist-tag.outputs.tag && format('--tag {0}', steps.dist-tag.outputs.tag) }}
50+ title : ' ci: Version Packages'
51+ commit : ' ci: changeset release'
52+ env :
53+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
8554 - name : Create GitHub Release
86- if : steps.commit .outputs.committed == 'true'
55+ if : steps.changesets .outputs.published == 'true'
8756 run : node scripts/create-github-release.mjs ${{ steps.dist-tag.outputs.prerelease == 'true' && '--prerelease' }} ${{ steps.dist-tag.outputs.latest == 'true' && '--latest' }}
8857 env :
8958 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments