name: CI on: push: branches: - main pull_request: branches: - main jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install pnpm uses: pnpm/action-setup@v2.2.1 - name: Set node uses: actions/setup-node@v2 with: node-version: 16.x cache: pnpm - name: Install run: pnpm install - name: Typecheck run: pnpm run lint typecheck: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install pnpm uses: pnpm/action-setup@v2.2.1 - name: Set node uses: actions/setup-node@v2 with: node-version: 16.x cache: pnpm - name: Install run: pnpm install - name: Typecheck run: pnpm run typecheck test: runs-on: ${{ matrix.os }} strategy: matrix: node-version: [14.x, 16.x] os: [ubuntu-latest] fail-fast: false steps: - uses: actions/checkout@v2 - name: Install pnpm uses: pnpm/action-setup@v2.2.1 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ cache: pnpm - run: pnpm install - name: Unit Test run: pnpm run test:unit test-e2e: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: | ~/.cache key: cypress-cache-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install pnpm uses: pnpm/action-setup@v2.2.1 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ cache: pnpm - run: pnpm install - name: Cypress PNPM Patch run: cp pnpm-lock.yaml package-lock.json - name: Cypress uses: cypress-io/github-action@v2 with: install-command: echo build: pnpm run build start: npx vite --port 3333