yannickcr/eslint-plugin-react

View on GitHub
.github/workflows/node-minors.yml

Summary

Maintainability
Test Coverage
name: 'Tests: node.js (4 - 18)'

on: [pull_request, push]

jobs:
  matrix:
    runs-on: ubuntu-latest
    outputs:
      latest: ${{ steps.set-matrix.outputs.requireds }}
      minors: ${{ steps.set-matrix.outputs.optionals }}
    steps:
      - uses: ljharb/actions/node/matrix@main
        id: set-matrix
        with:
          versionsAsRoot: true
          type: majors
          preset: '>=4 < 18'

  latest:
    needs: [matrix]
    name: 'latest majors'
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        node-version: ${{ fromJson(needs.matrix.outputs.latest) }}
        eslint:
          - 8
          - 7
          - 6
          - 5
          - 4
          - 4.14 # last version without messageId
          - 3
        babel-eslint:
          - 10
          - 9
          - 8
        exclude:
          - node-version: 5
            babel-eslint: 10
          - node-version: 5
            babel-eslint: 9
          - node-version: 4
            babel-eslint: 10
          - node-version: 4
            babel-eslint: 9
          - node-version: 15
            eslint: 8
          - node-version: 13
            eslint: 8
          - node-version: 11
            eslint: 8
          - node-version: 11
            eslint: 7
          - node-version: 10
            eslint: 8
          - node-version: 9
            eslint: 8
          - node-version: 9
            eslint: 7
          - node-version: 8
            eslint: 8
          - node-version: 8
            eslint: 7
          - node-version: 7
            eslint: 8
          - node-version: 7
            eslint: 7
          - node-version: 7
            eslint: 6
          - node-version: 6
            eslint: 8
          - node-version: 6
            eslint: 7
          - node-version: 6
            eslint: 6
          - node-version: 5
            eslint: 8
          - node-version: 5
            eslint: 7
          - node-version: 5
            eslint: 6
          - node-version: 5
            eslint: 5
          - node-version: 4
            eslint: 8
          - node-version: 4
            eslint: 7
          - node-version: 4
            eslint: 6
          - node-version: 4
            eslint: 5

    steps:
      - uses: actions/checkout@v4
      - 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 }}" "@typescript-eslint/parser@${{ matrix.node-version >= 14 && '5' || (matrix.node-version >= 12 && '4' || (matrix.node-version >= 10 && '4.0' || (matrix.node-version >= 8 && '3' || '2'))) }}" "babel-eslint@${{ matrix.babel-eslint }}"
          skip-ls-check: ${{ matrix.node-version < 10 && true || false }}
        env:
          NPM_CONFIG_LEGACY_PEER_DEPS: true
      - run: npx ls-engines
        if: ${{ matrix.node-version >= 12 }}
      - run: npm run unit-test
      - uses: codecov/codecov-action@v3.1.5

  node:
    name: 'node 4 - 17'
    needs: [latest]
    runs-on: ubuntu-latest
    steps:
      - run: 'echo tests completed'