@@ -10,6 +10,7 @@ concurrency:
1010
1111env :
1212 NX_CLOUD_ACCESS_TOKEN : ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
13+ SERVER_PRESET : ' node-server'
1314
1415permissions :
1516 contents : write
@@ -19,68 +20,70 @@ permissions:
1920jobs :
2021 release :
2122 name : Release
22- if : " github.repository_owner == 'TanStack' && !contains(github.event.head_commit.message, 'ci: changeset release')"
23+ if : " !contains(github.event.head_commit.message, 'ci: changeset release')"
2324 runs-on : ubuntu-latest
2425 steps :
2526 - name : Checkout
26- uses : actions/checkout@v6.0.1
27+ uses : actions/checkout@v6.0.2
2728 with :
2829 fetch-depth : 0
30+ - name : Check for changesets
31+ id : changesets
32+ run : |
33+ CHANGESET_FILES=$(ls .changeset/*.md 2>/dev/null | grep -v README.md || true)
34+ if [ -z "$CHANGESET_FILES" ]; then
35+ echo "has_changesets=false" >> "$GITHUB_OUTPUT"
36+ else
37+ echo "has_changesets=true" >> "$GITHUB_OUTPUT"
38+ fi
39+ - name : Start Nx Agents
40+ if : steps.changesets.outputs.has_changesets == 'true'
41+ run : npx nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yaml"
2942 - name : Setup Tools
30- uses : tanstack /config/.github/setup@main
43+ uses : TanStack /config/.github/setup@main
3144 - name : Run Tests
45+ if : steps.changesets.outputs.has_changesets == 'true'
3246 run : pnpm run test:ci --parallel=3
47+ - name : Stop Nx Agents
48+ if : ${{ always() && steps.changesets.outputs.has_changesets == 'true' }}
49+ run : npx nx-cloud stop-all-agents
50+ - name : Enter Pre-Release Mode
51+ if : " contains(github.ref_name, '-pre') && !hashFiles('.changeset/pre.json')"
52+ run : pnpm changeset pre enter pre
3353 - name : Version Packages
3454 run : pnpm run changeset:version
3555 env :
3656 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
37- - name : Reset any local changes before pulling
38- run : |
39- git reset --hard HEAD
40- git clean -fd
41- - name : Pull latest main
42- run : git pull --rebase origin main
43- - name : Push changes
44- run : git push origin main
45- - name : Commit Release
57+ - name : Commit and Push Version Changes
4658 id : commit
4759 run : |
4860 git config user.name "github-actions[bot]"
49- git config user.email "41898282+ github-actions[bot]@users.noreply.github.com"
61+ git config user.email "github-actions[bot]@users.noreply.github.com"
5062 git add .
5163 if git commit -m "ci: changeset release"; then
5264 git push
5365 echo "committed=true" >> "$GITHUB_OUTPUT"
5466 fi
55- - name : Set Dist Tag
56- id : dist-tag
67+ env :
68+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
69+ - name : Determine dist-tag
5770 if : steps.commit.outputs.committed == 'true'
71+ id : dist-tag
5872 run : |
59- branch ="${GITHUB_REF_NAME}"
60- if [[ "$branch " == *-pre ]]; then
61- echo "tag=next " >> "$GITHUB_OUTPUT"
62- elif [[ "$branch " == *-maint ]]; then
73+ BRANCH ="${GITHUB_REF_NAME}"
74+ if [[ "$BRANCH " == *-pre ]]; then
75+ echo "prerelease=true " >> "$GITHUB_OUTPUT"
76+ elif [[ "$BRANCH " == *-maint ]]; then
6377 echo "tag=maint" >> "$GITHUB_OUTPUT"
78+ else
79+ echo "latest=true" >> "$GITHUB_OUTPUT"
6480 fi
6581 - name : Publish Packages
6682 if : steps.commit.outputs.committed == 'true'
67- run : |
68- if [[ -n "${{ steps.dist-tag.outputs.tag }}" ]]; then
69- pnpm run changeset:publish --tag "${{ steps.dist-tag.outputs.tag }}"
70- else
71- pnpm run changeset:publish
72- fi
73- env :
74- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
75- NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
83+ run : pnpm run changeset:publish ${{ steps.dist-tag.outputs.tag && format('--tag {0}', steps.dist-tag.outputs.tag) }}
7684 - name : Create GitHub Release
7785 if : steps.commit.outputs.committed == 'true'
78- run : |
79- if [[ "${{ steps.dist-tag.outputs.tag }}" == 'next' ]]; then
80- node scripts/create-github-release.mjs --prerelease
81- else
82- node scripts/create-github-release.mjs
83- fi
86+ run : node scripts/create-github-release.mjs ${{ steps.dist-tag.outputs.prerelease == 'true' && '--prerelease' }} ${{ steps.dist-tag.outputs.latest == 'true' && '--latest' }}
8487 env :
8588 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
8689 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments