name: Node CI on: push: branches: - main pull_request: branches: - main jobs: skip_run: continue-on-error: true runs-on: ubuntu-latest outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: - id: skip_check uses: fkirc/skip-duplicate-actions@master with: # All of these options are optional, so you can remove them if you are happy with the defaults concurrent_skipping: 'never' skip_after_successful_duplicate: 'true' paths_ignore: '["**/README.md", "**/docs/**"]' do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]' changeset: needs: skip_run # allow skip_run to cancel this job if it’s not needed if: ${{ needs.skip_run.outputs.should_skip != 'true' }} name: Ensure changeset runs-on: ubuntu-latest steps: - name: Check out PR branch uses: actions/checkout@v2 - name: Check out main branch uses: actions/checkout@v2 with: ref: main - name: Set up Node.js 14.x uses: actions/setup-node@v2 with: node-version: 14.x - name: Install dependencies run: yarn --frozen-lockfile --ignore-engines env: CI: true - run: yarn changeset status --since=main test: needs: skip_run # allow skip_run to cancel this job if it’s not needed if: ${{ needs.skip_run.outputs.should_skip != 'true' }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest] node-version: [14.x, 16.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} - run: yarn --frozen-lockfile --ignore-engines env: CI: true - run: yarn build env: CI: true - run: yarn test env: CI: true