1name: 'Tests: node.js' 2 3on: [pull_request, push] 4 5jobs: 6 matrix: 7 runs-on: ubuntu-latest 8 outputs: 9 latest: ${{ steps.set-matrix.outputs.requireds }} 10 minors: ${{ steps.set-matrix.outputs.optionals }} 11 steps: 12 - uses: ljharb/actions/node/matrix@main 13 id: set-matrix 14 with: 15 preset: '>=4' 16 17 latest: 18 needs: [matrix] 19 name: 'latest minors' 20 runs-on: ubuntu-latest 21 22 strategy: 23 matrix: ${{ fromJson(needs.matrix.outputs.latest) }} 24 25 steps: 26 - uses: actions/checkout@v2 27 - uses: ljharb/actions/node/run@main 28 name: 'npm install && npm run tests-only' 29 with: 30 node-version: ${{ matrix.node-version }} 31 command: 'tests-only' 32 minors: 33 needs: [matrix, latest] 34 name: 'non-latest minors' 35 continue-on-error: true 36 if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} 37 runs-on: ubuntu-latest 38 39 strategy: 40 matrix: ${{ fromJson(needs.matrix.outputs.minors) }} 41 42 steps: 43 - uses: actions/checkout@v2 44 - uses: ljharb/actions/node/run@main 45 with: 46 node-version: ${{ matrix.node-version }} 47 command: 'tests-only' 48 49 node: 50 name: 'node 4+' 51 needs: [latest, minors] 52 runs-on: ubuntu-latest 53 steps: 54 - run: 'echo tests completed' 55