schedules: nightly_master: schedule: nightly disable_pull_requests: true branches: include: [master] env_vars: | EVENT_LOOP_MANAGER='libev' matrix: exclude: - python: [3.6, 3.7, 3.8] - cassandra: ['2.1', '3.0', '4.0', 'test-dse'] commit_long_test: schedule: per_commit disable_pull_requests: true branches: include: [/long-python.*/] env_vars: | EVENT_LOOP_MANAGER='libev' matrix: exclude: - python: [3.6, 3.7, 3.8] - cassandra: ['2.1', '3.0', 'test-dse'] commit_branches: schedule: per_commit disable_pull_requests: true branches: include: [/python.*/] env_vars: | EVENT_LOOP_MANAGER='libev' EXCLUDE_LONG=1 matrix: exclude: - python: [3.6, 3.7, 3.8] - cassandra: ['2.1', '3.0', 'test-dse'] commit_branches_dev: schedule: per_commit disable_pull_requests: true branches: include: [/dev-python.*/] env_vars: | EVENT_LOOP_MANAGER='libev' EXCLUDE_LONG=1 matrix: exclude: - python: [2.7, 3.7, 3.6, 3.8] - cassandra: ['2.0', '2.1', '2.2', '3.0', '4.0', 'test-dse', 'dse-4.8', 'dse-5.0', 'dse-6.0', 'dse-6.8'] release_test: schedule: per_commit disable_pull_requests: true branches: include: [/release-.+/] env_vars: | EVENT_LOOP_MANAGER='libev' weekly_master: schedule: 0 10 * * 6 disable_pull_requests: true branches: include: [master] env_vars: | EVENT_LOOP_MANAGER='libev' matrix: exclude: - python: [3.5] - cassandra: ['2.2', '3.1'] weekly_gevent: schedule: 0 14 * * 6 disable_pull_requests: true branches: include: [master] env_vars: | EVENT_LOOP_MANAGER='gevent' JUST_EVENT_LOOP=1 weekly_eventlet: schedule: 0 18 * * 6 disable_pull_requests: true branches: include: [master] env_vars: | EVENT_LOOP_MANAGER='eventlet' JUST_EVENT_LOOP=1 weekly_asyncio: schedule: 0 22 * * 6 disable_pull_requests: true branches: include: [master] env_vars: | EVENT_LOOP_MANAGER='asyncio' JUST_EVENT_LOOP=1 matrix: exclude: - python: [2.7] weekly_async: schedule: 0 10 * * 7 disable_pull_requests: true branches: include: [master] env_vars: | EVENT_LOOP_MANAGER='asyncore' JUST_EVENT_LOOP=1 weekly_twister: schedule: 0 14 * * 7 disable_pull_requests: true branches: include: [master] env_vars: | EVENT_LOOP_MANAGER='twisted' JUST_EVENT_LOOP=1 upgrade_tests: schedule: adhoc branches: include: [master, python-546] env_vars: | EVENT_LOOP_MANAGER='libev' JUST_UPGRADE=True matrix: exclude: - python: [3.6, 3.7, 3.8] - cassandra: ['2.0', '2.1', '2.2', '3.0', '4.0', 'test-dse'] python: - 2.7 - 3.5 - 3.6 - 3.7 - 3.8 os: - ubuntu/bionic64/python-driver cassandra: - '2.1' - '2.2' - '3.0' - '3.11' - '4.0' - 'dse-4.8' - 'dse-5.0' - 'dse-5.1' - 'dse-6.0' - 'dse-6.7' - 'dse-6.8.0' env: CYTHON: - CYTHON - NO_CYTHON build: - script: | export JAVA_HOME=$CCM_JAVA_HOME export PATH=$JAVA_HOME/bin:$PATH export PYTHONPATH="" export CCM_MAX_HEAP_SIZE=1024M # Required for unix socket tests sudo apt-get install socat # Install latest setuptools pip install --upgrade pip pip install -U setuptools pip install git+ssh://git@github.com/riptano/ccm-private.git@cassandra-7544-native-ports-with-dse-fix #pip install $HOME/ccm if [ -n "$CCM_IS_DSE" ]; then pip install -r test-datastax-requirements.txt else pip install -r test-requirements.txt fi pip install nose-ignore-docstring pip install nose-exclude pip install service_identity FORCE_CYTHON=False if [[ $CYTHON == 'CYTHON' ]]; then FORCE_CYTHON=True pip install cython pip install numpy # Install the driver & compile C extensions python setup.py build_ext --inplace else # Install the driver & compile C extensions with no cython python setup.py build_ext --inplace --no-cython fi echo "JUST_UPGRADE: $JUST_UPGRADE" if [[ $JUST_UPGRADE == 'True' ]]; then EVENT_LOOP_MANAGER=$EVENT_LOOP_MANAGER VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=upgrade_results.xml tests/integration/upgrade || true exit 0 fi if [[ $JUST_SMOKE == 'true' ]]; then # When we ONLY want to run the smoke tests echo "JUST_SMOKE: $JUST_SMOKE" echo "==========RUNNING SMOKE TESTS===========" EVENT_LOOP_MANAGER=$EVENT_LOOP_MANAGER CCM_ARGS="$CCM_ARGS" CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION DSE_VERSION='6.7.0' MAPPED_CASSANDRA_VERSION=$MAPPED_CASSANDRA_VERSION VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=standard_results.xml tests/integration/standard/test_dse.py || true exit 0 fi # Run the unit tests, this is not done in travis because # it takes too much time for the whole matrix to build with cython if [[ $CYTHON == 'CYTHON' ]]; then EVENT_LOOP_MANAGER=$EVENT_LOOP_MANAGER VERIFY_CYTHON=1 nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=unit_results.xml tests/unit/ || true EVENT_LOOP_MANAGER=eventlet VERIFY_CYTHON=1 nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=unit_eventlet_results.xml tests/unit/io/test_eventletreactor.py || true EVENT_LOOP_MANAGER=gevent VERIFY_CYTHON=1 nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=unit_gevent_results.xml tests/unit/io/test_geventreactor.py || true fi if [ -n "$JUST_EVENT_LOOP" ]; then echo "Running integration event loop subset with $EVENT_LOOP_MANAGER" EVENT_LOOP_TESTS=( "tests/integration/standard/test_cluster.py" "tests/integration/standard/test_concurrent.py" "tests/integration/standard/test_connection.py" "tests/integration/standard/test_control_connection.py" "tests/integration/standard/test_metrics.py" "tests/integration/standard/test_query.py" "tests/integration/simulacron/test_endpoint.py" "tests/integration/long/test_ssl.py" ) EVENT_LOOP_MANAGER=$EVENT_LOOP_MANAGER CCM_ARGS="$CCM_ARGS" DSE_VERSION=$DSE_VERSION CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION MAPPED_CASSANDRA_VERSION=$MAPPED_CASSANDRA_VERSION VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=standard_results.xml ${EVENT_LOOP_TESTS[@]} || true exit 0 fi echo "Running with event loop manager: $EVENT_LOOP_MANAGER" echo "==========RUNNING SIMULACRON TESTS==========" SIMULACRON_JAR="$HOME/simulacron.jar" SIMULACRON_JAR=$SIMULACRON_JAR EVENT_LOOP_MANAGER=$EVENT_LOOP_MANAGER CASSANDRA_DIR=$CCM_INSTALL_DIR CCM_ARGS="$CCM_ARGS" DSE_VERSION=$DSE_VERSION CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION MAPPED_CASSANDRA_VERSION=$MAPPED_CASSANDRA_VERSION VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=simulacron_results.xml tests/integration/simulacron/ || true echo "Running with event loop manager: $EVENT_LOOP_MANAGER" echo "==========RUNNING CQLENGINE TESTS==========" EVENT_LOOP_MANAGER=$EVENT_LOOP_MANAGER CCM_ARGS="$CCM_ARGS" DSE_VERSION=$DSE_VERSION CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION MAPPED_CASSANDRA_VERSION=$MAPPED_CASSANDRA_VERSION VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=cqle_results.xml tests/integration/cqlengine/ || true echo "==========RUNNING INTEGRATION TESTS==========" EVENT_LOOP_MANAGER=$EVENT_LOOP_MANAGER CCM_ARGS="$CCM_ARGS" DSE_VERSION=$DSE_VERSION CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION MAPPED_CASSANDRA_VERSION=$MAPPED_CASSANDRA_VERSION VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=standard_results.xml tests/integration/standard/ || true if [ -n "$DSE_VERSION" ] && ! [[ $DSE_VERSION == "4.8"* ]]; then echo "==========RUNNING DSE INTEGRATION TESTS==========" EVENT_LOOP_MANAGER=$EVENT_LOOP_MANAGER CASSANDRA_DIR=$CCM_INSTALL_DIR DSE_VERSION=$DSE_VERSION ADS_HOME=$HOME/ VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=dse_results.xml tests/integration/advanced/ || true fi echo "==========RUNNING CLOUD TESTS==========" EVENT_LOOP_MANAGER=$EVENT_LOOP_MANAGER CLOUD_PROXY_PATH="$HOME/proxy/" CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION MAPPED_CASSANDRA_VERSION=$MAPPED_CASSANDRA_VERSION VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=advanced_results.xml tests/integration/cloud/ || true if [ -z "$EXCLUDE_LONG" ]; then echo "==========RUNNING LONG INTEGRATION TESTS==========" EVENT_LOOP_MANAGER=$EVENT_LOOP_MANAGER CCM_ARGS="$CCM_ARGS" DSE_VERSION=$DSE_VERSION CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION MAPPED_CASSANDRA_VERSION=$MAPPED_CASSANDRA_VERSION VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --exclude-dir=tests/integration/long/upgrade --with-ignore-docstrings --with-xunit --xunit-file=long_results.xml tests/integration/long/ || true fi - xunit: - "*_results.xml"