name: CI on: push: branches: - main pull_request: jobs: unit-test: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest] node_version: [14, 16, 17] include: - os: macos-latest node_version: 16 - os: windows-latest node_version: 16 fail-fast: false name: 'Build & Unit Test: node-${{ matrix.node_version }}, ${{ matrix.os }}' steps: - name: Checkout uses: actions/checkout@v3 - name: Install pnpm uses: pnpm/action-setup@v2 with: version: 6 - name: Set node version to ${{ matrix.node_version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node_version }} cache: 'pnpm' - name: Install deps run: pnpm install env: CYPRESS_INSTALL_BINARY: 0 - name: Build run: pnpm run build - name: Test run: pnpm run test e2e-test: runs-on: ubuntu-latest name: 'E2E Doc Test: node-16, ubuntu-latest' steps: - name: Checkout uses: actions/checkout@v3 - name: Install pnpm uses: pnpm/action-setup@v2 with: version: 6 - name: Install deps run: pnpm install - name: Run E2E run: pnpm run docs:build:ci lint: runs-on: ubuntu-latest name: 'Lint: node-16, ubuntu-latest' steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Install pnpm uses: pnpm/action-setup@v2 with: version: 6 - name: Set node version to 16 uses: actions/setup-node@v3 with: node-version: 16 cache: 'pnpm' - name: Install deps run: pnpm install env: CYPRESS_INSTALL_BINARY: 0 - name: Lint run: pnpm run lint - name: Check formatting run: pnpm prettier --check . codecov: runs-on: ubuntu-latest name: 'Codecov: node-16, ubuntu-latest' steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Install pnpm uses: pnpm/action-setup@v2 with: version: 6 - name: Set node version to 16 uses: actions/setup-node@v3 with: node-version: 16 cache: 'pnpm' - name: Install deps run: pnpm install env: CYPRESS_INSTALL_BINARY: 0 - name: Build run: pnpm run build - name: Generate coverage report run: pnpm vitest run --coverage - name: Upload coverage to Codecov uses: codecov/codecov-action@v2.1.0 with: token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: true