mirror of https://github.com/apache/cassandra
2630 lines
126 KiB
YAML
2630 lines
126 KiB
YAML
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
version: 2
|
|
jobs:
|
|
j8_jvm_upgrade_dtests:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 1
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Determine distributed Tests to Run
|
|
command: |
|
|
# reminder: this code (along with all the steps) is independently executed on every circle container
|
|
# so the goal here is to get the circleci script to return the tests *this* container will run
|
|
# which we do via the `circleci` cli tool.
|
|
|
|
rm -fr ~/cassandra-dtest/upgrade_tests
|
|
echo "***java tests***"
|
|
|
|
# get all of our unit test filenames
|
|
set -eo pipefail && circleci tests glob "$HOME/cassandra/test/distributed/**/*.java" > /tmp/all_java_unit_tests.txt
|
|
|
|
# split up the unit tests into groups based on the number of containers we have
|
|
set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
|
|
set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/distributed/;;g" | grep "Test\.java$" | grep upgrade > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
|
|
cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
no_output_timeout: 15m
|
|
- run:
|
|
name: Log Environment Information
|
|
command: |
|
|
echo '*** id ***'
|
|
id
|
|
echo '*** cat /proc/cpuinfo ***'
|
|
cat /proc/cpuinfo
|
|
echo '*** free -m ***'
|
|
free -m
|
|
echo '*** df -m ***'
|
|
df -m
|
|
echo '*** ifconfig -a ***'
|
|
ifconfig -a
|
|
echo '*** uname -a ***'
|
|
uname -a
|
|
echo '*** mount ***'
|
|
mount
|
|
echo '*** env ***'
|
|
env
|
|
echo '*** java ***'
|
|
which java
|
|
java -version
|
|
- run:
|
|
name: Run Unit Tests (testclasslist)
|
|
command: |
|
|
set -x
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra
|
|
if [ -d ~/dtest_jars ]; then
|
|
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
|
fi
|
|
test_timeout=$(grep 'name="test.distributed.timeout"' build.xml | awk -F'"' '{print $4}' || true)
|
|
if [ -z "$test_timeout" ]; then
|
|
test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
|
|
fi
|
|
ant testclasslist -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=distributed
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/build/test/output/
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/output
|
|
destination: junitxml
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/logs
|
|
destination: logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j8_cqlsh-dtests-py2-with-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j8_with_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j8_with_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j8_with_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j8_with_vnodes_raw /tmp/all_dtest_tests_j8_with_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j8_with_vnodes_raw > /tmp/all_dtest_tests_j8_with_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j8_with_vnodes > /tmp/split_dtest_tests_j8_with_vnodes.txt\ncat /tmp/split_dtest_tests_j8_with_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j8_with_vnodes_final.txt\ncat /tmp/split_dtest_tests_j8_with_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j8_with_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j8_with_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j8_with_vnodes_final.txt
|
|
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python2.7' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python2.7
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_with_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j8_with_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j8_with_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j11_unit_tests:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Determine unit Tests to Run
|
|
command: |
|
|
# reminder: this code (along with all the steps) is independently executed on every circle container
|
|
# so the goal here is to get the circleci script to return the tests *this* container will run
|
|
# which we do via the `circleci` cli tool.
|
|
|
|
rm -fr ~/cassandra-dtest/upgrade_tests
|
|
echo "***java tests***"
|
|
|
|
# get all of our unit test filenames
|
|
set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
|
|
|
|
# split up the unit tests into groups based on the number of containers we have
|
|
set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
|
|
set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$" > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
|
|
cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
no_output_timeout: 15m
|
|
- run:
|
|
name: Log Environment Information
|
|
command: |
|
|
echo '*** id ***'
|
|
id
|
|
echo '*** cat /proc/cpuinfo ***'
|
|
cat /proc/cpuinfo
|
|
echo '*** free -m ***'
|
|
free -m
|
|
echo '*** df -m ***'
|
|
df -m
|
|
echo '*** ifconfig -a ***'
|
|
ifconfig -a
|
|
echo '*** uname -a ***'
|
|
uname -a
|
|
echo '*** mount ***'
|
|
mount
|
|
echo '*** env ***'
|
|
env
|
|
echo '*** java ***'
|
|
which java
|
|
java -version
|
|
- run:
|
|
name: Run Unit Tests (testclasslist)
|
|
command: |
|
|
set -x
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra
|
|
if [ -d ~/dtest_jars ]; then
|
|
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
|
fi
|
|
test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
|
|
if [ -z "$test_timeout" ]; then
|
|
test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
|
|
fi
|
|
ant testclasslist -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/build/test/output/
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/output
|
|
destination: junitxml
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/logs
|
|
destination: logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
j8_cqlsh-dtests-py38-no-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.8/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j8_without_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.8/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j8_without_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j8_without_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j8_without_vnodes_raw /tmp/all_dtest_tests_j8_without_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j8_without_vnodes_raw > /tmp/all_dtest_tests_j8_without_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j8_without_vnodes > /tmp/split_dtest_tests_j8_without_vnodes.txt\ncat /tmp/split_dtest_tests_j8_without_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j8_without_vnodes_final.txt\ncat /tmp/split_dtest_tests_j8_without_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j8_without_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j8_without_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j8_without_vnodes_final.txt
|
|
|
|
source ~/env3.8/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python3.8' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python3.8
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_without_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_without_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j8_without_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j8_without_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j11_cqlsh-dtests-py3-with-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j11_with_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j11_with_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j11_with_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j11_with_vnodes_raw /tmp/all_dtest_tests_j11_with_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j11_with_vnodes_raw > /tmp/all_dtest_tests_j11_with_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j11_with_vnodes > /tmp/split_dtest_tests_j11_with_vnodes.txt\ncat /tmp/split_dtest_tests_j11_with_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j11_with_vnodes_final.txt\ncat /tmp/split_dtest_tests_j11_with_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j11_with_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j11_with_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j11_with_vnodes_final.txt
|
|
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python3.6' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python3.6
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j11_with_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j11_with_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j11_with_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
j11_cqlsh-dtests-py3-no-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j11_without_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j11_without_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j11_without_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j11_without_vnodes_raw /tmp/all_dtest_tests_j11_without_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j11_without_vnodes_raw > /tmp/all_dtest_tests_j11_without_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j11_without_vnodes > /tmp/split_dtest_tests_j11_without_vnodes.txt\ncat /tmp/split_dtest_tests_j11_without_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j11_without_vnodes_final.txt\ncat /tmp/split_dtest_tests_j11_without_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j11_without_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j11_without_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j11_without_vnodes_final.txt
|
|
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python3.6' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python3.6
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j11_without_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j11_without_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j11_without_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j11_without_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
j11_cqlsh-dtests-py38-with-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.8/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j11_with_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.8/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j11_with_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j11_with_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j11_with_vnodes_raw /tmp/all_dtest_tests_j11_with_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j11_with_vnodes_raw > /tmp/all_dtest_tests_j11_with_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j11_with_vnodes > /tmp/split_dtest_tests_j11_with_vnodes.txt\ncat /tmp/split_dtest_tests_j11_with_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j11_with_vnodes_final.txt\ncat /tmp/split_dtest_tests_j11_with_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j11_with_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j11_with_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j11_with_vnodes_final.txt
|
|
|
|
source ~/env3.8/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python3.8' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python3.8
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j11_with_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j11_with_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j11_with_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
j8_cqlsh-dtests-py3-with-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j8_with_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j8_with_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j8_with_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j8_with_vnodes_raw /tmp/all_dtest_tests_j8_with_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j8_with_vnodes_raw > /tmp/all_dtest_tests_j8_with_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j8_with_vnodes > /tmp/split_dtest_tests_j8_with_vnodes.txt\ncat /tmp/split_dtest_tests_j8_with_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j8_with_vnodes_final.txt\ncat /tmp/split_dtest_tests_j8_with_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j8_with_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j8_with_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j8_with_vnodes_final.txt
|
|
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python3.6' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python3.6
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_with_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j8_with_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j8_with_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j8_cqlsh-dtests-py2-no-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j8_without_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j8_without_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j8_without_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j8_without_vnodes_raw /tmp/all_dtest_tests_j8_without_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j8_without_vnodes_raw > /tmp/all_dtest_tests_j8_without_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j8_without_vnodes > /tmp/split_dtest_tests_j8_without_vnodes.txt\ncat /tmp/split_dtest_tests_j8_without_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j8_without_vnodes_final.txt\ncat /tmp/split_dtest_tests_j8_without_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j8_without_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j8_without_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j8_without_vnodes_final.txt
|
|
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python2.7' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python2.7
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_without_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_without_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j8_without_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j8_without_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j11_cqlsh-dtests-py2-with-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j11_with_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j11_with_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j11_with_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j11_with_vnodes_raw /tmp/all_dtest_tests_j11_with_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j11_with_vnodes_raw > /tmp/all_dtest_tests_j11_with_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j11_with_vnodes > /tmp/split_dtest_tests_j11_with_vnodes.txt\ncat /tmp/split_dtest_tests_j11_with_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j11_with_vnodes_final.txt\ncat /tmp/split_dtest_tests_j11_with_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j11_with_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j11_with_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j11_with_vnodes_final.txt
|
|
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python2.7' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python2.7
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j11_with_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j11_with_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j11_with_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
j11_dtests-with-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Log Environment Information
|
|
command: |
|
|
echo '*** id ***'
|
|
id
|
|
echo '*** cat /proc/cpuinfo ***'
|
|
cat /proc/cpuinfo
|
|
echo '*** free -m ***'
|
|
free -m
|
|
echo '*** df -m ***'
|
|
df -m
|
|
echo '*** ifconfig -a ***'
|
|
ifconfig -a
|
|
echo '*** uname -a ***'
|
|
uname -a
|
|
echo '*** mount ***'
|
|
mount
|
|
echo '*** env ***'
|
|
env
|
|
echo '*** java ***'
|
|
which java
|
|
java -version
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j11_with_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j11_with_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --skip-resource-intensive-tests --pytest-options '-k not cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j11_with_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j11_with_vnodes_raw /tmp/all_dtest_tests_j11_with_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j11_with_vnodes_raw > /tmp/all_dtest_tests_j11_with_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j11_with_vnodes > /tmp/split_dtest_tests_j11_with_vnodes.txt\ncat /tmp/split_dtest_tests_j11_with_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j11_with_vnodes_final.txt\ncat /tmp/split_dtest_tests_j11_with_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j11_with_vnodes)
|
|
no_output_timeout: 15m
|
|
command: "echo \"cat /tmp/split_dtest_tests_j11_with_vnodes_final.txt\"\ncat /tmp/split_dtest_tests_j11_with_vnodes_final.txt\n\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho \"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need the \"set -o pipefail\" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee\nexport SPLIT_TESTS=`cat /tmp/split_dtest_tests_j11_with_vnodes_final.txt`\nset -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt\n"
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j11_with_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j11_with_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
j8_dtests-no-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j8_without_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j8_without_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --skip-resource-intensive-tests --pytest-options '-k not cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j8_without_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j8_without_vnodes_raw /tmp/all_dtest_tests_j8_without_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j8_without_vnodes_raw > /tmp/all_dtest_tests_j8_without_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j8_without_vnodes > /tmp/split_dtest_tests_j8_without_vnodes.txt\ncat /tmp/split_dtest_tests_j8_without_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j8_without_vnodes_final.txt\ncat /tmp/split_dtest_tests_j8_without_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j8_without_vnodes)
|
|
no_output_timeout: 15m
|
|
command: "echo \"cat /tmp/split_dtest_tests_j8_without_vnodes_final.txt\"\ncat /tmp/split_dtest_tests_j8_without_vnodes_final.txt\n\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho \"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need the \"set -o pipefail\" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee\nexport SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_without_vnodes_final.txt`\nset -o pipefail && cd ~/cassandra-dtest && pytest --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_without_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt\n"
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j8_without_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j8_without_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j8_upgradetests-no-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j8_upgradetests_without_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j8_upgradetests_without_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --execute-upgrade-tests-only --upgrade-target-version-only --upgrade-version-selection all --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j8_upgradetests_without_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j8_upgradetests_without_vnodes_raw /tmp/all_dtest_tests_j8_upgradetests_without_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j8_upgradetests_without_vnodes_raw > /tmp/all_dtest_tests_j8_upgradetests_without_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j8_upgradetests_without_vnodes > /tmp/split_dtest_tests_j8_upgradetests_without_vnodes.txt\ncat /tmp/split_dtest_tests_j8_upgradetests_without_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j8_upgradetests_without_vnodes_final.txt\ncat /tmp/split_dtest_tests_j8_upgradetests_without_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j8_upgradetests_without_vnodes)
|
|
no_output_timeout: 15m
|
|
command: "echo \"cat /tmp/split_dtest_tests_j8_upgradetests_without_vnodes_final.txt\"\ncat /tmp/split_dtest_tests_j8_upgradetests_without_vnodes_final.txt\n\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho \"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need the \"set -o pipefail\" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee\nexport SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_upgradetests_without_vnodes_final.txt`\nset -o pipefail && cd ~/cassandra-dtest && pytest --execute-upgrade-tests-only --upgrade-target-version-only --upgrade-version-selection all --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_upgradetests_without_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt\n"
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j8_upgradetests_without_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j8_upgradetests_without_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
utests_stress:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 1
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Run Unit Tests (stress-test)
|
|
command: |
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra
|
|
if [ -d ~/dtest_jars ]; then
|
|
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
|
fi
|
|
ant stress-test
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/build/test/output/
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/output
|
|
destination: junitxml
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/logs
|
|
destination: logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j8_unit_tests:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Determine unit Tests to Run
|
|
command: |
|
|
# reminder: this code (along with all the steps) is independently executed on every circle container
|
|
# so the goal here is to get the circleci script to return the tests *this* container will run
|
|
# which we do via the `circleci` cli tool.
|
|
|
|
rm -fr ~/cassandra-dtest/upgrade_tests
|
|
echo "***java tests***"
|
|
|
|
# get all of our unit test filenames
|
|
set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
|
|
|
|
# split up the unit tests into groups based on the number of containers we have
|
|
set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
|
|
set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$" > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
|
|
cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
no_output_timeout: 15m
|
|
- run:
|
|
name: Log Environment Information
|
|
command: |
|
|
echo '*** id ***'
|
|
id
|
|
echo '*** cat /proc/cpuinfo ***'
|
|
cat /proc/cpuinfo
|
|
echo '*** free -m ***'
|
|
free -m
|
|
echo '*** df -m ***'
|
|
df -m
|
|
echo '*** ifconfig -a ***'
|
|
ifconfig -a
|
|
echo '*** uname -a ***'
|
|
uname -a
|
|
echo '*** mount ***'
|
|
mount
|
|
echo '*** env ***'
|
|
env
|
|
echo '*** java ***'
|
|
which java
|
|
java -version
|
|
- run:
|
|
name: Run Unit Tests (testclasslist)
|
|
command: |
|
|
set -x
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra
|
|
if [ -d ~/dtest_jars ]; then
|
|
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
|
fi
|
|
test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
|
|
if [ -z "$test_timeout" ]; then
|
|
test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
|
|
fi
|
|
ant testclasslist -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/build/test/output/
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/output
|
|
destination: junitxml
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/logs
|
|
destination: logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j11_jvm_dtests:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 1
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Determine distributed Tests to Run
|
|
command: |
|
|
# reminder: this code (along with all the steps) is independently executed on every circle container
|
|
# so the goal here is to get the circleci script to return the tests *this* container will run
|
|
# which we do via the `circleci` cli tool.
|
|
|
|
rm -fr ~/cassandra-dtest/upgrade_tests
|
|
echo "***java tests***"
|
|
|
|
# get all of our unit test filenames
|
|
set -eo pipefail && circleci tests glob "$HOME/cassandra/test/distributed/**/*.java" > /tmp/all_java_unit_tests.txt
|
|
|
|
# split up the unit tests into groups based on the number of containers we have
|
|
set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
|
|
set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/distributed/;;g" | grep "Test\.java$" | grep -v upgrade > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
|
|
cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
no_output_timeout: 15m
|
|
- run:
|
|
name: Log Environment Information
|
|
command: |
|
|
echo '*** id ***'
|
|
id
|
|
echo '*** cat /proc/cpuinfo ***'
|
|
cat /proc/cpuinfo
|
|
echo '*** free -m ***'
|
|
free -m
|
|
echo '*** df -m ***'
|
|
df -m
|
|
echo '*** ifconfig -a ***'
|
|
ifconfig -a
|
|
echo '*** uname -a ***'
|
|
uname -a
|
|
echo '*** mount ***'
|
|
mount
|
|
echo '*** env ***'
|
|
env
|
|
echo '*** java ***'
|
|
which java
|
|
java -version
|
|
- run:
|
|
name: Run Unit Tests (testclasslist)
|
|
command: |
|
|
set -x
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra
|
|
if [ -d ~/dtest_jars ]; then
|
|
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
|
fi
|
|
test_timeout=$(grep 'name="test.distributed.timeout"' build.xml | awk -F'"' '{print $4}' || true)
|
|
if [ -z "$test_timeout" ]; then
|
|
test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
|
|
fi
|
|
ant testclasslist -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=distributed
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/build/test/output/
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/output
|
|
destination: junitxml
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/logs
|
|
destination: logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
j11_build:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 1
|
|
steps:
|
|
- run:
|
|
name: Log Environment Information
|
|
command: |
|
|
echo '*** id ***'
|
|
id
|
|
echo '*** cat /proc/cpuinfo ***'
|
|
cat /proc/cpuinfo
|
|
echo '*** free -m ***'
|
|
free -m
|
|
echo '*** df -m ***'
|
|
df -m
|
|
echo '*** ifconfig -a ***'
|
|
ifconfig -a
|
|
echo '*** uname -a ***'
|
|
uname -a
|
|
echo '*** mount ***'
|
|
mount
|
|
echo '*** env ***'
|
|
env
|
|
echo '*** java ***'
|
|
which java
|
|
java -version
|
|
- run:
|
|
name: Clone Cassandra Repository (via git)
|
|
command: |
|
|
git clone --single-branch --depth 1 --branch $CIRCLE_BRANCH git://github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME.git ~/cassandra
|
|
- run:
|
|
name: Build Cassandra
|
|
command: |
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
cd ~/cassandra
|
|
# Loop to prevent failure due to maven-ant-tasks not downloading a jar..
|
|
for x in $(seq 1 3); do
|
|
${ANT_HOME}/bin/ant clean realclean jar
|
|
RETURN="$?"
|
|
if [ "${RETURN}" -eq "0" ]; then
|
|
break
|
|
fi
|
|
done
|
|
# Exit, if we didn't build successfully
|
|
if [ "${RETURN}" -ne "0" ]; then
|
|
echo "Build failed with exit code: ${RETURN}"
|
|
exit ${RETURN}
|
|
fi
|
|
no_output_timeout: 15m
|
|
- run:
|
|
name: Run eclipse-warnings
|
|
command: |
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
cd ~/cassandra
|
|
ant eclipse-warnings
|
|
- persist_to_workspace:
|
|
root: /home/cassandra
|
|
paths:
|
|
- cassandra
|
|
- .m2
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
j11_cqlsh-dtests-py2-no-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j11_without_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j11_without_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j11_without_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j11_without_vnodes_raw /tmp/all_dtest_tests_j11_without_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j11_without_vnodes_raw > /tmp/all_dtest_tests_j11_without_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j11_without_vnodes > /tmp/split_dtest_tests_j11_without_vnodes.txt\ncat /tmp/split_dtest_tests_j11_without_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j11_without_vnodes_final.txt\ncat /tmp/split_dtest_tests_j11_without_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j11_without_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j11_without_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j11_without_vnodes_final.txt
|
|
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python2.7' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python2.7
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j11_without_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j11_without_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j11_without_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j11_without_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
j11_cqlshlib_tests:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 1
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Run cqlshlib Unit Tests
|
|
command: |
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra/pylib
|
|
./cassandra-cqlsh-tests.sh ..
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/pylib
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
j8_dtests-with-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j8_with_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j8_with_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --skip-resource-intensive-tests --pytest-options '-k not cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j8_with_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j8_with_vnodes_raw /tmp/all_dtest_tests_j8_with_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j8_with_vnodes_raw > /tmp/all_dtest_tests_j8_with_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j8_with_vnodes > /tmp/split_dtest_tests_j8_with_vnodes.txt\ncat /tmp/split_dtest_tests_j8_with_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j8_with_vnodes_final.txt\ncat /tmp/split_dtest_tests_j8_with_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j8_with_vnodes)
|
|
no_output_timeout: 15m
|
|
command: "echo \"cat /tmp/split_dtest_tests_j8_with_vnodes_final.txt\"\ncat /tmp/split_dtest_tests_j8_with_vnodes_final.txt\n\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho \"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need the \"set -o pipefail\" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee\nexport SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_with_vnodes_final.txt`\nset -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt\n"
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j8_with_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j8_with_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j11_cqlsh-dtests-py38-no-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.8/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j11_without_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.8/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j11_without_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j11_without_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j11_without_vnodes_raw /tmp/all_dtest_tests_j11_without_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j11_without_vnodes_raw > /tmp/all_dtest_tests_j11_without_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j11_without_vnodes > /tmp/split_dtest_tests_j11_without_vnodes.txt\ncat /tmp/split_dtest_tests_j11_without_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j11_without_vnodes_final.txt\ncat /tmp/split_dtest_tests_j11_without_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j11_without_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j11_without_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j11_without_vnodes_final.txt
|
|
|
|
source ~/env3.8/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python3.8' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python3.8
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j11_without_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j11_without_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j11_without_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j11_without_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
j8_jvm_dtests:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 1
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Determine distributed Tests to Run
|
|
command: |
|
|
# reminder: this code (along with all the steps) is independently executed on every circle container
|
|
# so the goal here is to get the circleci script to return the tests *this* container will run
|
|
# which we do via the `circleci` cli tool.
|
|
|
|
rm -fr ~/cassandra-dtest/upgrade_tests
|
|
echo "***java tests***"
|
|
|
|
# get all of our unit test filenames
|
|
set -eo pipefail && circleci tests glob "$HOME/cassandra/test/distributed/**/*.java" > /tmp/all_java_unit_tests.txt
|
|
|
|
# split up the unit tests into groups based on the number of containers we have
|
|
set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
|
|
set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/distributed/;;g" | grep "Test\.java$" | grep -v upgrade > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
|
|
cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
no_output_timeout: 15m
|
|
- run:
|
|
name: Log Environment Information
|
|
command: |
|
|
echo '*** id ***'
|
|
id
|
|
echo '*** cat /proc/cpuinfo ***'
|
|
cat /proc/cpuinfo
|
|
echo '*** free -m ***'
|
|
free -m
|
|
echo '*** df -m ***'
|
|
df -m
|
|
echo '*** ifconfig -a ***'
|
|
ifconfig -a
|
|
echo '*** uname -a ***'
|
|
uname -a
|
|
echo '*** mount ***'
|
|
mount
|
|
echo '*** env ***'
|
|
env
|
|
echo '*** java ***'
|
|
which java
|
|
java -version
|
|
- run:
|
|
name: Run Unit Tests (testclasslist)
|
|
command: |
|
|
set -x
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra
|
|
if [ -d ~/dtest_jars ]; then
|
|
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
|
fi
|
|
test_timeout=$(grep 'name="test.distributed.timeout"' build.xml | awk -F'"' '{print $4}' || true)
|
|
if [ -z "$test_timeout" ]; then
|
|
test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
|
|
fi
|
|
ant testclasslist -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=distributed
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/build/test/output/
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/output
|
|
destination: junitxml
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/logs
|
|
destination: logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j8_build:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 1
|
|
steps:
|
|
- run:
|
|
name: Log Environment Information
|
|
command: |
|
|
echo '*** id ***'
|
|
id
|
|
echo '*** cat /proc/cpuinfo ***'
|
|
cat /proc/cpuinfo
|
|
echo '*** free -m ***'
|
|
free -m
|
|
echo '*** df -m ***'
|
|
df -m
|
|
echo '*** ifconfig -a ***'
|
|
ifconfig -a
|
|
echo '*** uname -a ***'
|
|
uname -a
|
|
echo '*** mount ***'
|
|
mount
|
|
echo '*** env ***'
|
|
env
|
|
echo '*** java ***'
|
|
which java
|
|
java -version
|
|
- run:
|
|
name: Clone Cassandra Repository (via git)
|
|
command: |
|
|
git clone --single-branch --depth 1 --branch $CIRCLE_BRANCH git://github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME.git ~/cassandra
|
|
- run:
|
|
name: Build Cassandra
|
|
command: |
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
cd ~/cassandra
|
|
# Loop to prevent failure due to maven-ant-tasks not downloading a jar..
|
|
for x in $(seq 1 3); do
|
|
${ANT_HOME}/bin/ant clean realclean jar
|
|
RETURN="$?"
|
|
if [ "${RETURN}" -eq "0" ]; then
|
|
break
|
|
fi
|
|
done
|
|
# Exit, if we didn't build successfully
|
|
if [ "${RETURN}" -ne "0" ]; then
|
|
echo "Build failed with exit code: ${RETURN}"
|
|
exit ${RETURN}
|
|
fi
|
|
no_output_timeout: 15m
|
|
- run:
|
|
name: Run eclipse-warnings
|
|
command: |
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
cd ~/cassandra
|
|
ant eclipse-warnings
|
|
- persist_to_workspace:
|
|
root: /home/cassandra
|
|
paths:
|
|
- cassandra
|
|
- .m2
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j8_cqlsh-dtests-py3-no-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j8_without_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j8_without_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j8_without_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j8_without_vnodes_raw /tmp/all_dtest_tests_j8_without_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j8_without_vnodes_raw > /tmp/all_dtest_tests_j8_without_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j8_without_vnodes > /tmp/split_dtest_tests_j8_without_vnodes.txt\ncat /tmp/split_dtest_tests_j8_without_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j8_without_vnodes_final.txt\ncat /tmp/split_dtest_tests_j8_without_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j8_without_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j8_without_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j8_without_vnodes_final.txt
|
|
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python3.6' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python3.6
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_without_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_without_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j8_without_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j8_without_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j8_cqlsh-dtests-py38-with-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.8/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j8_with_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.8/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j8_with_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --skip-resource-intensive-tests --pytest-options '-k cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j8_with_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j8_with_vnodes_raw /tmp/all_dtest_tests_j8_with_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j8_with_vnodes_raw > /tmp/all_dtest_tests_j8_with_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j8_with_vnodes > /tmp/split_dtest_tests_j8_with_vnodes.txt\ncat /tmp/split_dtest_tests_j8_with_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j8_with_vnodes_final.txt\ncat /tmp/split_dtest_tests_j8_with_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j8_with_vnodes)
|
|
no_output_timeout: 15m
|
|
command: |
|
|
echo "cat /tmp/split_dtest_tests_j8_with_vnodes_final.txt"
|
|
cat /tmp/split_dtest_tests_j8_with_vnodes_final.txt
|
|
|
|
source ~/env3.8/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
if [ -n 'CQLSH_PYTHON=/usr/bin/python3.8' ]; then
|
|
export CQLSH_PYTHON=/usr/bin/python3.8
|
|
fi
|
|
|
|
java -version
|
|
cd ~/cassandra-dtest
|
|
mkdir -p /tmp/dtest
|
|
|
|
echo "env: $(env)"
|
|
echo "** done env"
|
|
mkdir -p /tmp/results/dtests
|
|
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
|
export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_with_vnodes_final.txt`
|
|
set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j8_with_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j8_with_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
utests_long:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 1
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Run Unit Tests (long-test)
|
|
command: |
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra
|
|
if [ -d ~/dtest_jars ]; then
|
|
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
|
fi
|
|
ant long-test
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/build/test/output/
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/output
|
|
destination: junitxml
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/logs
|
|
destination: logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
utests_system_keyspace_directory:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Determine unit Tests to Run
|
|
command: |
|
|
# reminder: this code (along with all the steps) is independently executed on every circle container
|
|
# so the goal here is to get the circleci script to return the tests *this* container will run
|
|
# which we do via the `circleci` cli tool.
|
|
|
|
rm -fr ~/cassandra-dtest/upgrade_tests
|
|
echo "***java tests***"
|
|
|
|
# get all of our unit test filenames
|
|
set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
|
|
|
|
# split up the unit tests into groups based on the number of containers we have
|
|
set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
|
|
set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$" > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
|
|
cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
no_output_timeout: 15m
|
|
- run:
|
|
name: Log Environment Information
|
|
command: |
|
|
echo '*** id ***'
|
|
id
|
|
echo '*** cat /proc/cpuinfo ***'
|
|
cat /proc/cpuinfo
|
|
echo '*** free -m ***'
|
|
free -m
|
|
echo '*** df -m ***'
|
|
df -m
|
|
echo '*** ifconfig -a ***'
|
|
ifconfig -a
|
|
echo '*** uname -a ***'
|
|
uname -a
|
|
echo '*** mount ***'
|
|
mount
|
|
echo '*** env ***'
|
|
env
|
|
echo '*** java ***'
|
|
which java
|
|
java -version
|
|
- run:
|
|
name: Run Unit Tests (testclasslist-system-keyspace-directory)
|
|
command: |
|
|
set -x
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra
|
|
if [ -d ~/dtest_jars ]; then
|
|
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
|
fi
|
|
test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
|
|
if [ -z "$test_timeout" ]; then
|
|
test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
|
|
fi
|
|
ant testclasslist-system-keyspace-directory -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/build/test/output/
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/output
|
|
destination: junitxml
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/logs
|
|
destination: logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j8_cqlshlib_tests:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 1
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Run cqlshlib Unit Tests
|
|
command: |
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra/pylib
|
|
./cassandra-cqlsh-tests.sh ..
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/pylib
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
utests_fqltool:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 1
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Run Unit Tests (fqltool-test)
|
|
command: |
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra
|
|
if [ -d ~/dtest_jars ]; then
|
|
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
|
fi
|
|
ant fqltool-test
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/build/test/output/
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/output
|
|
destination: junitxml
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/logs
|
|
destination: logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j11_dtests-no-vnodes:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Log Environment Information
|
|
command: |
|
|
echo '*** id ***'
|
|
id
|
|
echo '*** cat /proc/cpuinfo ***'
|
|
cat /proc/cpuinfo
|
|
echo '*** free -m ***'
|
|
free -m
|
|
echo '*** df -m ***'
|
|
df -m
|
|
echo '*** ifconfig -a ***'
|
|
ifconfig -a
|
|
echo '*** uname -a ***'
|
|
uname -a
|
|
echo '*** mount ***'
|
|
mount
|
|
echo '*** env ***'
|
|
env
|
|
echo '*** java ***'
|
|
which java
|
|
java -version
|
|
- run:
|
|
name: Clone Cassandra dtest Repository (via git)
|
|
command: |
|
|
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
|
- run:
|
|
name: Configure virtualenv and python Dependencies
|
|
command: |
|
|
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
|
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
|
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
|
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
|
source ~/env3.6/bin/activate
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
|
|
pip3 uninstall -y cqlsh
|
|
pip3 freeze
|
|
- run:
|
|
name: Determine Tests to Run (j11_without_vnodes)
|
|
no_output_timeout: 5m
|
|
command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n export \nfi\n\necho \"***Collected DTests (j11_without_vnodes)***\"\nset -eo pipefail && ./run_dtests.py --skip-resource-intensive-tests --pytest-options '-k not cql' --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_j11_without_vnodes_raw --cassandra-dir=../cassandra\nif [ -z '' ]; then\n mv /tmp/all_dtest_tests_j11_without_vnodes_raw /tmp/all_dtest_tests_j11_without_vnodes\nelse\n grep -e '' /tmp/all_dtest_tests_j11_without_vnodes_raw > /tmp/all_dtest_tests_j11_without_vnodes || { echo \"Filter did not match any tests! Exiting build.\"; exit 0; }\nfi\nset -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_j11_without_vnodes > /tmp/split_dtest_tests_j11_without_vnodes.txt\ncat /tmp/split_dtest_tests_j11_without_vnodes.txt | tr '\\n' ' ' > /tmp/split_dtest_tests_j11_without_vnodes_final.txt\ncat /tmp/split_dtest_tests_j11_without_vnodes_final.txt\n"
|
|
- run:
|
|
name: Run dtests (j11_without_vnodes)
|
|
no_output_timeout: 15m
|
|
command: "echo \"cat /tmp/split_dtest_tests_j11_without_vnodes_final.txt\"\ncat /tmp/split_dtest_tests_j11_without_vnodes_final.txt\n\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho \"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need the \"set -o pipefail\" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee\nexport SPLIT_TESTS=`cat /tmp/split_dtest_tests_j11_without_vnodes_final.txt`\nset -o pipefail && cd ~/cassandra-dtest && pytest --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j11_without_vnodes.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt\n"
|
|
- store_test_results:
|
|
path: /tmp/results
|
|
- store_artifacts:
|
|
path: /tmp/dtest
|
|
destination: dtest_j11_without_vnodes
|
|
- store_artifacts:
|
|
path: ~/cassandra-dtest/logs
|
|
destination: dtest_j11_without_vnodes_logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- CASSANDRA_USE_JDK11: true
|
|
utests_compression:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Determine unit Tests to Run
|
|
command: |
|
|
# reminder: this code (along with all the steps) is independently executed on every circle container
|
|
# so the goal here is to get the circleci script to return the tests *this* container will run
|
|
# which we do via the `circleci` cli tool.
|
|
|
|
rm -fr ~/cassandra-dtest/upgrade_tests
|
|
echo "***java tests***"
|
|
|
|
# get all of our unit test filenames
|
|
set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
|
|
|
|
# split up the unit tests into groups based on the number of containers we have
|
|
set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
|
|
set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$" > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
|
|
cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
|
|
no_output_timeout: 15m
|
|
- run:
|
|
name: Log Environment Information
|
|
command: |
|
|
echo '*** id ***'
|
|
id
|
|
echo '*** cat /proc/cpuinfo ***'
|
|
cat /proc/cpuinfo
|
|
echo '*** free -m ***'
|
|
free -m
|
|
echo '*** df -m ***'
|
|
df -m
|
|
echo '*** ifconfig -a ***'
|
|
ifconfig -a
|
|
echo '*** uname -a ***'
|
|
uname -a
|
|
echo '*** mount ***'
|
|
mount
|
|
echo '*** env ***'
|
|
env
|
|
echo '*** java ***'
|
|
which java
|
|
java -version
|
|
- run:
|
|
name: Run Unit Tests (testclasslist-compression)
|
|
command: |
|
|
set -x
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
time mv ~/cassandra /tmp
|
|
cd /tmp/cassandra
|
|
if [ -d ~/dtest_jars ]; then
|
|
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
|
fi
|
|
test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
|
|
if [ -z "$test_timeout" ]; then
|
|
test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
|
|
fi
|
|
ant testclasslist-compression -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit
|
|
no_output_timeout: 15m
|
|
- store_test_results:
|
|
path: /tmp/cassandra/build/test/output/
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/output
|
|
destination: junitxml
|
|
- store_artifacts:
|
|
path: /tmp/cassandra/build/test/logs
|
|
destination: logs
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
j8_dtest_jars_build:
|
|
docker:
|
|
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
|
resource_class: medium
|
|
working_directory: ~/
|
|
shell: /bin/bash -eo pipefail -l
|
|
parallelism: 1
|
|
steps:
|
|
- attach_workspace:
|
|
at: /home/cassandra
|
|
- run:
|
|
name: Build Cassandra DTest jars
|
|
command: |
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
cd ~/cassandra
|
|
mkdir ~/dtest_jars
|
|
git remote add apache git://github.com/apache/cassandra.git
|
|
for branch in cassandra-2.2 cassandra-3.0 cassandra-3.11 trunk; do
|
|
# check out the correct cassandra version:
|
|
git remote set-branches --add apache '$branch'
|
|
git fetch --depth 1 apache $branch
|
|
git checkout $branch
|
|
git clean -fd
|
|
# Loop to prevent failure due to maven-ant-tasks not downloading a jar..
|
|
for x in $(seq 1 3); do
|
|
${ANT_HOME}/bin/ant realclean; ${ANT_HOME}/bin/ant jar dtest-jar
|
|
RETURN="$?"
|
|
if [ "${RETURN}" -eq "0" ]; then
|
|
cp build/dtest*.jar ~/dtest_jars
|
|
break
|
|
fi
|
|
done
|
|
# Exit, if we didn't build successfully
|
|
if [ "${RETURN}" -ne "0" ]; then
|
|
echo "Build failed with exit code: ${RETURN}"
|
|
exit ${RETURN}
|
|
fi
|
|
done
|
|
# and build the dtest-jar for the branch under test
|
|
${ANT_HOME}/bin/ant realclean
|
|
git checkout origin/$CIRCLE_BRANCH
|
|
git clean -fd
|
|
for x in $(seq 1 3); do
|
|
${ANT_HOME}/bin/ant realclean; ${ANT_HOME}/bin/ant jar dtest-jar
|
|
RETURN="$?"
|
|
if [ "${RETURN}" -eq "0" ]; then
|
|
cp build/dtest*.jar ~/dtest_jars
|
|
break
|
|
fi
|
|
done
|
|
# Exit, if we didn't build successfully
|
|
if [ "${RETURN}" -ne "0" ]; then
|
|
echo "Build failed with exit code: ${RETURN}"
|
|
exit ${RETURN}
|
|
fi
|
|
ls -l ~/dtest_jars
|
|
no_output_timeout: 15m
|
|
- persist_to_workspace:
|
|
root: /home/cassandra
|
|
paths:
|
|
- dtest_jars
|
|
environment:
|
|
- ANT_HOME: /usr/share/ant
|
|
- JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- LANG: en_US.UTF-8
|
|
- KEEP_TEST_DIR: true
|
|
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
|
- PYTHONIOENCODING: utf-8
|
|
- PYTHONUNBUFFERED: true
|
|
- CASS_DRIVER_NO_EXTENSIONS: true
|
|
- CASS_DRIVER_NO_CYTHON: true
|
|
- CASSANDRA_SKIP_SYNC: true
|
|
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
|
- DTEST_BRANCH: trunk
|
|
- CCM_MAX_HEAP_SIZE: 1024M
|
|
- CCM_HEAP_NEWSIZE: 256M
|
|
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
workflows:
|
|
version: 2
|
|
java8_build_and_run_tests:
|
|
jobs:
|
|
- j8_build
|
|
- j8_unit_tests:
|
|
requires:
|
|
- j8_build
|
|
- j8_jvm_dtests:
|
|
requires:
|
|
- j8_build
|
|
- start_j11_unit_tests:
|
|
type: approval
|
|
- j11_unit_tests:
|
|
requires:
|
|
- start_j11_unit_tests
|
|
- j8_build
|
|
- j8_cqlshlib_tests:
|
|
requires:
|
|
- j8_build
|
|
- start_utests_long:
|
|
type: approval
|
|
- utests_long:
|
|
requires:
|
|
- start_utests_long
|
|
- j8_build
|
|
- start_utests_compression:
|
|
type: approval
|
|
- utests_compression:
|
|
requires:
|
|
- start_utests_compression
|
|
- j8_build
|
|
- start_utests_stress:
|
|
type: approval
|
|
- utests_stress:
|
|
requires:
|
|
- start_utests_stress
|
|
- j8_build
|
|
- start_utests_fqltool:
|
|
type: approval
|
|
- utests_fqltool:
|
|
requires:
|
|
- start_utests_fqltool
|
|
- j8_build
|
|
- start_utests_system_keyspace_directory:
|
|
type: approval
|
|
- utests_system_keyspace_directory:
|
|
requires:
|
|
- start_utests_system_keyspace_directory
|
|
- j8_build
|
|
- start_jvm_upgrade_dtest:
|
|
type: approval
|
|
- j8_dtest_jars_build:
|
|
requires:
|
|
- j8_build
|
|
- start_jvm_upgrade_dtest
|
|
- j8_jvm_upgrade_dtests:
|
|
requires:
|
|
- j8_dtest_jars_build
|
|
- start_j8_dtests:
|
|
type: approval
|
|
- j8_dtests-with-vnodes:
|
|
requires:
|
|
- start_j8_dtests
|
|
- j8_build
|
|
- j8_dtests-no-vnodes:
|
|
requires:
|
|
- start_j8_dtests
|
|
- j8_build
|
|
- start_j11_dtests:
|
|
type: approval
|
|
- j11_dtests-with-vnodes:
|
|
requires:
|
|
- start_j11_dtests
|
|
- j8_build
|
|
- j11_dtests-no-vnodes:
|
|
requires:
|
|
- start_j11_dtests
|
|
- j8_build
|
|
- start_upgrade_tests:
|
|
type: approval
|
|
- j8_upgradetests-no-vnodes:
|
|
requires:
|
|
- start_upgrade_tests
|
|
- j8_build
|
|
- start_j8_cqlsh_tests-with-vnodes:
|
|
type: approval
|
|
- j8_cqlsh-dtests-py2-with-vnodes:
|
|
requires:
|
|
- start_j8_cqlsh_tests-with-vnodes
|
|
- j8_build
|
|
- j8_cqlsh-dtests-py3-with-vnodes:
|
|
requires:
|
|
- start_j8_cqlsh_tests-with-vnodes
|
|
- j8_build
|
|
- j8_cqlsh-dtests-py38-with-vnodes:
|
|
requires:
|
|
- start_j8_cqlsh_tests-with-vnodes
|
|
- j8_build
|
|
- start_j8_cqlsh_tests-no-vnodes:
|
|
type: approval
|
|
- j8_cqlsh-dtests-py2-no-vnodes:
|
|
requires:
|
|
- start_j8_cqlsh_tests-no-vnodes
|
|
- j8_build
|
|
- j8_cqlsh-dtests-py3-no-vnodes:
|
|
requires:
|
|
- start_j8_cqlsh_tests-no-vnodes
|
|
- j8_build
|
|
- j8_cqlsh-dtests-py38-no-vnodes:
|
|
requires:
|
|
- start_j8_cqlsh_tests-no-vnodes
|
|
- j8_build
|
|
- start_j11_cqlsh_tests-with-vnodes:
|
|
type: approval
|
|
- j11_cqlsh-dtests-py2-with-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-with-vnodes
|
|
- j8_build
|
|
- j11_cqlsh-dtests-py3-with-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-with-vnodes
|
|
- j8_build
|
|
- j11_cqlsh-dtests-py38-with-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-with-vnodes
|
|
- j8_build
|
|
- start_j11_cqlsh_tests-no-vnodes:
|
|
type: approval
|
|
- j11_cqlsh-dtests-py2-no-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-no-vnodes
|
|
- j8_build
|
|
- j11_cqlsh-dtests-py3-no-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-no-vnodes
|
|
- j8_build
|
|
- j11_cqlsh-dtests-py38-no-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-no-vnodes
|
|
- j8_build
|
|
java11_build_and_run_tests:
|
|
jobs:
|
|
- j11_build
|
|
- start_j11_unit_tests:
|
|
type: approval
|
|
- j11_unit_tests:
|
|
requires:
|
|
- start_j11_unit_tests
|
|
- j11_build
|
|
- j11_jvm_dtests:
|
|
requires:
|
|
- j11_build
|
|
- j11_cqlshlib_tests:
|
|
requires:
|
|
- j11_build
|
|
- start_j11_dtests:
|
|
type: approval
|
|
- j11_dtests-with-vnodes:
|
|
requires:
|
|
- start_j11_dtests
|
|
- j11_build
|
|
- j11_dtests-no-vnodes:
|
|
requires:
|
|
- start_j11_dtests
|
|
- j11_build
|
|
- start_j11_cqlsh_tests-with-vnodes:
|
|
type: approval
|
|
- j11_cqlsh-dtests-py2-with-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-with-vnodes
|
|
- j11_build
|
|
- j11_cqlsh-dtests-py3-with-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-with-vnodes
|
|
- j11_build
|
|
- j11_cqlsh-dtests-py38-with-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-with-vnodes
|
|
- j11_build
|
|
- start_j11_cqlsh_tests-no-vnodes:
|
|
type: approval
|
|
- j11_cqlsh-dtests-py2-no-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-no-vnodes
|
|
- j11_build
|
|
- j11_cqlsh-dtests-py3-no-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-no-vnodes
|
|
- j11_build
|
|
- j11_cqlsh-dtests-py38-no-vnodes:
|
|
requires:
|
|
- start_j11_cqlsh_tests-no-vnodes
|
|
- j11_build
|