Version Packages #355
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: | |
| pull_request: | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: pnpm/action-setup@v6 | |
| - uses: actions/setup-node@v7 | |
| with: | |
| node-version: 24 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: pnpm check | |
| changeset-policy: | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Require a changeset | |
| if: >- | |
| github.head_ref != 'changeset-release/main' || | |
| github.event.pull_request.user.login != 'github-actions[bot]' | |
| run: >- | |
| node scripts/check-changeset.mjs | |
| --base ${{ github.event.pull_request.base.sha }} | |
| --head ${{ github.event.pull_request.head.sha }} | |
| - name: Accept the Changesets release pull request | |
| if: >- | |
| github.head_ref == 'changeset-release/main' && | |
| github.event.pull_request.user.login == 'github-actions[bot]' | |
| run: echo "Changesets release pull requests consume their changeset files." | |
| discover-examples: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.examples.outputs.examples }} | |
| required: ${{ steps.examples.outputs.examples_required }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - id: examples | |
| run: >- | |
| node scripts/ci-changes.mjs | |
| --base ${{ github.event.pull_request.base.sha }} | |
| --head ${{ github.event.pull_request.head.sha }} | |
| --github-output "$GITHUB_OUTPUT" | |
| example: | |
| needs: discover-examples | |
| if: needs.discover-examples.outputs.required == 'true' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: ${{ fromJSON(needs.discover-examples.outputs.matrix) }} | |
| name: example (${{ matrix.example }}) | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: ${{ matrix.directory }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: pnpm/action-setup@v6 | |
| with: | |
| package_json_file: ${{ matrix.directory }}/package.json | |
| - uses: actions/setup-node@v7 | |
| with: | |
| node-version: 24 | |
| cache: pnpm | |
| cache-dependency-path: | | |
| pnpm-lock.yaml | |
| ${{ matrix.directory }}/pnpm-lock.yaml | |
| - run: pnpm --dir ../.. install --frozen-lockfile | |
| - run: pnpm --dir ../.. build | |
| - run: pnpm install --frozen-lockfile | |
| - run: pnpm check | |
| examples: | |
| if: always() | |
| needs: [discover-examples, example] | |
| name: examples | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Require every example check to pass | |
| env: | |
| DISCOVERY_RESULT: ${{ needs.discover-examples.result }} | |
| EXAMPLES_REQUIRED: ${{ needs.discover-examples.outputs.required }} | |
| EXAMPLE_RESULT: ${{ needs.example.result }} | |
| run: | | |
| test "$DISCOVERY_RESULT" = "success" | |
| if test "$EXAMPLES_REQUIRED" = "true"; then | |
| test "$EXAMPLE_RESULT" = "success" | |
| else | |
| test "$EXAMPLE_RESULT" = "skipped" | |
| echo "Examples are not affected by this pull request." >> "$GITHUB_STEP_SUMMARY" | |
| fi |