name: CI on: [push, pull_request] jobs: test: name: Node.js v${{ matrix.nodejs }} runs-on: ubuntu-latest strategy: matrix: nodejs: [8, 10, 12, 14, 16, 18] steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: ${{ matrix.nodejs }} - name: (cache) restore uses: actions/cache@master with: path: node_modules key: ${{ runner.os }}-${{ hashFiles('**/package.json') }} - name: Install run: npm install - name: (coverage) Install if: matrix.nodejs >= 18 run: npm install -g c8 - name: Build run: npm run build - name: Test run: npm test if: matrix.nodejs < 18 - name: (coverage) Test run: c8 --include=src npm test if: matrix.nodejs >= 18 - name: (coverage) Report if: matrix.nodejs >= 18 run: | c8 report --reporter=text-lcov > coverage.lcov bash <(curl -s https://codecov.io/bash) env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}