Skip to content

Commit 27a2335

Browse files
Update release workflow with new steps and fixes
1 parent 69dc2ee commit 27a2335

1 file changed

Lines changed: 37 additions & 34 deletions

File tree

.github/workflows/release.yml

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ concurrency:
1010

1111
env:
1212
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
13+
SERVER_PRESET: 'node-server'
1314

1415
permissions:
1516
contents: write
@@ -19,68 +20,70 @@ permissions:
1920
jobs:
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

Comments
 (0)