Mirror: The spec-compliant minimum of client-side GraphQL.
1name: CI
2
3on:
4 pull_request:
5 pull_request_review:
6 types: [submitted, edited]
7 branches: changeset-release/main
8
9jobs:
10 check:
11 name: Checks
12 runs-on: ubuntu-latest
13 timeout-minutes: 10
14 steps:
15 - name: Checkout Repo
16 uses: actions/checkout@v2
17 with:
18 fetch-depth: 0
19
20 - name: Setup Node
21 uses: actions/setup-node@v1
22 with:
23 node-version: 18
24
25 - name: Setup pnpm
26 uses: pnpm/action-setup@v2.2.2
27 with:
28 version: 7
29 run_install: false
30
31 - name: Get pnpm store directory
32 id: pnpm-store
33 run: echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
34
35 - name: Use pnpm store
36 uses: actions/cache@v3
37 id: pnpm-cache
38 with:
39 path: ${{ steps.pnpm-store.outputs.pnpm_cache_dir }}
40 key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
41 restore-keys: |
42 ${{ runner.os }}-pnpm-
43
44 - name: Install Dependencies
45 run: pnpm install --frozen-lockfile --prefer-offline
46
47 - name: TypeScript
48 run: pnpm run check
49
50 - name: Linting
51 run: pnpm run lint
52
53 - name: Unit Tests
54 run: pnpm run test
55
56 - name: Build
57 run: pnpm run build