You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by mc...@apache.org on 2023/04/24 19:53:14 UTC
[cassandra-builds] branch trunk updated: Add JDK17 support, excluding trunk's (5.0) unit and jvm-dtest jobs which still have test failures
This is an automated email from the ASF dual-hosted git repository.
mck pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-builds.git
The following commit(s) were added to refs/heads/trunk by this push:
new 7e20525 Add JDK17 support, excluding trunk's (5.0) unit and jvm-dtest jobs which still have test failures
7e20525 is described below
commit 7e205252a001b9316efe98da329d26e3b62c1df9
Author: Mick Semb Wever <mc...@apache.org>
AuthorDate: Mon Dec 5 15:13:02 2022 +0100
Add JDK17 support, excluding trunk's (5.0) unit and jvm-dtest jobs which still have test failures
- always pull images to be on latest
- cqlshlib-test can no longer share a workspace
- unset JAVAN_HOME env variables
- don't dtest-jar build older versions when they don't support jdk11 (they won't be included anyway)
- warn and continue on git clean failures
- update finish_release.sh post-instructions to include having to update cassandra-dtest/upgrade_tests/upgrade_manifest.py
patch by Mick Semb Wever; reviewed by Brandon Williams, Ekaterina Dimitrova for CASSANDRA-17869
---
build-scripts/cassandra-artifacts.sh | 16 +-
build-scripts/cassandra-deb-packaging.sh | 2 +-
build-scripts/cassandra-dtest-pytest-docker.sh | 37 +++-
build-scripts/cassandra-dtest-pytest.sh | 33 +--
build-scripts/cassandra-rpm-packaging.sh | 2 +-
build-scripts/cassandra-test-docker.sh | 20 +-
build-scripts/cassandra-test.sh | 25 ++-
cassandra-release/finish_release.sh | 1 +
docker/build-debs.sh | 14 +-
docker/build-rpms.sh | 14 +-
docker/centos7-image.docker | 3 +-
jenkins-dsl/cassandra_job_dsl_seed.groovy | 267 +++++++++++++------------
12 files changed, 268 insertions(+), 166 deletions(-)
diff --git a/build-scripts/cassandra-artifacts.sh b/build-scripts/cassandra-artifacts.sh
index 6fa60c6..7a8e6b8 100755
--- a/build-scripts/cassandra-artifacts.sh
+++ b/build-scripts/cassandra-artifacts.sh
@@ -18,6 +18,8 @@ command -v docker >/dev/null 2>&1 || { echo >&2 "docker needs to be installed";
[ -f "build.xml" ] || { echo >&2 "build.xml must exist"; exit 1; }
[ -d "${cassandra_builds_dir}" ] || { echo >&2 "cassandra-builds directory must exist"; exit 1; }
+cassandra_version="$(grep 'property\s*name=\"base.version\"' build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p')"
+
# print debug information on versions
ant -version
pip --version
@@ -38,11 +40,19 @@ python -m pip install "setuptools<45" Sphinx sphinx_rtd_theme
# Setup JDK
java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F. '{print $1}')
-if [ "$java_version" -ge 11 ]; then
+if [ "$java_version" -ge 17 ]; then
+ java_version="17"
+ java_version_supported=`grep 'property\s*name="java.supported"' build.xml |sed -ne 's/.*value="\([^"]*\)".*/\1/p'`
+ regx_java_version="(${java_version_supported//,/|})"
+ if [[ ! "17" =~ $regx_java_version ]]; then
+ echo "Invalid JDK17 not supported against ${cassandra_version}"
+ exit 1
+ fi
+elif [ "$java_version" -ge 11 ]; then
java_version="11"
export CASSANDRA_USE_JDK11=true
- if ! grep -q CASSANDRA_USE_JDK11 build.xml ; then
- echo "Skipping build. JDK11 not supported against $(grep 'property\s*name=\"base.version\"' build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p')"
+ if ! grep -q "java.version.11" build.xml ; then
+ echo "Skipping build. JDK11 not supported against ${cassandra_version}"
exit 0
fi
else
diff --git a/build-scripts/cassandra-deb-packaging.sh b/build-scripts/cassandra-deb-packaging.sh
index 363133a..4ecf884 100755
--- a/build-scripts/cassandra-deb-packaging.sh
+++ b/build-scripts/cassandra-deb-packaging.sh
@@ -6,7 +6,7 @@
if [ "$#" -lt 1 ]; then
echo "$0 <branch|tag|sha> <java version>"
- echo "if Java version is not set, it is set to 8 by default, choose from 8 or 11"
+ echo "if Java version is not set, it is set to 8 by default, choose from 8 or 11 or 17"
exit 1
fi
diff --git a/build-scripts/cassandra-dtest-pytest-docker.sh b/build-scripts/cassandra-dtest-pytest-docker.sh
index 3d40386..e321556 100755
--- a/build-scripts/cassandra-dtest-pytest-docker.sh
+++ b/build-scripts/cassandra-dtest-pytest-docker.sh
@@ -3,7 +3,7 @@
# A wrapper script to cassandra-dtest-pytest.sh
# that runs it in docker, collecting results.
#
-# The docker image used is normally based from those found in docker/testing/
+# The docker images used by default are found in docker/testing/
#
# Usage: cassandra-dtest-pytest-docker.sh REPO BRANCH DTEST_REPO_URL DTEST_BRANCH BUILDS_REPO_URL BUILDS_BRANCH DOCKER_IMAGE [target] [split_chunk]
#
@@ -15,6 +15,21 @@ if [ "$#" -lt 3 ]; then
export LC_CTYPE=en_US.UTF-8
export PYTHONIOENCODING=utf-8
export PYTHONUNBUFFERED=true
+ if [ "${JAVA_VERSION}" -ge 17 ] ; then
+ sudo update-java-alternatives --set java-1.17.0-openjdk-$(dpkg --print-architecture)
+ export JAVA_HOME=$(sudo update-java-alternatives -l | grep "java-1.17.0-openjdk" | awk '{print $3}')
+ elif [ "${JAVA_VERSION}" -ge 11 ] ; then
+ sudo update-java-alternatives --set java-1.11.0-openjdk-$(dpkg --print-architecture)
+ export JAVA_HOME=$(sudo update-java-alternatives -l | grep "java-1.11.0-openjdk" | awk '{print $3}')
+ fi
+
+ # TODO – remove when no longer set in docker images
+ unset JAVA8_HOME
+ unset JAVA11_HOME
+ unset JAVA17_HOME
+
+ java -version
+ javac -version
echo "running: git clone --depth 1 --single-branch --branch=$BRANCH https://github.com/$REPO/cassandra.git"
git clone --quiet --depth 1 --single-branch --branch=$BRANCH https://github.com/$REPO/cassandra.git
cd cassandra
@@ -36,11 +51,27 @@ else
DOCKER_IMAGE=$7
TARGET=$8
SPLIT_CHUNK=$9
+
+ # Setup JDK
+ java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F. '{print $1}')
+ if [ "$java_version" -ge 17 ]; then
+ java_version="17"
+ elif [ "$java_version" -ge 11 ]; then
+ java_version="11"
+ if ! grep -q "java.version.11" build.xml ; then
+ echo "Skipping build. JDK11 not supported against $(grep 'property\s*name=\"base.version\"' build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p')"
+ exit 0
+ fi
+ else
+ java_version="8"
+ fi
+
cat > env.list <<EOF
REPO=$1
BRANCH=$2
DTEST_REPO=$3
DTEST_BRANCH=$4
+JAVA_VERSION=${java_version}
EOF
# pre-conditions
@@ -66,7 +97,7 @@ EOF
[[ "$(docker images -q $DOCKER_IMAGE 2>/dev/null)" != "" ]] || docker pull -q $DOCKER_IMAGE
echo "cassandra-dtest-pytest-docker.sh: running: git clone --single-branch --depth 1 --branch $BUILDSBRANCH $BUILDSREPO; sh ./cassandra-builds/build-scripts/cassandra-dtest-pytest-docker.sh $TARGET $SPLIT_CHUNK"
- ID=$(docker run --cpus=${docker_cpus} -m 15g --memory-swap 15g --env-file env.list -dt $DOCKER_IMAGE dumb-init bash -ilc "git clone --quiet --single-branch --depth 1 --branch $BUILDSBRANCH $BUILDSREPO; sh ./cassandra-builds/build-scripts/cassandra-dtest-pytest-docker.sh $TARGET $SPLIT_CHUNK")
+ ID=$(docker run --pull=always --cpus=${docker_cpus} -m 15g --memory-swap 15g --env-file env.list -dt $DOCKER_IMAGE dumb-init bash -ilc "git clone --quiet --single-branch --depth 1 --branch $BUILDSBRANCH $BUILDSREPO; sh ./cassandra-builds/build-scripts/cassandra-dtest-pytest-docker.sh $TARGET $SPLIT_CHUNK")
# use docker attach instead of docker wait to get output
docker attach --no-stdin $ID
@@ -82,7 +113,7 @@ EOF
echo "–––"
docker info
echo "–––"
- dmesg
+ dmesg || sudo dmesg || echo "warn: couldn't dmesg"
else
echo "$ID done (${status}), copying files"
# dtest.sh meta
diff --git a/build-scripts/cassandra-dtest-pytest.sh b/build-scripts/cassandra-dtest-pytest.sh
index 27a8c9e..194b0a5 100755
--- a/build-scripts/cassandra-dtest-pytest.sh
+++ b/build-scripts/cassandra-dtest-pytest.sh
@@ -24,19 +24,33 @@ export CASSANDRA_DIR=${WORKSPACE}
export CASSANDRA_SKIP_SYNC=true
export TMPDIR="./tmp"
-# set JAVA_HOME environment to enable multi-version jar files for >4.0
-# both JAVA8/11_HOME env variables must exist
-grep -q _build_multi_java $CASSANDRA_DIR/build.xml
-if [ $? -eq 0 -a -n "$JAVA8_HOME" -a -n "$JAVA11_HOME" ]; then
- export JAVA_HOME="$JAVA11_HOME"
-fi
-
# pre-conditions
command -v ant >/dev/null 2>&1 || { echo >&2 "ant needs to be installed"; exit 1; }
command -v pip3 >/dev/null 2>&1 || { echo >&2 "pip3 needs to be installed"; exit 1; }
command -v virtualenv >/dev/null 2>&1 || { echo >&2 "virtualenv needs to be installed"; exit 1; }
+java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F. '{print $1}')
+version=$(grep 'property\s*name=\"base.version\"' build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p')
+
+if [ "$java_version" -ge 17 ]; then
+ if [[ "${target}" == "dtest-upgrade" ]] ; then
+ echo "Invalid JDK17 execution. Only the oldest overlapping supported JDK can be used when upgrading."
+ exit 1
+ fi
+elif [ "$java_version" -ge 11 ]; then
+ export CASSANDRA_USE_JDK11=true
+ regx_version="(2.2|3.0|3.11|4.0|4.1)(.([0-9]+))?$"
+ if ! grep -q "java.version.11" build.xml ; then
+ echo "Skipping ${target}. JDK11 not supported against ${version}"
+ exit 0
+ elif [[ "${target}" == "dtest-upgrade" ]] && [[ $version =~ $regx_version ]] ; then
+ echo "Skipping JDK11 execution. Only the oldest overlapping supported JDK can be used when upgrading."
+ exit 0
+ fi
+fi
+
# print debug information on versions
+java -version
ant -version
pip3 --version
virtualenv --version
@@ -56,11 +70,6 @@ if [ "${RETURN}" -ne "0" ]; then
exit ${RETURN}
fi
-# restore JAVA_HOME to Java 8 version we intent to run tests with
-if [ -n "$JAVA8_HOME" ]; then
- export JAVA_HOME="$JAVA8_HOME"
-fi
-
# Set up venv with dtest dependencies
set -e # enable immediate exit if venv setup fails
virtualenv --python=python3.8 venv
diff --git a/build-scripts/cassandra-rpm-packaging.sh b/build-scripts/cassandra-rpm-packaging.sh
index ca5e26a..3ed2255 100755
--- a/build-scripts/cassandra-rpm-packaging.sh
+++ b/build-scripts/cassandra-rpm-packaging.sh
@@ -6,7 +6,7 @@
if [ "$#" -lt 1 ]; then
echo "$0 <branch|tag|sha> <java version> [dist type]"
- echo "if Java version is not set, it is set to 8 by default, choose from 8 or 11"
+ echo "if Java version is not set, it is set to 8 by default, choose from 8 or 11 or 17"
echo "dist types are [rpm, noboolean] and rpm is default"
exit 1
fi
diff --git a/build-scripts/cassandra-test-docker.sh b/build-scripts/cassandra-test-docker.sh
index 6070c41..d60ebfb 100755
--- a/build-scripts/cassandra-test-docker.sh
+++ b/build-scripts/cassandra-test-docker.sh
@@ -15,11 +15,19 @@ if [ "$#" -lt 3 ]; then
export LC_CTYPE=en_US.UTF-8
export PYTHONIOENCODING=utf-8
export PYTHONUNBUFFERED=true
- if [ "${JAVA_VERSION}" -ge 11 ] ; then
+ if [ "${JAVA_VERSION}" -ge 17 ] ; then
+ sudo update-java-alternatives --set java-1.17.0-openjdk-$(dpkg --print-architecture)
+ export JAVA_HOME=$(sudo update-java-alternatives -l | grep "java-1.17.0-openjdk" | awk '{print $3}')
+ elif [ "${JAVA_VERSION}" -ge 11 ] ; then
sudo update-java-alternatives --set java-1.11.0-openjdk-$(dpkg --print-architecture)
- export CASSANDRA_USE_JDK11=true
export JAVA_HOME=$(sudo update-java-alternatives -l | grep "java-1.11.0-openjdk" | awk '{print $3}')
fi
+
+ # TODO – remove when no longer set in docker images
+ unset JAVA8_HOME
+ unset JAVA11_HOME
+ unset JAVA17_HOME
+
java -version
javac -version
echo "running: git clone --quiet --depth 1 --single-branch --branch=$BRANCH https://github.com/$REPO/cassandra.git"
@@ -51,9 +59,11 @@ else
# Setup JDK
java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F. '{print $1}')
- if [ "$java_version" -ge 11 ]; then
+ if [ "$java_version" -ge 17 ]; then
+ java_version="17"
+ elif [ "$java_version" -ge 11 ]; then
java_version="11"
- if ! grep -q CASSANDRA_USE_JDK11 build.xml ; then
+ if ! grep -q "java.version.11" build.xml ; then
echo "Skipping build. JDK11 not supported against $(grep 'property\s*name=\"base.version\"' build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p')"
exit 0
fi
@@ -105,7 +115,7 @@ EOF
INNER_SPLITS=$(( $(echo $SPLIT_CHUNK | cut -d"/" -f2 ) * $docker_runs ))
INNER_SPLIT_FIRST=$(( ( $(echo $SPLIT_CHUNK | cut -d"/" -f1 ) * $docker_runs ) - ( $docker_runs - 1 ) ))
docker_cpus=$(echo "scale=2; ${cores} / ( ${jenkins_executors} * ${docker_runs} )" | bc)
- docker_flags="--cpus=${docker_cpus} -m 5g --memory-swap 5g --env-file env.list -dt"
+ docker_flags="--pull=always --cpus=${docker_cpus} -m 5g --memory-swap 5g --env-file env.list -dt"
# hack: long-test does not handle limited CPUs
if [ "$TARGET" == "long-test" ] ; then
diff --git a/build-scripts/cassandra-test.sh b/build-scripts/cassandra-test.sh
index eac7274..e12ec43 100755
--- a/build-scripts/cassandra-test.sh
+++ b/build-scripts/cassandra-test.sh
@@ -34,15 +34,20 @@ _timeout_for() {
}
_build_all_dtest_jars() {
+ local -r java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F. '{print $1}')
mkdir -p build
cd $TMP_DIR
until git clone --quiet --depth 1 --no-single-branch https://github.com/apache/cassandra.git cassandra-dtest-jars ; do echo "git clone failed… trying again… " ; done
cd cassandra-dtest-jars
for branch in cassandra-2.2 cassandra-3.0 cassandra-3.11 cassandra-4.0 cassandra-4.1 trunk; do
git checkout $branch
- ant realclean
- ant jar dtest-jar
- cp build/dtest*.jar ../../build/
+ if [ "$java_version" -eq 11 ] && ! grep -q "java.version.11" build.xml ; then
+ echo "Skipping dtest-jar jdk11 build of ${branch}."
+ else
+ ant realclean
+ ant jar dtest-jar
+ cp build/dtest*.jar ../../build/
+ fi
done
cd ../..
rm -fR ${TMP_DIR}/cassandra-dtest-jars
@@ -73,13 +78,19 @@ _main() {
local -r java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F. '{print $1}')
local -r version=$(grep 'property\s*name=\"base.version\"' build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p')
- if [ "$java_version" -ge 11 ]; then
+ if [ "$java_version" -ge 17 ]; then
+ if [[ "${target}" == "jvm-dtest-upgrade" ]] ; then
+ echo "Invalid JDK17 execution. Only the oldest overlapping supported JDK can be used when upgrading."
+ exit 1
+ fi
+ elif [ "$java_version" -ge 11 ]; then
export CASSANDRA_USE_JDK11=true
- if ! grep -q CASSANDRA_USE_JDK11 build.xml ; then
+ regx_version="(2.2|3.0|3.11|4.0|4.1)(.([0-9]+))?$"
+ if ! grep -q "java.version.11" build.xml ; then
echo "Skipping ${target}. JDK11 not supported against ${version}"
exit 0
- elif [[ "${target}" == "jvm-dtest-upgrade" ]] ; then
- echo "Skipping JDK11 execution. Mixed JDK compilation required for ${target}"
+ elif [[ "${target}" == "jvm-dtest-upgrade" ]] && [[ $version =~ $regx_version ]] ; then
+ echo "Skipping JDK11 execution. Only the oldest overlapping supported JDK can be used when upgrading."
exit 0
fi
fi
diff --git a/cassandra-release/finish_release.sh b/cassandra-release/finish_release.sh
index d6aa4f5..2fce5d9 100755
--- a/cassandra-release/finish_release.sh
+++ b/cassandra-release/finish_release.sh
@@ -280,3 +280,4 @@ echo ' 9) release version in JIRA'
echo ' 10) remove old version (eg: `svn rm https://dist.apache.org/repos/dist/release/cassandra/<previous_version>`)'
echo ' 11) increment build.xml base.version for the next release'
echo ' 12) follow instructions in email you will receive from the \"Apache Reporter Service\" to update the project`s list of releases in reporter.apache.org'
+echo ' 13) update current_ version in cassandra-dtest/upgrade_tests/upgrade_manifest.py'
diff --git a/docker/build-debs.sh b/docker/build-debs.sh
index 3bbe892..474bfb2 100755
--- a/docker/build-debs.sh
+++ b/docker/build-debs.sh
@@ -4,7 +4,7 @@ set -e
if [ "$#" -lt 1 ]; then
echo "$0 <branch|tag|sha> <java version>"
- echo "if Java version is not set, it is set to 8 by default, choose from 8 or 11"
+ echo "if Java version is not set, it is set to 8 by default, choose from 8 or 11 or 17"
exit 1
fi
@@ -13,6 +13,9 @@ fi
[ "x${CASSANDRA_DIR}" != "x" ] || { echo >&2 "CASSANDRA_DIR needs to be defined"; exit 1; }
[ -d "${CASSANDRA_DIR}" ] || { echo >&2 "Directory ${CASSANDRA_DIR} must exist"; exit 1; }
+cassandra_version="$(grep 'property\s*name=\"base.version\"' \"${CASSANDRA_DIR}/build.xml\" |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p')"
+
+
CASSANDRA_SHA=$1
JAVA_VERSION=$2
@@ -20,10 +23,10 @@ if [ "$JAVA_VERSION" = "" ]; then
JAVA_VERSION=8
fi
-regx_java_version="(8|11)"
+regx_java_version="(8|11|17)"
if [[ ! "$JAVA_VERSION" =~ $regx_java_version ]]; then
- echo "Error: Java version is not set to 8 nor 11, it is set to $JAVA_VERSION"
+ echo "Error: Java version is not set to 8, 11 nor 17, it is set to $JAVA_VERSION"
exit 1
fi
@@ -104,7 +107,10 @@ if [ $buildxml_version != $git_version ]; then
echo "Warning: build.xml version ($buildxml_version) not matching git/dpkg derived version ($git_version)">&2
fi
-if [ $JAVA_VERSION = "11" ]; then
+if [ $JAVA_VERSION = "17" ]; then
+ sudo update-java-alternatives --set java-1.17.0-openjdk-$(dpkg --print-architecture)
+ echo "Cassandra will be built with Java 17"
+elif [ $JAVA_VERSION = "11" ]; then
sudo update-java-alternatives --set java-1.11.0-openjdk-$(dpkg --print-architecture)
export CASSANDRA_USE_JDK11=true
echo "Cassandra will be built with Java 11"
diff --git a/docker/build-rpms.sh b/docker/build-rpms.sh
index 651a7e4..5d15dd0 100755
--- a/docker/build-rpms.sh
+++ b/docker/build-rpms.sh
@@ -4,7 +4,7 @@ set -e
if [ "$#" -lt 1 ]; then
echo "$0 <branch|tag|sha> <java version> [dist type]"
- echo "if Java version is not set, it is set to 8 by default, choose from 8 or 11"
+ echo "if Java version is not set, it is set to 8 by default, choose from 8 or 11 or 17"
exit 1
fi
@@ -15,6 +15,8 @@ fi
[ "x${CASSANDRA_DIR}" != "x" ] || { echo >&2 "CASSANDRA_DIR needs to be defined"; exit 1; }
[ -d "${CASSANDRA_DIR}" ] || { echo >&2 "Directory ${CASSANDRA_DIR} must exist"; exit 1; }
+cassandra_version="$(grep 'property\s*name=\"base.version\"' \"${CASSANDRA_DIR}/build.xml\" |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p')"
+
CASSANDRA_SHA=$1
JAVA_VERSION=$2
RPM_DIST=$3
@@ -31,10 +33,10 @@ else # noboolean
RPM_SPEC="redhat/noboolean/cassandra.spec"
fi
-regx_java_version="(8|11)"
+regx_java_version="(8|11|17)"
if [[ ! "$JAVA_VERSION" =~ $regx_java_version ]]; then
- echo "Error: Java version is not set to 8 nor 11, it is set to $JAVA_VERSION"
+ echo "Error: Java version is not set to 8, 11 nor 17, it is set to $JAVA_VERSION"
exit 1
fi
@@ -89,7 +91,11 @@ else
CASSANDRA_REVISION="${dt}git${ref}"
fi
-if [ $JAVA_VERSION = "11" ]; then
+if [ $JAVA_VERSION = "17" ]; then
+ sudo alternatives --set java $(alternatives --display java | grep 'family java-17-openjdk' | cut -d' ' -f1)
+ sudo alternatives --set javac $(alternatives --display javac | grep 'family java-17-openjdk' | cut -d' ' -f1)
+ echo "Cassandra will be built with Java 17"
+elif [ $JAVA_VERSION = "11" ]; then
sudo alternatives --set java $(alternatives --display java | grep 'family java-11-openjdk' | cut -d' ' -f1)
sudo alternatives --set javac $(alternatives --display javac | grep 'family java-11-openjdk' | cut -d' ' -f1)
export CASSANDRA_USE_JDK11=true
diff --git a/docker/centos7-image.docker b/docker/centos7-image.docker
index a2dbe9e..6041e6e 100644
--- a/docker/centos7-image.docker
+++ b/docker/centos7-image.docker
@@ -47,7 +47,8 @@ RUN until curl -f -S -s --retry 9 --retry-delay 1 https://download.java.net/java
RUN tar xvf openjdk-17.0.2_linux-x64_bin.tar.gz
RUN mv jdk-17.0.2 /opt/jdk-17
-
+RUN alternatives --install /usr/bin/java java /opt/jdk-17/bin/java 2 --family java-17-openjdk
+RUN alternatives --install /usr/bin/javac javac /opt/jdk-17/bin/javac 2 --family java-17-openjdk
RUN pip3 install --upgrade pip
diff --git a/jenkins-dsl/cassandra_job_dsl_seed.groovy b/jenkins-dsl/cassandra_job_dsl_seed.groovy
index 079f438..a0b5b72 100644
--- a/jenkins-dsl/cassandra_job_dsl_seed.groovy
+++ b/jenkins-dsl/cassandra_job_dsl_seed.groovy
@@ -17,11 +17,6 @@ def jobDescription = '''
<p>A basic mirror of all build summary pages (classic and blue ocean ui) is found here <a href="https://nightlies.apache.org/cassandra/ci-cassandra.apache.org/">here</a></p>
'''
-def jdkLabel = 'jdk_1.8_latest'
-if(binding.hasVariable("CASSANDRA_JDK_LABEL")) {
- jdkLabel = "${CASSANDRA_JDK_LABEL}"
-}
-
// architectures. blank is amd64
def archs = ['', '-arm64']
arm64_enabled = true
@@ -84,10 +79,52 @@ def testSplits = 8
def dtestSplits = 64
def dtestLargeSplits = 8
+def exists(branchName, targetName) {
+ switch (targetName) {
+ case 'artifact':
+ // migrated to in-pipeline stages
+ return true; // TODO CASSANDRA-18133 // return !(branchName = 'trunk' || branchName ==~ /cassandra-5.\d+/)
+ case 'test-cdc':
+ case 'stress-test':
+ // did not exist before 3.11
+ return !(branchName == 'cassandra-2.2' || branchName == 'cassandra-3.0')
+ case 'fqltool-test':
+ // did not exist before 4.0
+ return !(branchName ==~ /cassandra-[2-3].\d+/)
+ case 'cqlsh-tests':
+ // did not exist before 3.0
+ return branchName != 'cassandra-2.2'
+ case 'dtest-offheap':
+ // offheap was removed from 3.0 to 3.11
+ return branchName != 'cassandra-3.0'
+ }
+ return true
+}
+
def isSplittableTest(targetName) {
return targetName == 'test' || targetName == 'test-cdc' || targetName == 'test-compression' || targetName == 'test-burn' || targetName == 'long-test' || targetName == 'jvm-dtest' || targetName == 'jvm-dtest-upgrade';
}
+def jdks(branchName, targetName) {
+ if (branchName == 'trunk' || branchName ==~ /cassandra-5.\d+/) {
+ if (targetName == 'test' || targetName == 'jvm-dtest') {
+ // todo – remove when jdk17 failures in unit and jvm-dtest are fixed
+ return ['jdk_1.8_latest','jdk_11_latest']
+ } else if (!targetName.endsWith('dtest-upgrade')) {
+ //return ['jdk_11_latest', 'jdk_17_latest'] // CASSANDRA-18255
+ return ['jdk_1.8_latest','jdk_11_latest', 'jdk_17_latest']
+ } else {
+ // upgrade tests need an overlapping jdk
+ return ['jdk_11_latest']
+ }
+ } else if ((branchName ==~ /cassandra-[4].\d+/) && !targetName.endsWith('dtest-upgrade')) {
+ return ['jdk_1.8_latest','jdk_11_latest']
+ } else {
+ // upgrade tests need an overlapping jdk
+ return ['jdk_1.8_latest']
+ }
+}
+
////////////////////////////////////////////////////////////
//
// Job Templates
@@ -144,7 +181,7 @@ matrixJob('Cassandra-template-artifacts') {
steps {
buildDescription('', buildDescStr)
shell("""
- git clean -xdff ;
+ git clean -xdff || echo "failed to clean… continuing…";
git clone --depth 1 --single-branch -b ${buildsBranch} ${buildsRepo} ;
echo "cassandra-builds at: `git -C cassandra-builds log -1 --pretty=format:'%H %an %ad %s'`" ;
""")
@@ -221,7 +258,7 @@ matrixJob('Cassandra-template-test') {
steps {
buildDescription('', buildDescStr)
shell("""
- git clean -xdff -e build/test/jmh-result.json ;
+ git clean -xdff -e build/test/jmh-result.json || echo "failed to clean… continuing…";
git clone --depth 1 --single-branch -b ${buildsBranch} ${buildsRepo} ;
echo "cassandra-builds at: `git -C cassandra-builds log -1 --pretty=format:'%H %an %ad %s'`" ;
echo "\${BUILD_TAG}) cassandra: `git log -1 --pretty=format:'%H %an %ad %s'`" > \${BUILD_TAG}.head
@@ -283,7 +320,7 @@ matrixJob('Cassandra-template-dtest-matrix') {
steps {
buildDescription('', buildDescStr)
shell("""
- git clean -xdff ;
+ git clean -xdff || echo "failed to clean… continuing…";
git clone --depth 1 --single-branch -b ${buildsBranch} ${buildsRepo} ;
echo "cassandra-builds at: `git -C cassandra-builds log -1 --pretty=format:'%H %an %ad %s'`" ;
echo "\${BUILD_TAG}) cassandra: `git log -1 --pretty=format:'%H %an %ad %s'`" > \${BUILD_TAG}.head ;
@@ -310,17 +347,6 @@ matrixJob('Cassandra-template-cqlsh-tests') {
}
timestamps()
}
- axes {
- text('cython', 'yes', 'no')
- jdk(jdkLabel)
- if (use_arm64_test_label()) {
- label('label', slaveLabel, slaveArm64Label)
- } else {
- label('label', slaveLabel)
- }
- }
- // this should prevent long path expansion from the axis definitions
- childCustomWorkspace('.')
properties {
githubProjectUrl(githubRepo)
priorityJobProperty {
@@ -349,7 +375,7 @@ matrixJob('Cassandra-template-cqlsh-tests') {
steps {
buildDescription('', buildDescStr)
shell("""
- git clean -xdff ;
+ git clean -xdff || echo "failed to clean… continuing…";
git clone --depth 1 --single-branch -b ${buildsBranch} ${buildsRepo} ;
echo "cassandra-builds at: `git -C cassandra-builds log -1 --pretty=format:'%H %an %ad %s'`" ;
echo "\${BUILD_TAG}) cassandra: `git log -1 --pretty=format:'%H %an %ad %s'`" > \${BUILD_TAG}.head
@@ -370,72 +396,70 @@ cassandraBranches.each {
def branchName = it
def jobNamePrefix = "Cassandra-${branchName}".replaceAll('cassandra-', '')
- /**
- * Main branch artifacts and eclipse-warnings job
- */
- matrixJob("${jobNamePrefix}-artifacts") {
- disabled(false)
- using('Cassandra-template-artifacts')
- axes {
- if (!(branchName ==~ /cassandra-[2-3].\d+/)) {
- jdk('jdk_1.8_latest','jdk_11_latest')
- } else {
- jdk('jdk_1.8_latest')
+ if (exists(branchName, 'artifacts')) {
+ /**
+ * Main branch artifacts and eclipse-warnings job
+ */
+ matrixJob("${jobNamePrefix}-artifacts") {
+ disabled(false)
+ using('Cassandra-template-artifacts')
+ axes {
+ jdk(jdks(branchName, 'artifacts'))
+ if (arm64_enabled) {
+ label('label', slaveLabel, slaveArm64Label)
+ } else {
+ label('label', slaveLabel)
+ }
}
- if (arm64_enabled) {
- label('label', slaveLabel, slaveArm64Label)
- } else {
- label('label', slaveLabel)
+ configure { node ->
+ node / scm / branches / 'hudson.plugins.git.BranchSpec' / name(branchName)
}
- }
- configure { node ->
- node / scm / branches / 'hudson.plugins.git.BranchSpec' / name(branchName)
- }
- steps {
- shell("""
- ./cassandra-builds/build-scripts/cassandra-artifacts.sh ;
- wget --retry-connrefused --waitretry=1 "\${BUILD_URL}/timestamps/?time=HH:mm:ss&timeZone=UTC&appendLog" -qO - > console.log || echo wget failed ;
- xz console.log
- """)
- }
- publishers {
- publishOverSsh {
- server('Nightlies') {
- transferSet {
- sourceFiles("console.log.xz, build/apache-cassandra-*.tar.gz, build/apache-cassandra-*.jar, build/apache-cassandra-*.pom, build/cassandra*.deb, build/cassandra*.rpm")
- remoteDirectory("cassandra/${branchName}/${jobNamePrefix}-artifacts/\${BUILD_NUMBER}/\${JOB_NAME}/")
+ steps {
+ shell("""
+ ./cassandra-builds/build-scripts/cassandra-artifacts.sh ;
+ wget --retry-connrefused --waitretry=1 "\${BUILD_URL}/timestamps/?time=HH:mm:ss&timeZone=UTC&appendLog" -qO - > console.log || echo wget failed ;
+ xz -f console.log
+ """)
+ }
+ publishers {
+ publishOverSsh {
+ server('Nightlies') {
+ transferSet {
+ sourceFiles("console.log.xz, build/apache-cassandra-*.tar.gz, build/apache-cassandra-*.jar, build/apache-cassandra-*.pom, build/cassandra*.deb, build/cassandra*.rpm")
+ remoteDirectory("cassandra/${branchName}/${jobNamePrefix}-artifacts/\${BUILD_NUMBER}/\${JOB_NAME}/")
+ }
+ retry(9, 5000)
}
- retry(9, 5000)
+ failOnError(false)
}
- failOnError(false)
- }
- matrixPostBuildScript {
- buildSteps {
- markBuildUnstable(false)
- postBuildStep {
- executeOn('BOTH')
- stopOnFailure(false)
- results(['SUCCESS','UNSTABLE','FAILURE','NOT_BUILT','ABORTED'])
- buildSteps {
- shell {
- // docker needs to (soon or later) prune its volumes too, but that can only be done when the agent is idle
- // if the agent is busy, just prune everything that is older than maxJobHours
- command("""
- echo "Cleaning project…"; git clean -xdff ;
- echo "Cleaning processes…" ;
- if ! pgrep -af "cassandra-builds/build-scripts" ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
- echo "Pruning docker…" ;
- if pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
- echo "Reporting disk usage…"; df -h ;
- echo "Cleaning tmp…";
- find . -type d -name tmp -delete 2>/dev/null ;
- find /tmp -type f -atime +2 -user jenkins -and -not -exec fuser -s {} ';' -and -delete 2>/dev/null || echo clean tmp failed ;
- echo "For test report and logs see https://nightlies.apache.org/cassandra/${branchName}/${jobNamePrefix}-artifacts/\${BUILD_NUMBER}/\${JOB_NAME}/"
- """)
- }
+ matrixPostBuildScript {
+ buildSteps {
+ markBuildUnstable(false)
+ postBuildStep {
+ executeOn('BOTH')
+ stopOnFailure(false)
+ results(['SUCCESS','UNSTABLE','FAILURE','NOT_BUILT','ABORTED'])
+ buildSteps {
+ shell {
+ // docker needs to (soon or later) prune its volumes too, but that can only be done when the agent is idle
+ // if the agent is busy, just prune everything that is older than maxJobHours
+ command("""
+ echo "Cleaning project…"; git clean -xdff || echo "failed to clean… continuing…";
+ echo "Cleaning processes…" ;
+ if ! ( pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ) ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
+ echo "Pruning docker…" ;
+ if pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
+ echo "Reporting disk usage…"; df -h ;
+ echo "Cleaning tmp…";
+ find . -type d -name tmp -delete 2>/dev/null ;
+ find /tmp -type f -atime +2 -user jenkins -and -not -exec fuser -s {} ';' -and -delete 2>/dev/null || echo clean tmp failed ;
+ echo "For test report and logs see https://nightlies.apache.org/cassandra/${branchName}/${jobNamePrefix}-artifacts/\${BUILD_NUMBER}/\${JOB_NAME}/"
+ """)
+ }
+ }
}
+ }
}
- }
}
}
}
@@ -446,15 +470,7 @@ cassandraBranches.each {
testTargets.each {
def targetName = it
- // Skip tests that don't exist before cassandra-3.11
- if ((targetName == 'test-cdc' || targetName == 'stress-test') && ((branchName == 'cassandra-2.2') || (branchName == 'cassandra-3.0'))) {
- println("Skipping ${targetName} on branch ${branchName}")
-
- // Skip tests that don't exist before cassandra-4.0
- } else if (targetName == 'fqltool-test' && branchName ==~ /cassandra-[2-3].\d+/) {
- println("Skipping ${targetName} on branch ${branchName}")
-
- } else {
+ if (exists(branchName, targetName)) {
matrixJob("${jobNamePrefix}-${targetName}") {
disabled(false)
using('Cassandra-template-test')
@@ -466,12 +482,7 @@ cassandraBranches.each {
text('split', values)
_testSplits = "/${testSplits}"
}
- // jvm-dtest-upgrade would require mixed JDK compilations to support JDK11+
- if ((!(branchName ==~ /cassandra-[2-3].\d+/)) && targetName != 'jvm-dtest-upgrade') {
- jdk(jdkLabel,'jdk_11_latest')
- } else {
- jdk(jdkLabel)
- }
+ jdk(jdks(branchName, targetName))
if (use_arm64_test_label()) {
label('label', slaveLabel, slaveArm64Label)
} else {
@@ -487,7 +498,7 @@ cassandraBranches.each {
./cassandra-builds/build-scripts/cassandra-test-report.sh ;
xz TESTS-TestSuites.xml ;
wget --retry-connrefused --waitretry=1 "\${BUILD_URL}/timestamps/?time=HH:mm:ss&timeZone=UTC&appendLog" -qO - > console.log || echo wget failed ;
- xz console.log
+ xz -f console.log
""")
}
publishers {
@@ -527,11 +538,11 @@ cassandraBranches.each {
// docker needs to (soon or later) prune its volumes too, but that can only be done when the agent is idle
// if the agent is busy, just prune everything that is older than maxJobHours
command("""
- echo "Cleaning project…"; git clean -xdff -e build/test/jmh-result.json ;
+ echo "Cleaning project…"; git clean -xdff -e build/test/jmh-result.json || echo "failed to clean… continuing…" ;
echo "Cleaning processes…" ;
- if ! pgrep -af "cassandra-builds/build-scripts" ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
+ if ! ( pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ) ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
echo "Pruning docker…" ;
- if pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
+ if pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
echo "Reporting disk usage…"; du -xm / 2>/dev/null | sort -rn | head -n 30 ; df -h ;
echo "Cleaning tmp…";
find . -type d -name tmp -delete 2>/dev/null ;
@@ -558,14 +569,12 @@ cassandraBranches.each {
def targetName = it
def targetArchName = targetName + arch
- // Skip dtest-offheap on cassandra-3.0 branch
- if ((targetName == 'dtest-offheap') && (branchName == 'cassandra-3.0')) {
- println("Skipping ${targetArchName} on branch ${branchName}")
- } else {
+ if (exists(branchName, targetName)) {
matrixJob("${jobNamePrefix}-${targetArchName}") {
disabled(false)
using('Cassandra-template-dtest-matrix')
axes {
+ jdk(jdks(branchName, targetName))
List<String> values = new ArrayList<String>()
if (targetName == 'dtest-large' || targetName == 'dtest-large-novnode') {
splits = dtestLargeSplits
@@ -595,7 +604,7 @@ cassandraBranches.each {
shell("""
./cassandra-builds/build-scripts/cassandra-dtest-pytest-docker.sh apache ${branchName} https://github.com/apache/cassandra-dtest.git trunk ${buildsRepo} ${buildsBranch} ${dtestDockerImage} ${targetName} \${split}/${splits} ;
wget --retry-connrefused --waitretry=1 "\${BUILD_URL}/timestamps/?time=HH:mm:ss&timeZone=UTC&appendLog" -qO - > console.log || echo wget failed ;
- xz console.log
+ xz -f console.log
""")
}
publishers {
@@ -631,11 +640,11 @@ cassandraBranches.each {
// docker needs to (soon or later) prune its volumes too, but that can only be done when the agent is idle
// if the agent is busy, just prune everything that is older than maxJobHours
command("""
- echo "Cleaning project…"; git clean -xdff ;
+ echo "Cleaning project…"; git clean -xdff || echo "failed to clean… continuing…";
echo "Cleaning processes…" ;
- if ! pgrep -af "cassandra-builds/build-scripts" ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
+ if ! ( pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ) ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
echo "Pruning docker…" ;
- if pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
+ if pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
echo "Reporting disk usage…"; df -h ;
echo "Cleaning tmp…";
find . -type d -name tmp -delete 2>/dev/null ;
@@ -657,15 +666,22 @@ cassandraBranches.each {
/**
* Main branch cqlsh jobs
*/
- if (branchName == 'cassandra-2.2') {
- println("Skipping ${jobNamePrefix}-cqlsh-tests, not supported on branch ${branchName}")
- } else {
+ if (exists(branchName, 'cqlsh-tests')) {
matrixJob("${jobNamePrefix}-cqlsh-tests") {
disabled(false)
using('Cassandra-template-cqlsh-tests')
configure { node ->
node / scm / branches / 'hudson.plugins.git.BranchSpec' / name(branchName)
}
+ axes {
+ text('cython', 'yes', 'no')
+ jdk(jdks(branchName, 'cqlsh-tests'))
+ if (use_arm64_test_label()) {
+ label('label', slaveLabel, slaveArm64Label)
+ } else {
+ label('label', slaveLabel)
+ }
+ }
publishers {
publishOverSsh {
server('Nightlies') {
@@ -691,7 +707,7 @@ cassandraBranches.each {
shell("""
./cassandra-builds/build-scripts/cassandra-test-docker.sh apache ${branchName} ${buildsRepo} ${buildsBranch} ${testDockerImage} cqlsh-test ;
wget --retry-connrefused --waitretry=1 "\${BUILD_URL}/timestamps/?time=HH:mm:ss&timeZone=UTC&appendLog" -qO - > console.log || echo wget failed ;
- xz console.log
+ xz -f console.log
""")
}
matrixPostBuildScript {
@@ -706,11 +722,11 @@ cassandraBranches.each {
// docker needs to (soon or later) prune its volumes too, but that can only be done when the agent is idle
// if the agent is busy, just prune everything that is older than maxJobHours
command("""
- echo "Cleaning project…"; git clean -xdff ;
+ echo "Cleaning project…"; git clean -xdff || echo "failed to clean… continuing…";
echo "Cleaning processes…" ;
- if ! pgrep -af "cassandra-builds/build-scripts" ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
+ if ! (pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts") ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
echo "Pruning docker…" ;
- if pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
+ if pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
echo "Reporting disk usage…"; df -h ;
echo "Cleaning tmp…";
find . -type d -name tmp -delete 2>/dev/null ;
@@ -791,7 +807,7 @@ matrixJob('Cassandra-devbranch-artifacts') {
description(jobDescription)
concurrentBuild()
axes {
- jdk(jdkLabel,'jdk_11_latest')
+ jdk(jdk(jdks('cassandra-4.1', 'artifacts'))) // hack to make devbranch test both jdk8 and jdk11
if (arm64_enabled) {
label('label', slaveLabel, slaveArm64Label)
} else {
@@ -875,9 +891,9 @@ matrixJob('Cassandra-devbranch-artifacts') {
command("""
echo "Cleaning project…"; git clean -xdff ;
echo "Cleaning processes…" ;
- if ! pgrep -af "cassandra-builds/build-scripts" ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
+ if ! (pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts") ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
echo "Pruning docker…" ;
- if pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
+ if pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
echo "Reporting disk usage…"; df -h ;
echo "Cleaning tmp…";
find . -type d -name tmp -delete 2>/dev/null ;
@@ -909,7 +925,7 @@ testTargets.each {
text('split', values)
_testSplits = "/${testSplits}"
}
- jdk(jdkLabel,'jdk_11_latest')
+ jdk(jdk(jdks('cassandra-4.1', targetName))) // hack to make devbranch test both jdk8 and jdk11
if (use_arm64_test_label()) {
label('label', slaveLabel, slaveArm64Label)
} else {
@@ -1006,9 +1022,9 @@ testTargets.each {
command("""
echo "Cleaning project…"; git clean -xdff ${targetName == 'microbench' ? '-e build/test/jmh-result.json' : ''};
echo "Cleaning processes…" ;
- if ! pgrep -af "cassandra-builds/build-scripts" ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
+ if ! (pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts") ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
echo "Pruning docker…" ;
- if pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
+ if pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
echo "Reporting disk usage…"; du -xm / 2>/dev/null | sort -rn | head -n 30 ; df -h ;
echo "Cleaning tmp…";
find . -type d -name tmp -delete 2>/dev/null ;
@@ -1060,6 +1076,7 @@ archs.each {
stringParam('DOCKER_IMAGE', "${dtestDockerImage}", 'Docker image for running dtests')
}
axes {
+ jdk(jdk(jdks('cassandra-4.1', targetName))) // hack to make devbranch test both jdk8 and jdk11
List<String> values = new ArrayList<String>()
if (targetName == 'dtest-large' || targetName == 'dtest-large-novnode') {
splits = dtestLargeSplits
@@ -1152,9 +1169,9 @@ archs.each {
command("""
echo "Cleaning project…" ; git clean -xdff ;
echo "Cleaning processes…" ;
- if ! pgrep -af "cassandra-builds/build-scripts" ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
+ if ! (pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts") ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
echo "Pruning docker…" ;
- if pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
+ if pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
echo "Reporting disk usage…"; df -h ;
echo "Cleaning tmp…";
find . -type d -name tmp -delete 2>/dev/null ;
@@ -1198,7 +1215,7 @@ matrixJob('Cassandra-devbranch-cqlsh-tests') {
}
axes {
text('cython', 'yes', 'no')
- jdk(jdkLabel)
+ jdk(jdk(jdks('cassandra-4.1', 'cqlsh-tests'))) // hack to make devbranch test both jdk8 and jdk11
if (use_arm64_test_label()) {
label('label', slaveLabel, slaveArm64Label)
} else {
@@ -1275,9 +1292,9 @@ matrixJob('Cassandra-devbranch-cqlsh-tests') {
command("""
echo "Cleaning project…"; git clean -xdff ;
echo "Cleaning processes…" ;
- if ! pgrep -af "cassandra-builds/build-scripts" ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
+ if ! ( pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ) ; then pkill -9 -f org.apache.cassandra. || echo "already clean" ; fi ;
echo "Pruning docker…" ;
- if pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
+ if pgrep -xa docker || pgrep -af "cassandra-builds/build-scripts" ; then docker system prune --all --force --filter "until=${maxJobHours}h" || true ; else docker system prune --all --force --volumes || true ; fi;
echo "Reporting disk usage…"; df -h ;
echo "Cleaning tmp…";
find . -type d -name tmp -delete 2>/dev/null ;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org