feat: adopt changesets for automated versioning and publishing #42
Workflow file for this run
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| build-and-test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [18, 20, 22] | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Generate API client | |
| run: npm run update-api | |
| - name: Type check | |
| run: npx tsc --noEmit | |
| - name: Build | |
| run: npm run build | |
| - name: Test | |
| run: npm test | |
| changeset-check: | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Check for changesets | |
| run: | | |
| # Count .changeset/*.md files added/modified in this PR compared to the base branch | |
| CHANGESETS=$(git diff --name-only origin/${{ github.base_ref }}...HEAD -- '.changeset/*.md' ':!.changeset/README.md' | wc -l) | |
| if [ "$CHANGESETS" -eq 0 ]; then | |
| echo "::error::No changeset found for this PR. Run 'npx changeset' to describe your changes." | |
| echo "" | |
| echo "If this PR does not require a version bump (e.g., docs-only or CI changes)," | |
| echo "add an empty changeset with: npx changeset --empty" | |
| exit 1 | |
| fi | |
| echo "Found $CHANGESETS changeset file(s) changed in this PR." |