Skip to content

Commit f5d8bf5

Browse files
committed
Circle CI
1 parent 2854ed2 commit f5d8bf5

1 file changed

Lines changed: 83 additions & 153 deletions

File tree

.circleci/config.yml

Lines changed: 83 additions & 153 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
373273
workflows:
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

Comments
 (0)