@@ -177,51 +177,37 @@ jobs:
177177 - " *.jar"
178178 - " org/**/*"
179179
180- spark3-2_12-jdk11-big-c40 :
181- docker :
182- - image : cimg/openjdk:11.0
183- resource_class : large
184- steps :
185- - install_common
186- - checkout
187- - attach_workspace :
188- at : dependencies
189- - run_build :
190- spark : " 3"
191- scala : " 2.12"
192- jdk : " 11"
193- sstable_format : " big"
194- cassandra : " 4.0"
195-
196- - store_artifacts :
197- when : always
198- path : build/test-reports
199- destination : test-reports
200-
201- - store_artifacts :
202- when : always
203- path : build/reports
204- destination : reports
205-
206- - store_test_results :
207- when : always
208- path : build/test-reports
209-
210- spark3-2_12-jdk11-big-c41 :
180+ # Single parameterized unit-test job. The workflow invokes it via `matrix:`
181+ # multiple times, once per "compatibility group" (e.g. C4.x + Scala 2.12 + BIG,
182+ # C5.0 + Scala 2.13 + BTI). Splitting into several small matrices is cleaner
183+ # than one big matrix with a long `exclude:` list, because CircleCI's
184+ # `exclude:` requires every parameter to be listed in every entry.
185+ unit-test :
186+ parameters :
187+ spark :
188+ type : string
189+ scala :
190+ type : string
191+ jdk :
192+ type : string
193+ cassandra :
194+ type : string
195+ sstable_format :
196+ type : string
211197 docker :
212- - image : cimg/openjdk:11 .0
198+ - image : cimg/openjdk:<<parameters.jdk>> .0
213199 resource_class : large
214200 steps :
215201 - install_common
216202 - checkout
217203 - attach_workspace :
218204 at : dependencies
219205 - run_build :
220- spark : " 3 "
221- scala : " 2.12 "
222- jdk : " 11 "
223- sstable_format : " big "
224- cassandra : " 4.1 "
206+ spark : " <<parameters.spark>> "
207+ scala : " <<parameters.scala>> "
208+ jdk : " <<parameters.jdk>> "
209+ sstable_format : " <<parameters.sstable_format>> "
210+ cassandra : " <<parameters.cassandra>> "
225211
226212 - store_artifacts :
227213 when : always
@@ -237,46 +223,21 @@ jobs:
237223 when : always
238224 path : build/test-reports
239225
240- int-c4-spark3-2_12-jdk11 :
241- parallelism : 8
242- docker :
243- - image : cimg/openjdk:11.0
244- resource_class : large
245- steps :
246- - setup_remote_docker
247- - install_common
248- - checkout
249- - attach_workspace :
250- at : dependencies
251- - run_integration :
252- spark : " 3"
253- scala : " 2.12"
254- jdk : " 11"
255- cassandra : " 4.0.17"
256-
257- - store_artifacts :
258- when : always
259- path : build/test-reports
260- destination : test-reports
261-
262- - store_artifacts :
263- when : always
264- path : build/reports
265- destination : reports
266-
267- - store_artifacts :
268- when : always
269- path : cassandra-analytics-integration-tests
270- destination : int-tests-misc
271-
272- - store_test_results :
273- when : always
274- path : build/aggregated-test-reports
275-
276- int-c41-spark3-2_12-jdk11 :
226+ # Single parameterized integration-test job, invoked once per Cassandra/Scala
227+ # compatibility group from the workflow's `matrix:` block.
228+ integration-test :
229+ parameters :
230+ spark :
231+ type : string
232+ scala :
233+ type : string
234+ jdk :
235+ type : string
236+ cassandra :
237+ type : string
277238 parallelism : 8
278239 docker :
279- - image : cimg/openjdk:11 .0
240+ - image : cimg/openjdk:<<parameters.jdk>> .0
280241 resource_class : large
281242 steps :
282243 - setup_remote_docker
@@ -285,10 +246,10 @@ jobs:
285246 - attach_workspace :
286247 at : dependencies
287248 - run_integration :
288- spark : " 3 "
289- scala : " 2.12 "
290- jdk : " 11 "
291- cassandra : " 4.1.4 "
249+ spark : " <<parameters.spark>> "
250+ scala : " <<parameters.scala>> "
251+ jdk : " <<parameters.jdk>> "
252+ cassandra : " <<parameters.cassandra>> "
292253
293254 - store_artifacts :
294255 when : always
@@ -309,91 +270,60 @@ jobs:
309270 when : always
310271 path : build/aggregated-test-reports
311272
312- spark3-2_13-jdk11-bti-c50 :
313- docker :
314- - image : cimg/openjdk:11.0
315- resource_class : large
316- steps :
317- - install_common
318- - checkout
319- - attach_workspace :
320- at : dependencies
321- - run_build :
322- spark : " 3"
323- scala : " 2.13"
324- jdk : " 11"
325- sstable_format : " bti"
326- cassandra : " 5.0"
327-
328- - store_artifacts :
329- when : always
330- path : build/test-reports
331- destination : test-reports
332-
333- - store_artifacts :
334- when : always
335- path : build/reports
336- destination : reports
337-
338- - store_test_results :
339- when : always
340- path : build/test-reports
341-
342- int-c5-spark3-2_13-jdk11 :
343- parallelism : 8
344- docker :
345- - image : cimg/openjdk:11.0
346- resource_class : large
347- steps :
348- - setup_remote_docker
349- - install_common
350- - checkout
351- - attach_workspace :
352- at : dependencies
353- - run_integration :
354- spark : " 3"
355- scala : " 2.13"
356- jdk : " 11"
357- cassandra : " 5.0.5"
358-
359- - store_artifacts :
360- when : always
361- path : build/test-reports
362- destination : test-reports
363-
364- - store_artifacts :
365- when : always
366- path : build/reports
367- destination : reports
368-
369- - store_test_results :
370- when : always
371- path : build/aggregated-test-reports
372-
373273workflows :
374274 version : 2
375275 build-and-test :
376276 jobs :
377277 - build-deps-jdk11
378278
379- # Unit tests: split by Cassandra version to reduce per-process memory pressure
380- - spark3-2_12-jdk11-big-c40 :
381- requires :
382- - build-deps-jdk11
383- - spark3-2_12-jdk11-big-c41 :
384- requires :
385- - build-deps-jdk11
386- - spark3-2_13-jdk11-bti-c50 :
279+ # ---- Unit tests ----
280+ # Cassandra 4.x: Scala 2.12 + BIG sstable format
281+ - unit-test :
387282 requires :
388283 - build-deps-jdk11
389-
390- # Integration tests
391- - int-c4-spark3-2_12-jdk11 :
284+ matrix :
285+ alias : unit-c4x
286+ parameters :
287+ spark : ["3"]
288+ scala : ["2.12"]
289+ jdk : ["11"]
290+ sstable_format : ["big"]
291+ cassandra : ["4.0", "4.1"]
292+
293+ # Cassandra 5.0: Scala 2.13 + BTI sstable format
294+ - unit-test :
392295 requires :
393296 - build-deps-jdk11
394- - int-c41-spark3-2_12-jdk11 :
297+ matrix :
298+ alias : unit-c5
299+ parameters :
300+ spark : ["3"]
301+ scala : ["2.13"]
302+ jdk : ["11"]
303+ sstable_format : ["bti"]
304+ cassandra : ["5.0"]
305+
306+ # ---- Integration tests ----
307+ # Cassandra 4.x: Scala 2.12, full patch versions for dtest jar lookup
308+ - integration-test :
395309 requires :
396310 - build-deps-jdk11
397- - int-c5-spark3-2_13-jdk11 :
311+ matrix :
312+ alias : int-c4x
313+ parameters :
314+ spark : ["3"]
315+ scala : ["2.12"]
316+ jdk : ["11"]
317+ cassandra : ["4.0.17", "4.1.4"]
318+
319+ # Cassandra 5.0: Scala 2.13
320+ - integration-test :
398321 requires :
399322 - build-deps-jdk11
323+ matrix :
324+ alias : int-c5
325+ parameters :
326+ spark : ["3"]
327+ scala : ["2.13"]
328+ jdk : ["11"]
329+ cassandra : ["5.0.5"]
0 commit comments