name: 'Tests: node.js' on: [pull_request, push] jobs: matrix: runs-on: ubuntu-latest outputs: latest: ${{ steps.set-matrix.outputs.requireds }} steps: - uses: ljharb/actions/node/matrix@main id: set-matrix with: versionsAsRoot: true type: 'majors' preset: '^10 || ^12 || ^14 || ^16 || >= 17' base: needs: [matrix] name: 'base config' runs-on: ubuntu-latest strategy: fail-fast: false matrix: node-version: ${{ fromJson(needs.matrix.outputs.latest) }} eslint: - 7 - 6 - 5 package: - eslint-config-airbnb-base defaults: run: working-directory: "packages/${{ matrix.package }}" steps: - uses: actions/checkout@v2 - uses: ljharb/actions/node/install@main name: 'nvm install ${{ matrix.node-version }} && npm install' with: node-version: ${{ matrix.node-version }} - run: npm run travis - uses: codecov/codecov-action@v2 react: needs: [matrix] name: 'react config' runs-on: ubuntu-latest strategy: fail-fast: false matrix: node-version: ${{ fromJson(needs.matrix.outputs.latest) }} eslint: - 7 - 6 - 5 package: - eslint-config-airbnb react-hooks: - '' - 3 - 2.3 - 1.7 defaults: run: working-directory: "packages/${{ matrix.package }}" steps: - uses: actions/checkout@v2 - uses: ljharb/actions/node/install@main name: 'nvm install ${{ matrix.node-version }} && npm install' with: node-version: ${{ matrix.node-version }} after_install: | npm install --no-save "eslint@${{ matrix.eslint }}" - run: npm install --no-save "eslint-plugin-react-hooks@${{ matrix.react-hooks }}" if: ${{ matrix.react-hooks > 0}} - run: npm run travis - uses: codecov/codecov-action@v2 prepublish-base: name: 'prepublish tests (base config)' runs-on: ubuntu-latest strategy: fail-fast: false matrix: eslint: - 7 - 6 - 5 package: - eslint-config-airbnb-base defaults: run: working-directory: "packages/${{ matrix.package }}" steps: - uses: actions/checkout@v2 - uses: ljharb/actions/node/install@main name: 'nvm install ${{ matrix.node-version }} && npm install' with: node-version: lts/* after_install: | npm install --no-save "eslint@${{ matrix.eslint }}" - run: npm run pretravis - run: npm run prepublish - run: npm run posttravis prepublish-react: name: 'prepublish tests (react config)' runs-on: ubuntu-latest strategy: fail-fast: false matrix: eslint: - 7 - 6 - 5 package: - eslint-config-airbnb react-hooks: - '' - 3 - 2.3 - 1.7 defaults: run: working-directory: "packages/${{ matrix.package }}" steps: - uses: actions/checkout@v2 - uses: ljharb/actions/node/install@main name: 'nvm install ${{ matrix.node-version }} && npm install' with: node-version: lts/* after_install: | npm install --no-save "eslint@${{ matrix.eslint }}" - run: npm install --no-save "eslint-plugin-react-hooks@${{ matrix.react-hooks }}" if: ${{ matrix.react-hooks > 0}} - run: npm run pretravis - run: npm run prepublish - run: npm run posttravis node: name: 'node 10+' needs: [base, prepublish-base, react, prepublish-react] runs-on: ubuntu-latest steps: - run: 'echo tests completed'