-
Notifications
You must be signed in to change notification settings - Fork 1.3k
165 lines (162 loc) · 4.43 KB
/
main.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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
name: Testing
on:
push:
branches:
- master
pull_request:
branches:
- master
env:
NODE_OPTIONS: '--max_old_space_size=4096'
CARGO_TERM_COLOR: always
jobs:
lint:
name: Linting Check
uses: the-guild-org/shared-config/.github/workflows/lint.yml@main
with:
script: yarn ci:lint
secrets:
githubToken: ${{ secrets.GITHUB_TOKEN }}
prettier-check:
name: 🧹 Prettier Check
runs-on: ubuntu-latest
steps:
- name: Checkout Master
uses: actions/checkout@v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 18
- name: Prettier Check
run: yarn prettier:check
dev-tests-old:
name: Validating dev-tests
runs-on: ubuntu-latest
strategy:
matrix:
method:
- 'cjs'
- 'esm'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 18
- name: Build
run: yarn build
env:
CI: true
- name: Test dev-tests ${{matrix.method}}
run: |
yarn run generate:examples:${{matrix.method}}
git diff --exit-code -- dev-test/
dev-tests:
name: Examples
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 18
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.65.0
target: wasm32-wasi
override: true
- name: Build SWC plugin
working-directory: ./packages/presets/swc-plugin
run: |
npm run build-wasm
- name: Build
run: yarn build
env:
CI: true
- name: Generate and Diff Codegen Artifacts
run: |
yarn examples:codegen
git diff --exit-code -- examples/
- name: Build Examples
run: |
yarn examples:build
- name: End2End Test Examples
run: |
yarn examples:test:end2end
esm:
name: Testing exports integrity
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup env
uses: the-guild-org/shared-config/setup@main
with:
nodeVersion: 18
- name: Build
run: yarn build
env:
CI: true
- name: Test ESM & 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: ubuntu-latest
needs:
- lint
- prettier-check
- esm
strategy:
matrix:
os: [ubuntu-latest] # remove windows to speed up the tests
node_version: [16, 18, 20]
graphql_version: [15, 16]
include:
- node-version: 14
os: windows-latest
graphql_version: 16
steps:
- name: Checkout
uses: actions/checkout@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
run: yarn
- 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: Test
run: yarn test
env:
CI: true
test-rust-swc-plugin:
name: Build and Unit Test SWC Plugin
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.65.0
target: wasm32-wasi
override: true
- uses: marcopolo/cargo@a527bf4d534717ff4424a84446c5d710f8833139
with:
working-directory: ./packages/presets/swc-plugin
command: build
args: --target wasm32-wasi
- uses: marcopolo/cargo@a527bf4d534717ff4424a84446c5d710f8833139
with:
working-directory: ./packages/presets/swc-plugin
command: test