Release (Changesets π¦) #89
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 (Changesets π¦) | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| env: | |
| CI: true | |
| jobs: | |
| version: | |
| timeout-minutes: 15 | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| id-token: write | |
| actions: write | |
| steps: | |
| - name: Checkout code repository | |
| uses: actions/checkout@v4 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: Setup node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Typecheck | |
| run: pnpm typecheck | |
| - name: Lint | |
| run: pnpm lint | |
| - name: Test | |
| run: pnpm test | |
| - name: Build | |
| run: pnpm build | |
| - name: Format | |
| run: pnpm format | |
| - name: Version Update π¦ | |
| id: changesets | |
| uses: changesets/action@v1 | |
| with: | |
| commit: "π¦ New version release" | |
| title: "π¦ New version release" | |
| publish: pnpm ci:publish | |
| createGithubReleases: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| NPM_TOKEN: ${{ secrets.SMOOAI_NPM_TOKEN }} | |
| - name: Auto-Merge Changeset PR | |
| run: | | |
| PR_NUMBER=$(gh pr list --state open --head changeset-release/main --json number --jq '.[0].number') | |
| if [[ -n "$PR_NUMBER" && "$PR_NUMBER" != "null" ]]; then | |
| echo "Found Changeset PR #$PR_NUMBER, attempting to auto-merge..." | |
| gh pr merge "$PR_NUMBER" --auto --squash | |
| # Re-trigger the Release workflow | |
| echo "Re-triggering the release workflow..." | |
| gh workflow run release.yml | |
| else | |
| echo "No open Changeset PR found, skipping merge." | |
| fi | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |