name: 'ci' on: push: branches: - '**' pull_request: branches: - main permissions: contents: read # to fetch code (actions/checkout) jobs: unit-test: runs-on: ubuntu-latest if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository env: PUPPETEER_SKIP_DOWNLOAD: 'true' steps: - uses: actions/checkout@v4 - name: Install pnpm uses: pnpm/action-setup@v2 - name: Install Node.js uses: actions/setup-node@v3 with: node-version-file: '.node-version' cache: 'pnpm' - run: pnpm install - name: Run unit tests run: pnpm run test-unit unit-test-windows: runs-on: windows-latest if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository env: PUPPETEER_SKIP_DOWNLOAD: 'true' steps: - uses: actions/checkout@v4 - name: Install pnpm uses: pnpm/action-setup@v2 - name: Install Node.js uses: actions/setup-node@v3 with: node-version-file: '.node-version' cache: 'pnpm' - run: pnpm install - name: Run compiler unit tests run: pnpm run test-unit compiler - name: Run ssr unit tests run: pnpm run test-unit server-renderer e2e-test: runs-on: ubuntu-latest if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository steps: - uses: actions/checkout@v4 - name: Setup cache for Chromium binary uses: actions/cache@v3 with: path: ~/.cache/puppeteer key: chromium-${{ hashFiles('pnpm-lock.yaml') }} - name: Install pnpm uses: pnpm/action-setup@v2 - name: Install Node.js uses: actions/setup-node@v3 with: node-version-file: '.node-version' cache: 'pnpm' - run: pnpm install - run: node node_modules/puppeteer/install.js - name: Run e2e tests run: pnpm run test-e2e lint-and-test-dts: runs-on: ubuntu-latest if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository env: PUPPETEER_SKIP_DOWNLOAD: 'true' steps: - uses: actions/checkout@v4 - name: Install pnpm uses: pnpm/action-setup@v2 - name: Install Node.js uses: actions/setup-node@v3 with: node-version-file: '.node-version' cache: 'pnpm' - run: pnpm install - name: Run eslint run: pnpm run lint - name: Run prettier run: pnpm run format-check - name: Run type declaration tests run: pnpm run test-dts