ci: Version Packages (#1462) #796
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| branches: [main, alpha, beta] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} | |
| permissions: | |
| contents: write | |
| id-token: write | |
| pull-requests: write | |
| jobs: | |
| release: | |
| name: Release | |
| if: github.repository_owner == 'TanStack' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Tools | |
| uses: tanstack/config/.github/setup@main | |
| - name: Run Tests | |
| run: pnpm run lint && pnpm run build && pnpm run test | |
| - name: Run Changesets (version or publish) | |
| id: changesets | |
| uses: changesets/action@v1.5.3 | |
| with: | |
| version: pnpm run changeset:version | |
| publish: pnpm run changeset:publish | |
| commit: 'ci: Version Packages' | |
| title: 'ci: Version Packages' | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Generate Docs | |
| if: steps.changesets.outputs.published == 'true' | |
| run: pnpm generate-docs | |
| - name: Commit Generated Docs | |
| if: steps.changesets.outputs.published == 'true' | |
| run: | | |
| if [ -n "$(git status --porcelain)" ]; then | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| EXISTING_BRANCH=$(gh pr list --author "app/github-actions" --search "docs: regenerate API documentation in:title" --state open --json headRefName --jq '.[0].headRefName' 2>/dev/null || echo "") | |
| CREATE_PR=true | |
| if [ -n "$EXISTING_BRANCH" ] && [ "$EXISTING_BRANCH" != "null" ]; then | |
| BRANCH="$EXISTING_BRANCH" | |
| echo "Found existing docs PR on branch $BRANCH, updating it" | |
| git checkout -B "$BRANCH" | |
| CREATE_PR=false | |
| else | |
| BRANCH="docs/auto-update-$(date +%s)" | |
| git checkout -b "$BRANCH" | |
| fi | |
| git add docs/ | |
| if git diff --cached --quiet; then | |
| echo "No new docs changes to commit" | |
| exit 0 | |
| fi | |
| git commit -m "docs: regenerate API documentation" | |
| git push --force-with-lease origin "$BRANCH" | |
| if [ "$CREATE_PR" = true ]; then | |
| gh pr create \ | |
| --title "docs: regenerate API documentation" \ | |
| --body "Automated documentation update from release" \ | |
| --base main \ | |
| --head "$BRANCH" | |
| fi | |
| else | |
| echo "No changes in generated docs" | |
| fi | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Comment on PRs about release | |
| if: steps.changesets.outputs.published == 'true' | |
| uses: tanstack/config/.github/comment-on-release@main | |
| with: | |
| published-packages: ${{ steps.changesets.outputs.publishedPackages }} |