name: Build and Lint on: [push, pull_request] jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: # the Node.js versions to build on node-version: [14.x, 16.x, 17.x, 18.x] allow-lint-failure: [false] allow-test-failure: [false] include: - { node-version: 10.x, allow-lint-failure: true, allow-test-failure: true } - { node-version: 11.x, allow-lint-failure: true, allow-test-failure: true } - { node-version: 12.x, allow-lint-failure: true, allow-test-failure: true } - { node-version: 13.x, allow-lint-failure: true, allow-test-failure: true } - { node-version: 15.x, allow-lint-failure: true, allow-test-failure: false } steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: Install dependencies run: npm install - name: Lint the project run: npm run lint continue-on-error: ${{ matrix.allow-lint-failure }} - name: Run tests run: npm test continue-on-error: ${{ matrix.allow-test-failure }} - name: Build the project run: npm run build