@@ -124,3 +124,132 @@ jobs:
124124 - name : Run Tests 🔍
125125 run : pnpm run test
126126 working-directory : ${{ matrix.package.path }}
127+
128+ build-parser :
129+ name : Build Parser Package 📦
130+ needs : build-wasm
131+ runs-on : ubuntu-latest
132+ steps :
133+ - name : Checkout Repository 📥
134+ uses : actions/checkout@v4
135+
136+ - name : Setup Node.js 🌐
137+ uses : actions/setup-node@v4
138+ with :
139+ node-version : ' 20.x'
140+
141+ - name : Setup pnpm 📦
142+ uses : pnpm/action-setup@v2
143+ with :
144+ version : 8.15.1
145+
146+ - name : Get pnpm store directory 📁
147+ shell : bash
148+ run : |
149+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
150+
151+ - name : Setup pnpm cache 🗄️
152+ uses : actions/cache@v3
153+ with :
154+ path : ${{ env.STORE_PATH }}
155+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
156+ restore-keys : |
157+ ${{ runner.os }}-pnpm-store-
158+
159+ - name : Install Dependencies 🧶
160+ run : pnpm install
161+
162+ - name : Download v15 WASM Artifacts 📥
163+ uses : actions/download-artifact@v4
164+ with :
165+ name : wasm-artifacts-v15
166+ path : versions/15/wasm/
167+
168+ - name : Download v16 WASM Artifacts 📥
169+ uses : actions/download-artifact@v4
170+ with :
171+ name : wasm-artifacts-v16
172+ path : versions/16/wasm/
173+
174+ - name : Download v17 WASM Artifacts 📥
175+ uses : actions/download-artifact@v4
176+ with :
177+ name : wasm-artifacts-v17
178+ path : versions/17/wasm/
179+
180+ - name : Build Parser 🏗
181+ run : pnpm run build
182+ working-directory : parser
183+
184+ - name : Upload Parser Artifacts 📦
185+ uses : actions/upload-artifact@v4
186+ with :
187+ name : parser-artifacts
188+ path : parser/wasm/
189+ retention-days : 1
190+
191+ test-parser :
192+ name : Test Parser on ${{ matrix.os }} ${{ matrix.os == 'ubuntu-latest' && '🐧' || matrix.os == 'macos-latest' && '🍎' || '🪟' }}
193+ needs : build-parser
194+ strategy :
195+ matrix :
196+ os : [ubuntu-latest, macos-latest, windows-latest]
197+ fail-fast : false
198+ runs-on : ${{ matrix.os }}
199+ steps :
200+ - name : Checkout Repository 📥
201+ uses : actions/checkout@v4
202+
203+ - name : Setup Node.js 🌐
204+ uses : actions/setup-node@v4
205+ with :
206+ node-version : ' 20.x'
207+
208+ - name : Setup pnpm 📦
209+ uses : pnpm/action-setup@v2
210+ with :
211+ version : 8.15.1
212+
213+ - name : Get pnpm store directory 📁
214+ shell : bash
215+ run : |
216+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
217+
218+ - name : Setup pnpm cache 🗄️
219+ uses : actions/cache@v3
220+ with :
221+ path : ${{ env.STORE_PATH }}
222+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
223+ restore-keys : |
224+ ${{ runner.os }}-pnpm-store-
225+
226+ - name : Install Dependencies 🧶
227+ run : pnpm install
228+
229+ - name : Download v15 WASM Artifacts 📥
230+ uses : actions/download-artifact@v4
231+ with :
232+ name : wasm-artifacts-v15
233+ path : versions/15/wasm/
234+
235+ - name : Download v16 WASM Artifacts 📥
236+ uses : actions/download-artifact@v4
237+ with :
238+ name : wasm-artifacts-v16
239+ path : versions/16/wasm/
240+
241+ - name : Download v17 WASM Artifacts 📥
242+ uses : actions/download-artifact@v4
243+ with :
244+ name : wasm-artifacts-v17
245+ path : versions/17/wasm/
246+
247+ - name : Download Parser Artifacts 📥
248+ uses : actions/download-artifact@v4
249+ with :
250+ name : parser-artifacts
251+ path : parser/wasm/
252+
253+ - name : Run Parser Tests 🔍
254+ run : pnpm run test
255+ working-directory : parser
0 commit comments