-
-
Notifications
You must be signed in to change notification settings - Fork 822
143 lines (133 loc) · 4.2 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
name: Tests
env:
NODE_NO_WARNINGS: true
NODE_OPTIONS: '--max-old-space-size=8192'
CI: true
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
- master
pull_request:
jobs:
typecheck-15:
name: Type Check on GraphQL v15
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: Use GraphQL v15
run: node ./scripts/match-graphql.js 15
- name: Install Dependencies using Yarn
run: yarn install --ignore-engines && git checkout yarn.lock
- name: Type Check
run: yarn ts:check
check:
name: Full Check on GraphQL v16
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
run: yarn prettier:check
- name: Lint
run: yarn lint
- name: Build
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, 23]
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: Build
run: yarn build
- name: Unit Tests
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 5
command: yarn test --ci
- name: Leak Tests
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 5
command: yarn test:leaks --ci
test-bun:
name: Unit Test on Bun (${{matrix.os}}) and GraphQL v${{matrix.graphql_version}}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest] # remove windows to speed up the tests
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: 23
- 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: Build
run: yarn build
- name: Unit Tests
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 5
command: yarn test:bun --ci --reporter=junit --reporter-outfile=./junit.xml
- name: Publish Test Report
uses: mikepenz/action-junit-report@v5
if: success() || failure() # always run even if the previous step fails
with:
report_paths: './junit.xml'