@@ -15,6 +15,7 @@ Matrix Types:
15
15
Full: All server versions, python runtimes tested with and without Cython.
16
16
Cassandra: All cassandra server versions.
17
17
Dse: All dse server versions.
18
+ Hcd: All hcd server versions.
18
19
Smoke: CI-friendly configurations. Currently-supported Python version + modern Cassandra/DSE instances.
19
20
We also avoid cython since it's tested as part of the nightlies
20
21
@@ -31,7 +32,8 @@ import com.datastax.jenkins.drivers.python.Slack
31
32
slack = new Slack ()
32
33
33
34
DEFAULT_CASSANDRA = [' 3.0' , ' 3.11' , ' 4.0' , ' 4.1' , ' 5.0-beta1' ]
34
- DEFAULT_DSE = [' dse-5.1.35' , ' dse-6.8.30' ]
35
+ DEFAULT_DSE = [' dse-5.1.35' , ' dse-6.8.30' , ' dse-6.9.0' ]
36
+ DEFAULT_HCD = [' hcd-1.0.0' ]
35
37
DEFAULT_RUNTIME = [' 3.8.16' , ' 3.9.16' , ' 3.10.11' , ' 3.11.3' , ' 3.12.0' ]
36
38
DEFAULT_CYTHON = [" True" , " False" ]
37
39
matrices = [
@@ -51,7 +53,7 @@ matrices = [
51
53
" CYTHON" : DEFAULT_CYTHON
52
54
],
53
55
" SMOKE" : [
54
- " SERVER" : DEFAULT_CASSANDRA . takeRight(2 ) + DEFAULT_DSE . takeRight(1 ),
56
+ " SERVER" : DEFAULT_CASSANDRA . takeRight(2 ) + DEFAULT_DSE . takeRight(2 ) + DEFAULT_HCD . takeRight( 1 ),
55
57
" RUNTIME" : DEFAULT_RUNTIME . take(1 ) + DEFAULT_RUNTIME . takeRight(1 ),
56
58
" CYTHON" : [" True" ]
57
59
]
@@ -224,6 +226,19 @@ DSE_VERSION=${DSE_FIXED_VERSION}
224
226
CCM_IS_DSE=true
225
227
CCM_BRANCH=${DSE_FIXED_VERSION}
226
228
DSE_BRANCH=${DSE_FIXED_VERSION}
229
+ ENVIRONMENT_EOF
230
+ '''
231
+ } else if (env. CASSANDRA_VERSION . split(' -' )[0 ] == ' hcd' ) {
232
+ env. HCD_FIXED_VERSION = env. CASSANDRA_VERSION . split(' -' )[1 ]
233
+ sh label : ' Update environment for DataStax Enterprise' , script : ''' #!/bin/bash -le
234
+ cat >> ${HOME}/environment.txt << ENVIRONMENT_EOF
235
+ CCM_CASSANDRA_VERSION=${HCD_FIXED_VERSION} # maintain for backwards compatibility
236
+ CCM_VERSION=${HCD_FIXED_VERSION}
237
+ CCM_SERVER_TYPE=hcd
238
+ HCD_VERSION=${HCD_FIXED_VERSION}
239
+ CCM_IS_HCD=true
240
+ CCM_BRANCH=${HCD_FIXED_VERSION}
241
+ HCD_BRANCH=${HCD_FIXED_VERSION}
227
242
ENVIRONMENT_EOF
228
243
'''
229
244
}
@@ -276,13 +291,13 @@ def executeStandardTests() {
276
291
jabba use 1.8
277
292
278
293
SIMULACRON_JAR="${HOME}/simulacron.jar"
279
- SIMULACRON_JAR=${SIMULACRON_JAR} EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=test_backpressure.py --junit-xml=simulacron_results.xml tests/integration/simulacron/ || true
294
+ SIMULACRON_JAR=${SIMULACRON_JAR} EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} HCD_VERSION=${HCD_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=test_backpressure.py --junit-xml=simulacron_results.xml tests/integration/simulacron/ || true
280
295
281
296
# Run backpressure tests separately to avoid memory issue
282
- SIMULACRON_JAR=${SIMULACRON_JAR} EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=test_backpressure.py --junit-xml=simulacron_backpressure_1_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_paused_connections || true
283
- SIMULACRON_JAR=${SIMULACRON_JAR} EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=test_backpressure.py --junit-xml=simulacron_backpressure_2_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_queued_requests_timeout || true
284
- SIMULACRON_JAR=${SIMULACRON_JAR} EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=test_backpressure.py --junit-xml=simulacron_backpressure_3_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_cluster_busy || true
285
- SIMULACRON_JAR=${SIMULACRON_JAR} EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=test_backpressure.py --junit-xml=simulacron_backpressure_4_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_node_busy || true
297
+ SIMULACRON_JAR=${SIMULACRON_JAR} EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} HCD_VERSION=${HCD_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=test_backpressure.py --junit-xml=simulacron_backpressure_1_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_paused_connections || true
298
+ SIMULACRON_JAR=${SIMULACRON_JAR} EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} HCD_VERSION=${HCD_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=test_backpressure.py --junit-xml=simulacron_backpressure_2_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_queued_requests_timeout || true
299
+ SIMULACRON_JAR=${SIMULACRON_JAR} EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} HCD_VERSION=${HCD_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=test_backpressure.py --junit-xml=simulacron_backpressure_3_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_cluster_busy || true
300
+ SIMULACRON_JAR=${SIMULACRON_JAR} EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} HCD_VERSION=${HCD_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=test_backpressure.py --junit-xml=simulacron_backpressure_4_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_node_busy || true
286
301
'''
287
302
288
303
sh label : ' Execute CQL engine integration tests' , script : ''' #!/bin/bash -lex
@@ -294,7 +309,7 @@ def executeStandardTests() {
294
309
. ${JABBA_SHELL}
295
310
jabba use 1.8
296
311
297
- EVENT_LOOP=${EVENT_LOOP} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --junit-xml=cqle_results.xml tests/integration/cqlengine/ || true
312
+ EVENT_LOOP=${EVENT_LOOP} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} HCD_VERSION=${HCD_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --junit-xml=cqle_results.xml tests/integration/cqlengine/ || true
298
313
'''
299
314
300
315
sh label : ' Execute Apache CassandraⓇ integration tests' , script : ''' #!/bin/bash -lex
@@ -306,7 +321,7 @@ def executeStandardTests() {
306
321
. ${JABBA_SHELL}
307
322
jabba use 1.8
308
323
309
- EVENT_LOOP=${EVENT_LOOP} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --junit-xml=standard_results.xml tests/integration/standard/ || true
324
+ EVENT_LOOP=${EVENT_LOOP} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} HCD_VERSION=${HCD_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --junit-xml=standard_results.xml tests/integration/standard/ || true
310
325
'''
311
326
312
327
if (env. CASSANDRA_VERSION . split(' -' )[0 ] == ' dse' && env. CASSANDRA_VERSION . split(' -' )[1 ] != ' 4.8' ) {
@@ -323,7 +338,7 @@ def executeStandardTests() {
323
338
. ${JABBA_SHELL}
324
339
jabba use 1.8
325
340
326
- EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} DSE_VERSION=${DSE_VERSION} ADS_HOME="${HOME}/" VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --junit-xml=dse_results.xml tests/integration/advanced/ || true
341
+ EVENT_LOOP=${EVENT_LOOP} CASSANDRA_DIR=${CCM_INSTALL_DIR} DSE_VERSION=${DSE_VERSION} HCD_VERSION=${HCD_VERSION} ADS_HOME="${HOME}/" VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --junit-xml=dse_results.xml tests/integration/advanced/ || true
327
342
'''
328
343
}
329
344
}
@@ -350,7 +365,7 @@ def executeStandardTests() {
350
365
. ${JABBA_SHELL}
351
366
jabba use 1.8
352
367
353
- EVENT_LOOP=${EVENT_LOOP} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=tests/integration/long/upgrade --junit-xml=long_results.xml tests/integration/long/ || true
368
+ EVENT_LOOP=${EVENT_LOOP} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} HCD_VERSION=${HCD_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --ignore=tests/integration/long/upgrade --junit-xml=long_results.xml tests/integration/long/ || true
354
369
'''
355
370
}
356
371
}
@@ -389,7 +404,7 @@ def executeEventLoopTests() {
389
404
"tests/integration/simulacron/test_endpoint.py"
390
405
"tests/integration/long/test_ssl.py"
391
406
)
392
- EVENT_LOOP=${EVENT_LOOP} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --junit-xml=standard_results.xml ${EVENT_LOOP_TESTS[@]} || true
407
+ EVENT_LOOP=${EVENT_LOOP} CCM_ARGS="${CCM_ARGS}" DSE_VERSION=${DSE_VERSION} HCD_VERSION=${HCD_VERSION} CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Xss384k" pytest -s -v --log-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --junit-xml=standard_results.xml ${EVENT_LOOP_TESTS[@]} || true
393
408
'''
394
409
}
395
410
@@ -496,7 +511,7 @@ pipeline {
496
511
</table>''' )
497
512
choice(
498
513
name : ' MATRIX' ,
499
- choices : [' DEFAULT' , ' SMOKE' , ' FULL' , ' CASSANDRA' , ' DSE' ],
514
+ choices : [' DEFAULT' , ' SMOKE' , ' FULL' , ' CASSANDRA' , ' DSE' , ' HCD ' ],
500
515
description : ''' <p>The matrix for the build.</p>
501
516
<table style="width:100%">
502
517
<col width="25%">
@@ -525,14 +540,18 @@ pipeline {
525
540
<td><strong>DSE</strong></td>
526
541
<td>All dse server versions.</td>
527
542
</tr>
543
+ <tr>
544
+ <td><strong>HCD</strong></td>
545
+ <td>All hcd server versions.</td>
546
+ </tr>
528
547
</table>''' )
529
548
choice(
530
549
name : ' PYTHON_VERSION' ,
531
550
choices : [' DEFAULT' ] + DEFAULT_RUNTIME ,
532
551
description : ' Python runtime version. Default to the build context.' )
533
552
choice(
534
553
name : ' SERVER_VERSION' ,
535
- choices : [' DEFAULT' ] + DEFAULT_CASSANDRA + DEFAULT_DSE ,
554
+ choices : [' DEFAULT' ] + DEFAULT_CASSANDRA + DEFAULT_DSE + DEFAULT_HCD ,
536
555
description : ''' Apache CassandraⓇ and DataStax Enterprise server version to use for adhoc <b>BUILD-AND-EXECUTE-TESTS</b> <strong>ONLY!</strong>
537
556
<table style="width:100%">
538
557
<col width="15%">
@@ -567,7 +586,15 @@ pipeline {
567
586
</tr>
568
587
<tr>
569
588
<td><strong>dse-6.8.30</strong></td>
570
- <td>DataStax Enterprise v6.8.x (<b>CURRENTLY UNDER DEVELOPMENT</b>)</td>
589
+ <td>DataStax Enterprise v6.8.x</td>
590
+ </tr>
591
+ <tr>
592
+ <td><strong>dse-6.9.0</strong></td>
593
+ <td>DataStax Enterprise v6.9.x (<b>CURRENTLY UNDER DEVELOPMENT</b>)</td>
594
+ </tr>
595
+ <tr>
596
+ <td><strong>hcd-1.0.0</strong></td>
597
+ <td>DataStax HCD v1.0.x (<b>CURRENTLY UNDER DEVELOPMENT</b>)</td>
571
598
</tr>
572
599
</table>''' )
573
600
choice(
@@ -648,7 +675,7 @@ pipeline {
648
675
parameterizedCron(branchPatternCron(). matcher(env. BRANCH_NAME ). matches() ? """
649
676
# Every weeknight (Monday - Friday) around 4:00 AM
650
677
# These schedules will run with and without Cython enabled for Python 3.8.16 and 3.12.0
651
- H 4 * * 1-5 %CI_SCHEDULE=WEEKNIGHTS;EVENT_LOOP=LIBEV;CI_SCHEDULE_PYTHON_VERSION=3.8.16 3.12.0;CI_SCHEDULE_SERVER_VERSION=3.11 4.0 5.0-beta1 dse-5.1.35 dse-6.8.30
678
+ H 4 * * 1-5 %CI_SCHEDULE=WEEKNIGHTS;EVENT_LOOP=LIBEV;CI_SCHEDULE_PYTHON_VERSION=3.8.16 3.12.0;CI_SCHEDULE_SERVER_VERSION=3.11 4.0 5.0-beta1 dse-5.1.35 dse-6.8.30 dse-6.9.0 hcd-1.0.0
652
679
""" : " " )
653
680
}
654
681
0 commit comments