-
-
Notifications
You must be signed in to change notification settings - Fork 818
146 lines (133 loc) · 4.04 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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
name: Tests
env:
NODE_NO_WARNINGS: true
NODE_OPTIONS: '--max-old-space-size=8192'
CI: true
on:
push:
branches:
- master
pull_request:
jobs:
prettier-check:
name: 🧹 Prettier Check
runs-on: ubuntu-latest
steps:
- name: Checkout Master
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 22
- name: Prettier Check
run: yarn prettier:check
lint:
name: Lint
uses: the-guild-org/shared-config/.github/workflows/lint.yml@main
with:
script: yarn ci:lint
secrets:
githubToken: ${{ secrets.GITHUB_TOKEN }}
build:
name: Type Check on GraphQL v${{matrix.graphql_version}}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
graphql_version:
- 15
- 16
steps:
- name: Checkout Master
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 22
- name: Use GraphQL v${{matrix.graphql_version}}
run: node ./scripts/match-graphql.js ${{matrix.graphql_version}}
- name: Install Dependencies using Yarn
run: yarn install --ignore-engines && git checkout yarn.lock
- name: Type Check
run: yarn ts:check
test_esm:
name: ESM Test
runs-on: ubuntu-latest
steps:
- name: Checkout Master
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 22
- name: Build Packages
run: yarn build
- name: Test ESM and CJS integrity
run: yarn bob check
test:
name:
Unit Test on Node ${{matrix.node-version}} (${{matrix.os}}) and GraphQL
v${{matrix.graphql_version}}
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest] # remove windows to speed up the tests
node-version: [18, 20, 22]
graphql_version:
- 15
- 16
include:
- node-version: 18
os: windows-latest
graphql_version: 16
steps:
- name: Checkout Master
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: ${{matrix.node-version}}
- name: Use GraphQL v${{matrix.graphql_version}}
run: node ./scripts/match-graphql.js ${{matrix.graphql_version}}
- name: Install Dependencies using Yarn
run: yarn install --ignore-engines && git checkout yarn.lock
- name: Cache Jest
uses: actions/cache@v4
with:
path: .cache/jest
key:
${{ runner.os }}-${{matrix.node-version}}-${{matrix.graphql_version}}-jest-${{
hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-${{matrix.node-version}}-${{matrix.graphql_version}}-jest-
- name: Test
if: ${{ matrix.node-version >= 20 }}
run: yarn test --ci
- name: Test
if: ${{ matrix.node-version < 20 }}
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 5
command: yarn test:leaks --ci
test_browser:
name: Browser Test
runs-on: ubuntu-latest
steps:
- name: Checkout Master
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 22
- name: Setup Chrome
uses: browser-actions/setup-chrome@v1
- name: Build Packages
run: yarn build
- name: Test
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 5
command: TEST_BROWSER=true yarn jest --no-watchman --ci browser