name: "CI"

on:
  push:
    branches:
      - master
  workflow_dispatch:

jobs:
  ci:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [14.x, 16.x]
    steps:
      - name: checkout
        uses: actions/checkout@v2
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v2
        with:
          node-version: ${{ matrix.node-version }}
      - name: Cache pnpm modules
        uses: actions/cache@v2
        with:
          path: ~/.pnpm-store
          key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-
      - uses: pnpm/action-setup@v2.0.1
        with:
          version: latest
          run_install: true
      - name: Install packages
        run: pnpm install --frozen-lockfile
      - name: Check Type
        run: cd web && pnpm check:type
      - name: Test
        run: pnpm test
        env:
          TZ: Asia/Shanghai
      - name: Check Build
        run: cd web && pnpm build
