3030 os : [ubuntu-22.04]
3131 scala : [2.13, 3, 2.12]
3232 java : [temurin@8]
33+ project : [rootJS, rootJVM, rootNative]
3334 runs-on : ${{ matrix.os }}
3435 timeout-minutes : 60
3536 steps :
@@ -59,21 +60,29 @@ jobs:
5960
6061 - name : Check headers and formatting
6162 if : matrix.java == 'temurin@8' && matrix.os == 'ubuntu-22.04'
62- run : sbt '++ ${{ matrix.scala }}' headerCheckAll scalafmtCheckAll 'project /' scalafmtSbtCheck
63+ run : sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' headerCheckAll scalafmtCheckAll 'project /' scalafmtSbtCheck
64+
65+ - name : scalaJSLink
66+ if : matrix.project == 'rootJS'
67+ run : sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' Test/scalaJSLinkerResult
68+
69+ - name : nativeLink
70+ if : matrix.project == 'rootNative'
71+ run : sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' Test/nativeLink
6372
6473 - name : Test
65- run : sbt '++ ${{ matrix.scala }}' test
74+ run : sbt 'project ${{ matrix.project }}' ' ++ ${{ matrix.scala }}' test
6675
6776 - name : Check binary compatibility
6877 if : matrix.java == 'temurin@8' && matrix.os == 'ubuntu-22.04'
69- run : sbt '++ ${{ matrix.scala }}' mimaReportBinaryIssues
78+ run : sbt 'project ${{ matrix.project }}' ' ++ ${{ matrix.scala }}' mimaReportBinaryIssues
7079
7180 - name : Generate API documentation
7281 if : matrix.java == 'temurin@8' && matrix.os == 'ubuntu-22.04'
73- run : sbt '++ ${{ matrix.scala }}' doc
82+ run : sbt 'project ${{ matrix.project }}' ' ++ ${{ matrix.scala }}' doc
7483
7584 - if : matrix.scala == '2.13.16'
76- run : sbt '++ ${{ matrix.scala }}' docs/mdoc
85+ run : sbt 'project ${{ matrix.project }}' ' ++ ${{ matrix.scala }}' docs/mdoc
7786
7887 - name : Make target directories
7988 if : github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
8796 if : github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
8897 uses : actions/upload-artifact@v4
8998 with :
90- name : target-${{ matrix.os }}-${{ matrix.java }}-${{ matrix.scala }}
99+ name : target-${{ matrix.os }}-${{ matrix.java }}-${{ matrix.scala }}-${{ matrix.project }}
91100 path : targets.tar
92101
93102 publish :
@@ -121,32 +130,92 @@ jobs:
121130 if : matrix.java == 'temurin@8' && steps.setup-java-temurin-8.outputs.cache-hit == 'false'
122131 run : sbt +update
123132
124- - name : Download target directories (2.13)
133+ - name : Download target directories (2.13, rootJS)
134+ uses : actions/download-artifact@v4
135+ with :
136+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.13-rootJS
137+
138+ - name : Inflate target directories (2.13, rootJS)
139+ run : |
140+ tar xf targets.tar
141+ rm targets.tar
142+
143+ - name : Download target directories (2.13, rootJVM)
144+ uses : actions/download-artifact@v4
145+ with :
146+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.13-rootJVM
147+
148+ - name : Inflate target directories (2.13, rootJVM)
149+ run : |
150+ tar xf targets.tar
151+ rm targets.tar
152+
153+ - name : Download target directories (2.13, rootNative)
154+ uses : actions/download-artifact@v4
155+ with :
156+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.13-rootNative
157+
158+ - name : Inflate target directories (2.13, rootNative)
159+ run : |
160+ tar xf targets.tar
161+ rm targets.tar
162+
163+ - name : Download target directories (3, rootJS)
164+ uses : actions/download-artifact@v4
165+ with :
166+ name : target-${{ matrix.os }}-${{ matrix.java }}-3-rootJS
167+
168+ - name : Inflate target directories (3, rootJS)
169+ run : |
170+ tar xf targets.tar
171+ rm targets.tar
172+
173+ - name : Download target directories (3, rootJVM)
174+ uses : actions/download-artifact@v4
175+ with :
176+ name : target-${{ matrix.os }}-${{ matrix.java }}-3-rootJVM
177+
178+ - name : Inflate target directories (3, rootJVM)
179+ run : |
180+ tar xf targets.tar
181+ rm targets.tar
182+
183+ - name : Download target directories (3, rootNative)
184+ uses : actions/download-artifact@v4
185+ with :
186+ name : target-${{ matrix.os }}-${{ matrix.java }}-3-rootNative
187+
188+ - name : Inflate target directories (3, rootNative)
189+ run : |
190+ tar xf targets.tar
191+ rm targets.tar
192+
193+ - name : Download target directories (2.12, rootJS)
125194 uses : actions/download-artifact@v4
126195 with :
127- name : target-${{ matrix.os }}-${{ matrix.java }}-2.13
196+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.12-rootJS
128197
129- - name : Inflate target directories (2.13 )
198+ - name : Inflate target directories (2.12, rootJS )
130199 run : |
131200 tar xf targets.tar
132201 rm targets.tar
133202
134- - name : Download target directories (3 )
203+ - name : Download target directories (2.12, rootJVM )
135204 uses : actions/download-artifact@v4
136205 with :
137- name : target-${{ matrix.os }}-${{ matrix.java }}-3
206+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.12-rootJVM
138207
139- - name : Inflate target directories (3 )
208+ - name : Inflate target directories (2.12, rootJVM )
140209 run : |
141210 tar xf targets.tar
142211 rm targets.tar
143212
144- - name : Download target directories (2.12)
213+ - name : Download target directories (2.12, rootNative )
145214 uses : actions/download-artifact@v4
146215 with :
147- name : target-${{ matrix.os }}-${{ matrix.java }}-2.12
216+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.12-rootNative
148217
149- - name : Inflate target directories (2.12)
218+ - name : Inflate target directories (2.12, rootNative )
150219 run : |
151220 tar xf targets.tar
152221 rm targets.tar
@@ -208,7 +277,7 @@ jobs:
208277 - name : Submit Dependencies
209278 uses : scalacenter/sbt-dependency-submission@v2
210279 with :
211- modules-ignore : root_2 .13 root_3 root_2 .12 docs_2.13 docs_3 docs_2.12
280+ modules-ignore : rootjs_2 .13 rootjs_3 rootjs_2 .12 docs_2.13 docs_3 docs_2.12 rootjvm_2.13 rootjvm_3 rootjvm_2.12 rootnative_2.13 rootnative_3 rootnative_2 .12
212281 configs-ignore : test scala-tool scala-doc-tool test-internal
213282
214283 docs :
@@ -222,32 +291,92 @@ jobs:
222291 java : [temurin@8]
223292 runs-on : ${{ matrix.os }}
224293 steps :
225- - name : Download target directories (2.13)
294+ - name : Download target directories (2.13, rootJS)
295+ uses : actions/download-artifact@v4
296+ with :
297+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.13-rootJS
298+
299+ - name : Inflate target directories (2.13, rootJS)
300+ run : |
301+ tar xf targets.tar
302+ rm targets.tar
303+
304+ - name : Download target directories (2.13, rootJVM)
305+ uses : actions/download-artifact@v4
306+ with :
307+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.13-rootJVM
308+
309+ - name : Inflate target directories (2.13, rootJVM)
310+ run : |
311+ tar xf targets.tar
312+ rm targets.tar
313+
314+ - name : Download target directories (2.13, rootNative)
315+ uses : actions/download-artifact@v4
316+ with :
317+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.13-rootNative
318+
319+ - name : Inflate target directories (2.13, rootNative)
320+ run : |
321+ tar xf targets.tar
322+ rm targets.tar
323+
324+ - name : Download target directories (3, rootJS)
325+ uses : actions/download-artifact@v4
326+ with :
327+ name : target-${{ matrix.os }}-${{ matrix.java }}-3-rootJS
328+
329+ - name : Inflate target directories (3, rootJS)
330+ run : |
331+ tar xf targets.tar
332+ rm targets.tar
333+
334+ - name : Download target directories (3, rootJVM)
335+ uses : actions/download-artifact@v4
336+ with :
337+ name : target-${{ matrix.os }}-${{ matrix.java }}-3-rootJVM
338+
339+ - name : Inflate target directories (3, rootJVM)
340+ run : |
341+ tar xf targets.tar
342+ rm targets.tar
343+
344+ - name : Download target directories (3, rootNative)
345+ uses : actions/download-artifact@v4
346+ with :
347+ name : target-${{ matrix.os }}-${{ matrix.java }}-3-rootNative
348+
349+ - name : Inflate target directories (3, rootNative)
350+ run : |
351+ tar xf targets.tar
352+ rm targets.tar
353+
354+ - name : Download target directories (2.12, rootJS)
226355 uses : actions/download-artifact@v4
227356 with :
228- name : target-${{ matrix.os }}-${{ matrix.java }}-2.13
357+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.12-rootJS
229358
230- - name : Inflate target directories (2.13 )
359+ - name : Inflate target directories (2.12, rootJS )
231360 run : |
232361 tar xf targets.tar
233362 rm targets.tar
234363
235- - name : Download target directories (3 )
364+ - name : Download target directories (2.12, rootJVM )
236365 uses : actions/download-artifact@v4
237366 with :
238- name : target-${{ matrix.os }}-${{ matrix.java }}-3
367+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.12-rootJVM
239368
240- - name : Inflate target directories (3 )
369+ - name : Inflate target directories (2.12, rootJVM )
241370 run : |
242371 tar xf targets.tar
243372 rm targets.tar
244373
245- - name : Download target directories (2.12)
374+ - name : Download target directories (2.12, rootNative )
246375 uses : actions/download-artifact@v4
247376 with :
248- name : target-${{ matrix.os }}-${{ matrix.java }}-2.12
377+ name : target-${{ matrix.os }}-${{ matrix.java }}-2.12-rootNative
249378
250- - name : Inflate target directories (2.12)
379+ - name : Inflate target directories (2.12, rootNative )
251380 run : |
252381 tar xf targets.tar
253382 rm targets.tar
0 commit comments