name: 'CI' on: push: branches: - '*' - '*/*' - '**' - '!sponsors' pull_request: branches: - '*' - '*/*' - '**' - '!sponsors' permissions: contents: read jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [12.x, 14.x, 16.x, 18.x, 20.x, 22.x, 24.x] fail-fast: false steps: - uses: actions/checkout@v4 with: persist-credentials: true - name: Get changed files id: changed-files uses: tj-actions/changed-files@v46 - name: List all changed files run: | for file in ${{ steps.changed-files.outputs.all_changed_files }}; do echo "$file was changed" done - name: Check changes id: changed-ignored uses: tj-actions/changed-files@v46 with: files: | **.md sandbox/** examples/** .github/** templates/** bin/** - name: Setup node uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: npm if: steps.changed-ignored.outputs.only_modified == 'false' - run: npm ci if: steps.changed-ignored.outputs.only_modified == 'false' - run: npm test if: steps.changed-ignored.outputs.only_modified == 'false'