-
Notifications
You must be signed in to change notification settings - Fork 130
130 lines (123 loc) · 3.67 KB
/
tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: test
on:
push:
branches:
- main
pull_request:
jobs:
prettier:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 20
packageManager: 'pnpm'
- name: Lint Prettier
run: pnpm run lint:prettier
lint:
name: Lint
uses: the-guild-org/shared-config/.github/workflows/lint.yml@main
with:
script: pnpm run ci:lint
nodeVersion: 20
packageManager: 'pnpm'
secrets:
githubToken: ${{ secrets.GITHUB_TOKEN }}
build:
name: build / graphql v${{matrix.graphql_version}}
runs-on: ubuntu-latest
strategy:
matrix:
graphql_version: [15.8.0, 16]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 20
packageManager: 'pnpm'
- name: Use GraphQL v${{matrix.graphql_version}}
run: node ./scripts/match-graphql.js ${{matrix.graphql_version}}
- name: Install Dependencies using pnpm
run: pnpm install --no-frozen-lockfile && git checkout pnpm-lock.yaml
- name: Build
run: pnpm run ts:check
unit:
name: Unit Test
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ubuntu-latest] # remove windows to speed up the tests
steps:
- name: Checkout Master
uses: actions/checkout@v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 20
packageManager: 'pnpm'
- name: Install Dependencies
run: pnpm install --no-frozen-lockfile && git checkout pnpm-lock.yaml
- name: Cache Jest
uses: actions/cache@v3
with:
path: .cache/jest
key:
${{ runner.os }}-${{matrix.node-version}}-${{matrix.graphql_version}}-jest-${{
hashFiles('pnpm-lock.yaml') }}-${{ hashFiles('patches/*.patch') }}
- name: Test
run: pnpm run test
env:
CI: true
core:
name:
Core Test / ${{matrix.os}} / node v${{matrix.node-version}} / graphql
v${{matrix.graphql_version}}
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ubuntu-latest] # remove windows to speed up the tests
node-version: [18, 20]
graphql_version: [15, 16]
steps:
- name: Checkout Master
uses: actions/checkout@v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: ${{ matrix.node-version }}
packageManager: 'pnpm'
- name: Use GraphQL v${{matrix.graphql_version}}
run: node ./scripts/match-graphql.js ${{matrix.graphql_version}}
- name: Install Dependencies
run: pnpm install --no-frozen-lockfile && git checkout pnpm-lock.yaml
- name: Cache Jest
uses: actions/cache@v3
with:
path: .cache/jest
key:
${{ runner.os }}-${{matrix.node-version}}-${{matrix.graphql_version}}-jest-${{
hashFiles('pnpm-lock.yaml') }}-${{ hashFiles('patches/*.patch') }}
- name: Test Core
run: pnpm run test:core --ci
env:
CI: true
test_esm:
name: esm
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 20
packageManager: 'pnpm'
- name: Build Packages
run: pnpm run build
- name: Test ESM & CJS exports integrity
run: pnpm bob check