name: Dev on: push: branches: - main - patch-release - next pull_request: permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test: timeout-minutes: 60 strategy: fail-fast: false matrix: os: - "ubuntu-latest" - "macos-latest" - "windows-latest" node: # Latest even version - "20" # Minimal version for development - "16" include: - os: "ubuntu-latest" # Pick a version that is fast (normally highest LTS version) node: "18" ENABLE_CODE_COVERAGE: true FULL_TEST: true CHECK_TEST_PARSERS: true # Versions not tested on linux, normally only even versions # If latest version is an odd number, it can be listed bellow too # - os: "ubuntu-latest" # node: "20" env: ENABLE_CODE_COVERAGE: ${{ matrix.ENABLE_CODE_COVERAGE }} FULL_TEST: ${{ matrix.FULL_TEST }} CHECK_TEST_PARSERS: ${{ matrix.CHECK_TEST_PARSERS }} name: Node.js ${{ matrix.node }} on ${{ matrix.os }}${{ matrix.FULL_TEST && ' (Full Test)' || '' }} runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v3.6.0 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} cache: "yarn" - name: Install Dependencies run: yarn install --immutable - name: Run Tests if: ${{ !matrix.ENABLE_CODE_COVERAGE }} run: yarn test - name: Run Tests (coverage) if: ${{ matrix.ENABLE_CODE_COVERAGE }} run: yarn c8 yarn test - name: Upload Coverage uses: codecov/codecov-action@v3.1.4 if: ${{ matrix.ENABLE_CODE_COVERAGE }} with: fail_ci_if_error: true files: coverage/lcov.info