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