diff --git a/Jenkinsfile.bak b/Jenkinsfile.bak
deleted file mode 100644
index 87b20804ca..0000000000
--- a/Jenkinsfile.bak
+++ /dev/null
@@ -1,873 +0,0 @@
-#!groovy
-
-def initializeEnvironment() {
- env.DRIVER_DISPLAY_NAME = 'Cassandra Python Driver'
- env.DRIVER_METRIC_TYPE = 'oss'
- if (env.GIT_URL.contains('riptano/python-driver')) {
- env.DRIVER_DISPLAY_NAME = 'private ' + env.DRIVER_DISPLAY_NAME
- env.DRIVER_METRIC_TYPE = 'oss-private'
- } else if (env.GIT_URL.contains('python-dse-driver')) {
- env.DRIVER_DISPLAY_NAME = 'DSE Python Driver'
- env.DRIVER_METRIC_TYPE = 'dse'
- }
-
- env.GIT_SHA = "${env.GIT_COMMIT.take(7)}"
- env.GITHUB_PROJECT_URL = "https://${GIT_URL.replaceFirst(/(git@|http:\/\/|https:\/\/)/, '').replace(':', '/').replace('.git', '')}"
- env.GITHUB_BRANCH_URL = "${GITHUB_PROJECT_URL}/tree/${env.BRANCH_NAME}"
- env.GITHUB_COMMIT_URL = "${GITHUB_PROJECT_URL}/commit/${env.GIT_COMMIT}"
-
- sh label: 'Assign Python global environment', script: '''#!/bin/bash -lex
- pyenv global ${PYTHON_VERSION}
- '''
-
- sh label: 'Install socat; required for unix socket tests', script: '''#!/bin/bash -lex
- sudo apt-get install socat
- '''
-
- sh label: 'Install the latest setuptools', script: '''#!/bin/bash -lex
- pip install --upgrade pip
- pip install -U setuptools
- '''
-
- sh label: 'Install CCM', script: '''#!/bin/bash -lex
- pip install ${HOME}/ccm
- '''
-
- // Determine if server version is Apache Cassandra� or DataStax Enterprise
- if (env.CASSANDRA_VERSION.split('-')[0] == 'dse') {
- sh label: 'Install DataStax Enterprise requirements', script: '''#!/bin/bash -lex
- pip install -r test-datastax-requirements.txt
- '''
- } else {
- sh label: 'Install Apache CassandraⓇ requirements', script: '''#!/bin/bash -lex
- pip install -r test-requirements.txt
- '''
-
- sh label: 'Uninstall the geomet dependency since it is not required for Cassandra', script: '''#!/bin/bash -lex
- pip uninstall -y geomet
- '''
-
- }
-
- sh label: 'Install unit test modules', script: '''#!/bin/bash -lex
- pip install nose-ignore-docstring nose-exclude service_identity
- '''
-
- if (env.CYTHON_ENABLED == 'True') {
- sh label: 'Install cython modules', script: '''#!/bin/bash -lex
- pip install cython numpy
- '''
- }
-
- sh label: 'Download Apache CassandraⓇ or DataStax Enterprise', script: '''#!/bin/bash -lex
- . ${CCM_ENVIRONMENT_SHELL} ${CASSANDRA_VERSION}
- '''
-
- sh label: 'Display Python and environment information', script: '''#!/bin/bash -le
- # Load CCM environment variables
- set -o allexport
- . ${HOME}/environment.txt
- set +o allexport
-
- python --version
- pip --version
- printenv | sort
- '''
-}
-
-def installDriverAndCompileExtensions() {
- if (env.CYTHON_ENABLED == 'True') {
- sh label: 'Install the driver and compile with C extensions with Cython', script: '''#!/bin/bash -lex
- python setup.py build_ext --inplace
- '''
- } else {
- sh label: 'Install the driver and compile with C extensions without Cython', script: '''#!/bin/bash -lex
- python setup.py build_ext --inplace --no-cython
- '''
- }
-}
-
-def executeStandardTests() {
-
- sh label: 'Execute unit tests', script: '''#!/bin/bash -lex
- # Load CCM environment variables
- set -o allexport
- . ${HOME}/environment.txt
- set +o allexport
-
- EVENT_LOOP_MANAGER=${EVENT_LOOP_MANAGER} VERIFY_CYTHON=${CYTHON_ENABLED} 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=${CYTHON_ENABLED} 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=${CYTHON_ENABLED} 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
- '''
-
- sh label: 'Execute Simulacron integration tests', script: '''#!/bin/bash -lex
- # Load CCM environment variables
- set -o allexport
- . ${HOME}/environment.txt
- set +o allexport
-
- 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=${CYTHON_ENABLED} nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --exclude test_backpressure.py --xunit-file=simulacron_results.xml tests/integration/simulacron/ || true
-
- # Run backpressure tests separately to avoid memory issue
- 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=${CYTHON_ENABLED} nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --exclude test_backpressure.py --xunit-file=simulacron_backpressure_1_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_paused_connections || true
- 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=${CYTHON_ENABLED} nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --exclude test_backpressure.py --xunit-file=simulacron_backpressure_2_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_queued_requests_timeout || true
- 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=${CYTHON_ENABLED} nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --exclude test_backpressure.py --xunit-file=simulacron_backpressure_3_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_cluster_busy || true
- 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=${CYTHON_ENABLED} nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --exclude test_backpressure.py --xunit-file=simulacron_backpressure_4_results.xml tests/integration/simulacron/test_backpressure.py:TCPBackpressureTests.test_node_busy || true
- '''
-
- sh label: 'Execute CQL engine integration tests', script: '''#!/bin/bash -lex
- # Load CCM environment variables
- set -o allexport
- . ${HOME}/environment.txt
- set +o allexport
-
- 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=${CYTHON_ENABLED} 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
- '''
-
- sh label: 'Execute Apache CassandraⓇ integration tests', script: '''#!/bin/bash -lex
- # Load CCM environment variables
- set -o allexport
- . ${HOME}/environment.txt
- set +o allexport
-
- 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=${CYTHON_ENABLED} 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 (env.CASSANDRA_VERSION.split('-')[0] == 'dse' && env.CASSANDRA_VERSION.split('-')[1] != '4.8') {
- sh label: 'Execute DataStax Enterprise integration tests', script: '''#!/bin/bash -lex
- # Load CCM environment variable
- set -o allexport
- . ${HOME}/environment.txt
- set +o allexport
-
- EVENT_LOOP_MANAGER=${EVENT_LOOP_MANAGER} CASSANDRA_DIR=${CCM_INSTALL_DIR} DSE_VERSION=${DSE_VERSION} ADS_HOME="${HOME}/" VERIFY_CYTHON=${CYTHON_ENABLED} 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
- '''
- }
-
- sh label: 'Execute DataStax Constellation integration tests', script: '''#!/bin/bash -lex
- # Load CCM environment variable
- set -o allexport
- . ${HOME}/environment.txt
- set +o allexport
-
- EVENT_LOOP_MANAGER=${EVENT_LOOP_MANAGER} CLOUD_PROXY_PATH="${HOME}/proxy/" CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} 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 (env.EXECUTE_LONG_TESTS == 'True') {
- sh label: 'Execute long running integration tests', script: '''#!/bin/bash -lex
- # Load CCM environment variable
- set -o allexport
- . ${HOME}/environment.txt
- set +o allexport
-
- 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=${CYTHON_ENABLED} 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
- '''
- }
-}
-
-def executeDseSmokeTests() {
- sh label: 'Execute profile DataStax Enterprise smoke test integration tests', script: '''#!/bin/bash -lex
- # Load CCM environment variable
- set -o allexport
- . ${HOME}/environment.txt
- set +o allexport
-
- EVENT_LOOP_MANAGER=${EVENT_LOOP_MANAGER} CCM_ARGS="${CCM_ARGS}" CASSANDRA_VERSION=${CCM_CASSANDRA_VERSION} DSE_VERSION=${DSE_VERSION} MAPPED_CASSANDRA_VERSION=${MAPPED_CASSANDRA_VERSION} VERIFY_CYTHON=${CYTHON_ENABLED} 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
- '''
-}
-
-def executeEventLoopTests() {
- sh label: 'Execute profile event loop manager integration tests', script: '''#!/bin/bash -lex
- # Load CCM environment variable
- set -o allexport
- . ${HOME}/environment.txt
- set +o allexport
-
- 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=${CYTHON_ENABLED} 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
- '''
-}
-
-def executeUpgradeTests() {
- sh label: 'Execute profile upgrade integration tests', script: '''#!/bin/bash -lex
- # Load CCM environment variable
- set -o allexport
- . ${HOME}/environment.txt
- set +o allexport
-
- EVENT_LOOP_MANAGER=${EVENT_LOOP_MANAGER} VERIFY_CYTHON=${CYTHON_ENABLED} 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
- '''
-}
-
-def executeTests() {
- switch(params.PROFILE) {
- case 'DSE-SMOKE-TEST':
- executeDseSmokeTests()
- break
- case 'EVENT-LOOP':
- executeEventLoopTests()
- break
- case 'UPGRADE':
- executeUpgradeTests()
- break
- default:
- executeStandardTests()
- break
- }
-}
-
-def notifySlack(status = 'started') {
- // Set the global pipeline scoped environment (this is above each matrix)
- env.BUILD_STATED_SLACK_NOTIFIED = 'true'
-
- def buildType = 'Commit'
- if (params.CI_SCHEDULE != 'DO-NOT-CHANGE-THIS-SELECTION') {
- buildType = "${params.CI_SCHEDULE.toLowerCase().capitalize()}"
- }
-
- def color = 'good' // Green
- if (status.equalsIgnoreCase('aborted')) {
- color = '808080' // Grey
- } else if (status.equalsIgnoreCase('unstable')) {
- color = 'warning' // Orange
- } else if (status.equalsIgnoreCase('failed')) {
- color = 'danger' // Red
- }
-
- def message = """Build ${status} for ${env.DRIVER_DISPLAY_NAME} [${buildType}]
-<${env.GITHUB_BRANCH_URL}|${env.BRANCH_NAME}> - <${env.RUN_DISPLAY_URL}|#${env.BUILD_NUMBER}> - <${env.GITHUB_COMMIT_URL}|${env.GIT_SHA}>"""
- if (params.CI_SCHEDULE != 'DO-NOT-CHANGE-THIS-SELECTION') {
- message += " - ${params.CI_SCHEDULE_PYTHON_VERSION} - ${params.EVENT_LOOP_MANAGER}"
- }
- if (!status.equalsIgnoreCase('Started')) {
- message += """
-${status} after ${currentBuild.durationString - ' and counting'}"""
- }
-
- slackSend color: "${color}",
- channel: "#python-driver-dev-bots",
- message: "${message}"
-}
-
-def submitCIMetrics(buildType) {
- long durationMs = currentBuild.duration
- long durationSec = durationMs / 1000
- long nowSec = (currentBuild.startTimeInMillis + durationMs) / 1000
- def branchNameNoPeriods = env.BRANCH_NAME.replaceAll('\\.', '_')
- def durationMetric = "okr.ci.python.${env.DRIVER_METRIC_TYPE}.${buildType}.${branchNameNoPeriods} ${durationSec} ${nowSec}"
-
- timeout(time: 1, unit: 'MINUTES') {
- withCredentials([string(credentialsId: 'lab-grafana-address', variable: 'LAB_GRAFANA_ADDRESS'),
- string(credentialsId: 'lab-grafana-port', variable: 'LAB_GRAFANA_PORT')]) {
- withEnv(["DURATION_METRIC=${durationMetric}"]) {
- sh label: 'Send runtime metrics to labgrafana', script: '''#!/bin/bash -lex
- echo "${DURATION_METRIC}" | nc -q 5 ${LAB_GRAFANA_ADDRESS} ${LAB_GRAFANA_PORT}
- '''
- }
- }
- }
-}
-
-def describePerCommitStage() {
- script {
- def type = 'standard'
- def serverDescription = 'current Apache CassandaraⓇ and supported DataStax Enterprise versions'
- if (env.BRANCH_NAME ==~ /long-python.*/) {
- type = 'long'
- } else if (env.BRANCH_NAME ==~ /dev-python.*/) {
- type = 'dev'
- }
-
- currentBuild.displayName = "Per-Commit (${env.EVENT_LOOP_MANAGER} | ${type.capitalize()})"
- currentBuild.description = "Per-Commit build and ${type} testing of ${serverDescription} against Python v2.7.18 and v3.5.9 using ${env.EVENT_LOOP_MANAGER} event loop manager"
- }
-
- sh label: 'Describe the python environment', script: '''#!/bin/bash -lex
- python -V
- pip freeze
- '''
-}
-
-def describeScheduledTestingStage() {
- script {
- def type = params.CI_SCHEDULE.toLowerCase().capitalize()
- def displayName = "${type} schedule (${env.EVENT_LOOP_MANAGER}"
- if (env.CYTHON_ENABLED == 'True') {
- displayName += " | Cython"
- }
- if (params.PROFILE != 'NONE') {
- displayName += " | ${params.PROFILE}"
- }
- displayName += ")"
- currentBuild.displayName = displayName
-
- def serverVersionDescription = "${params.CI_SCHEDULE_SERVER_VERSION.replaceAll(' ', ', ')} server version(s) in the matrix"
- def pythonVersionDescription = "${params.CI_SCHEDULE_PYTHON_VERSION.replaceAll(' ', ', ')} Python version(s) in the matrix"
- def description = "${type} scheduled testing using ${env.EVENT_LOOP_MANAGER} event loop manager"
- if (env.CYTHON_ENABLED == 'True') {
- description += ", with Cython enabled"
- }
- if (params.PROFILE != 'NONE') {
- description += ", ${params.PROFILE} profile"
- }
- description += ", ${serverVersionDescription}, and ${pythonVersionDescription}"
- currentBuild.description = description
- }
-}
-
-def describeAdhocTestingStage() {
- script {
- def serverType = params.ADHOC_BUILD_AND_EXECUTE_TESTS_SERVER_VERSION.split('-')[0]
- def serverDisplayName = 'Apache CassandaraⓇ'
- def serverVersion = " v${serverType}"
- if (serverType == 'ALL') {
- serverDisplayName = "all ${serverDisplayName} and DataStax Enterprise server versions"
- serverVersion = ''
- } else {
- try {
- serverVersion = " v${env.ADHOC_BUILD_AND_EXECUTE_TESTS_SERVER_VERSION.split('-')[1]}"
- } catch (e) {
- ;; // no-op
- }
- if (serverType == 'dse') {
- serverDisplayName = 'DataStax Enterprise'
- }
- }
- def displayName = "${params.ADHOC_BUILD_AND_EXECUTE_TESTS_SERVER_VERSION} for v${params.ADHOC_BUILD_AND_EXECUTE_TESTS_PYTHON_VERSION} (${env.EVENT_LOOP_MANAGER}"
- if (env.CYTHON_ENABLED == 'True') {
- displayName += " | Cython"
- }
- if (params.PROFILE != 'NONE') {
- displayName += " | ${params.PROFILE}"
- }
- displayName += ")"
- currentBuild.displayName = displayName
-
- def description = "Testing ${serverDisplayName} ${serverVersion} using ${env.EVENT_LOOP_MANAGER} against Python ${params.ADHOC_BUILD_AND_EXECUTE_TESTS_PYTHON_VERSION}"
- if (env.CYTHON_ENABLED == 'True') {
- description += ", with Cython"
- }
- if (params.PROFILE == 'NONE') {
- if (params.EXECUTE_LONG_TESTS) {
- description += ", with"
- } else {
- description += ", without"
- }
- description += " long tests executed"
- } else {
- description += ", ${params.PROFILE} profile"
- }
- currentBuild.description = description
- }
-}
-
-def branchPatternCron = ~"(master)"
-def riptanoPatternCron = ~"(riptano)"
-
-pipeline {
- agent none
-
- // Global pipeline timeout
- options {
- timeout(time: 10, unit: 'HOURS')
- buildDiscarder(logRotator(artifactNumToKeepStr: '10', // Keep only the last 10 artifacts
- numToKeepStr: '50')) // Keep only the last 50 build records
- }
-
- parameters {
- choice(
- name: 'ADHOC_BUILD_TYPE',
- choices: ['BUILD', 'BUILD-AND-EXECUTE-TESTS'],
- description: '''
Perform a adhoc build operation
-
-
-
-
- Choice |
- Description |
-
-
- BUILD |
- Performs a Per-Commit build |
-
-
- BUILD-AND-EXECUTE-TESTS |
- Performs a build and executes the integration and unit tests |
-
-
''')
- choice(
- name: 'ADHOC_BUILD_AND_EXECUTE_TESTS_PYTHON_VERSION',
- choices: ['2.7.18', '3.4.10', '3.5.9', '3.6.10', '3.7.7', '3.8.3'],
- description: 'Python version to use for adhoc BUILD-AND-EXECUTE-TESTS ONLY!')
- choice(
- name: 'ADHOC_BUILD_AND_EXECUTE_TESTS_SERVER_VERSION',
- choices: ['2.1', // Legacy Apache CassandraⓇ
- '2.2', // Legacy Apache CassandraⓇ
- '3.0', // Previous Apache CassandraⓇ
- '3.11', // Current Apache CassandraⓇ
- '4.0', // Development Apache CassandraⓇ
- 'dse-5.0', // Long Term Support DataStax Enterprise
- 'dse-5.1', // Legacy DataStax Enterprise
- 'dse-6.0', // Previous DataStax Enterprise
- 'dse-6.7', // Previous DataStax Enterprise
- 'dse-6.8', // Current DataStax Enterprise
- 'ALL'],
- description: '''Apache CassandraⓇ and DataStax Enterprise server version to use for adhoc BUILD-AND-EXECUTE-TESTS ONLY!
-
-
-
-
- Choice |
- Description |
-
-
- 2.1 |
- Apache CassandaraⓇ; v2.1.x |
-
-
- 2.2 |
- Apache CassandarⓇ; v2.2.x |
-
-
- 3.0 |
- Apache CassandaraⓇ v3.0.x |
-
-
- 3.11 |
- Apache CassandaraⓇ v3.11.x |
-
-
- 4.0 |
- Apache CassandaraⓇ v4.x (CURRENTLY UNDER DEVELOPMENT) |
-
-
- dse-5.0 |
- DataStax Enterprise v5.0.x (Long Term Support) |
-
-
- dse-5.1 |
- DataStax Enterprise v5.1.x |
-
-
- dse-6.0 |
- DataStax Enterprise v6.0.x |
-
-
- dse-6.7 |
- DataStax Enterprise v6.7.x |
-
-
- dse-6.8 |
- DataStax Enterprise v6.8.x (CURRENTLY UNDER DEVELOPMENT) |
-
-
''')
- booleanParam(
- name: 'CYTHON',
- defaultValue: false,
- description: 'Flag to determine if Cython should be enabled for scheduled or adhoc builds')
- booleanParam(
- name: 'EXECUTE_LONG_TESTS',
- defaultValue: false,
- description: 'Flag to determine if long integration tests should be executed for scheduled or adhoc builds')
- choice(
- name: 'EVENT_LOOP_MANAGER',
- choices: ['LIBEV', 'GEVENT', 'EVENTLET', 'ASYNCIO', 'ASYNCORE', 'TWISTED'],
- description: '''Event loop manager to utilize for scheduled or adhoc builds
-
-
-
-
- Choice |
- Description |
-
-
- LIBEV |
- A full-featured and high-performance event loop that is loosely modeled after libevent, but without its limitations and bugs |
-
-
- GEVENT |
- A co-routine -based Python networking library that uses greenlet to provide a high-level synchronous API on top of the libev or libuv event loop |
-
-
- EVENTLET |
- A concurrent networking library for Python that allows you to change how you run your code, not how you write it |
-
-
- ASYNCIO |
- A library to write concurrent code using the async/await syntax |
-
-
- ASYNCORE |
- A module provides the basic infrastructure for writing asynchronous socket service clients and servers |
-
-
- TWISTED |
- An event-driven networking engine written in Python and licensed under the open source MIT license |
-
-
''')
- choice(
- name: 'PROFILE',
- choices: ['NONE', 'DSE-SMOKE-TEST', 'EVENT-LOOP', 'UPGRADE'],
- description: '''Profile to utilize for scheduled or adhoc builds
-
-
-
-
- Choice |
- Description |
-
-
- NONE |
- Execute the standard tests for the driver |
-
-
- DSE-SMOKE-TEST |
- Execute only the DataStax Enterprise smoke tests |
-
-
- EVENT-LOOP |
- Execute only the event loop tests for the specified event loop manager (see: EVENT_LOOP_MANAGER) |
-
-
- UPGRADE |
- Execute only the upgrade tests |
-
-
''')
- choice(
- name: 'CI_SCHEDULE',
- choices: ['DO-NOT-CHANGE-THIS-SELECTION', 'WEEKNIGHTS', 'WEEKENDS'],
- description: 'CI testing schedule to execute periodically scheduled builds and tests of the driver (DO NOT CHANGE THIS SELECTION)')
- string(
- name: 'CI_SCHEDULE_PYTHON_VERSION',
- defaultValue: 'DO-NOT-CHANGE-THIS-SELECTION',
- description: 'CI testing python version to utilize for scheduled test runs of the driver (DO NOT CHANGE THIS SELECTION)')
- string(
- name: 'CI_SCHEDULE_SERVER_VERSION',
- defaultValue: 'DO-NOT-CHANGE-THIS-SELECTION',
- description: 'CI testing server version to utilize for scheduled test runs of the driver (DO NOT CHANGE THIS SELECTION)')
- }
-
- triggers {
- parameterizedCron((branchPatternCron.matcher(env.BRANCH_NAME).matches() && !riptanoPatternCron.matcher(GIT_URL).find()) ? """
- # Every weeknight (Monday - Friday) around 4:00 AM
- # These schedules will run with and without Cython enabled for Python v2.7.18 and v3.5.9
- H 4 * * 1-5 %CI_SCHEDULE=WEEKNIGHTS;EVENT_LOOP_MANAGER=LIBEV;CI_SCHEDULE_PYTHON_VERSION=2.7.18;CI_SCHEDULE_SERVER_VERSION=2.2 3.11 dse-5.1 dse-6.0 dse-6.7
- H 4 * * 1-5 %CI_SCHEDULE=WEEKNIGHTS;EVENT_LOOP_MANAGER=LIBEV;CI_SCHEDULE_PYTHON_VERSION=3.5.9;CI_SCHEDULE_SERVER_VERSION=2.2 3.11 dse-5.1 dse-6.0 dse-6.7
-
- # Every Saturday around 12:00, 4:00 and 8:00 PM
- # These schedules are for weekly libev event manager runs with and without Cython for most of the Python versions (excludes v3.5.9.x)
- H 12 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=LIBEV;CI_SCHEDULE_PYTHON_VERSION=2.7.18;CI_SCHEDULE_SERVER_VERSION=2.1 3.0 dse-5.1 dse-6.0 dse-6.7
- H 12 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=LIBEV;CI_SCHEDULE_PYTHON_VERSION=3.4.10;CI_SCHEDULE_SERVER_VERSION=2.1 3.0 dse-5.1 dse-6.0 dse-6.7
- H 12 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=LIBEV;CI_SCHEDULE_PYTHON_VERSION=3.6.10;CI_SCHEDULE_SERVER_VERSION=2.1 3.0 dse-5.1 dse-6.0 dse-6.7
- H 12 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=LIBEV;CI_SCHEDULE_PYTHON_VERSION=3.7.7;CI_SCHEDULE_SERVER_VERSION=2.1 3.0 dse-5.1 dse-6.0 dse-6.7
- H 12 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=LIBEV;CI_SCHEDULE_PYTHON_VERSION=3.8.3;CI_SCHEDULE_SERVER_VERSION=2.1 3.0 dse-5.1 dse-6.0 dse-6.7
- # These schedules are for weekly gevent event manager event loop only runs with and without Cython for most of the Python versions (excludes v3.4.10.x)
- H 16 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=GEVENT;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=2.7.18;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 16 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=GEVENT;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.5.9;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 16 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=GEVENT;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.6.10;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 16 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=GEVENT;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.7.7;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 16 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=GEVENT;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.8.3;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- # These schedules are for weekly eventlet event manager event loop only runs with and without Cython for most of the Python versions (excludes v3.4.10.x)
- H 20 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=EVENTLET;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=2.7.18;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 20 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=EVENTLET;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.5.9;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 20 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=EVENTLET;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.6.10;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 20 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=EVENTLET;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.7.7;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 20 * * 6 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=EVENTLET;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.8.3;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
-
- # Every Sunday around 12:00 and 4:00 AM
- # These schedules are for weekly asyncore event manager event loop only runs with and without Cython for most of the Python versions (excludes v3.4.10.x)
- H 0 * * 7 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=ASYNCORE;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=2.7.18;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 0 * * 7 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=ASYNCORE;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.5.9;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 0 * * 7 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=ASYNCORE;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.6.10;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 0 * * 7 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=ASYNCORE;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.7.7;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 0 * * 7 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=ASYNCORE;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.8.3;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- # These schedules are for weekly twisted event manager event loop only runs with and without Cython for most of the Python versions (excludes v3.4.10.x)
- H 4 * * 7 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=TWISTED;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=2.7.18;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 4 * * 7 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=TWISTED;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.5.9;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 4 * * 7 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=TWISTED;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.6.10;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 4 * * 7 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=TWISTED;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.7.7;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- H 4 * * 7 %CI_SCHEDULE=WEEKENDS;EVENT_LOOP_MANAGER=TWISTED;PROFILE=EVENT-LOOP;CI_SCHEDULE_PYTHON_VERSION=3.8.3;CI_SCHEDULE_SERVER_VERSION=2.1 2.2 3.0 3.11 dse-5.1 dse-6.0 dse-6.7
- """ : "")
- }
-
- environment {
- OS_VERSION = 'ubuntu/bionic64/python-driver'
- CYTHON_ENABLED = "${params.CYTHON ? 'True' : 'False'}"
- EVENT_LOOP_MANAGER = "${params.EVENT_LOOP_MANAGER.toLowerCase()}"
- EXECUTE_LONG_TESTS = "${params.EXECUTE_LONG_TESTS ? 'True' : 'False'}"
- CCM_ENVIRONMENT_SHELL = '/usr/local/bin/ccm_environment.sh'
- CCM_MAX_HEAP_SIZE = '1536M'
- }
-
- stages {
- stage ('Per-Commit') {
- options {
- timeout(time: 2, unit: 'HOURS')
- }
- when {
- beforeAgent true
- branch pattern: '((dev|long)-)?python-.*', comparator: 'REGEXP'
- allOf {
- expression { params.ADHOC_BUILD_TYPE == 'BUILD' }
- expression { params.CI_SCHEDULE == 'DO-NOT-CHANGE-THIS-SELECTION' }
- not { buildingTag() }
- }
- }
-
- matrix {
- axes {
- axis {
- name 'CASSANDRA_VERSION'
- values '3.11', // Current Apache Cassandra
- 'dse-6.8' // Current DataStax Enterprise
- }
- axis {
- name 'PYTHON_VERSION'
- values '2.7.18', '3.5.9'
- }
- axis {
- name 'CYTHON_ENABLED'
- values 'False'
- }
- }
-
- agent {
- label "${OS_VERSION}"
- }
-
- stages {
- stage('Initialize-Environment') {
- steps {
- initializeEnvironment()
- script {
- if (env.BUILD_STATED_SLACK_NOTIFIED != 'true') {
- notifySlack()
- }
- }
- }
- }
- stage('Describe-Build') {
- steps {
- describePerCommitStage()
- }
- }
- stage('Install-Driver-And-Compile-Extensions') {
- steps {
- installDriverAndCompileExtensions()
- }
- }
- stage('Execute-Tests') {
- steps {
-
- script {
- if (env.BRANCH_NAME ==~ /long-python.*/) {
- withEnv(["EXECUTE_LONG_TESTS=True"]) {
- executeTests()
- }
- }
- else {
- executeTests()
- }
- }
- }
- post {
- always {
- junit testResults: '*_results.xml'
- }
- }
- }
- }
- }
- post {
- always {
- node('master') {
- submitCIMetrics('commit')
- }
- }
- aborted {
- notifySlack('aborted')
- }
- success {
- notifySlack('completed')
- }
- unstable {
- notifySlack('unstable')
- }
- failure {
- notifySlack('FAILED')
- }
- }
- }
-
- stage ('Scheduled-Testing') {
- when {
- beforeAgent true
- allOf {
- expression { params.ADHOC_BUILD_TYPE == 'BUILD' }
- expression { params.CI_SCHEDULE != 'DO-NOT-CHANGE-THIS-SELECTION' }
- not { buildingTag() }
- }
- }
- matrix {
- axes {
- axis {
- name 'CASSANDRA_VERSION'
- values '2.1', // Legacy Apache Cassandra
- '2.2', // Legacy Apache Cassandra
- '3.0', // Previous Apache Cassandra
- '3.11', // Current Apache Cassandra
- 'dse-5.1', // Legacy DataStax Enterprise
- 'dse-6.0', // Previous DataStax Enterprise
- 'dse-6.7' // Current DataStax Enterprise
- }
- axis {
- name 'CYTHON_ENABLED'
- values 'True', 'False'
- }
- }
- when {
- beforeAgent true
- allOf {
- expression { return params.CI_SCHEDULE_SERVER_VERSION.split(' ').any { it =~ /(ALL|${env.CASSANDRA_VERSION})/ } }
- }
- }
-
- environment {
- PYTHON_VERSION = "${params.CI_SCHEDULE_PYTHON_VERSION}"
- }
- agent {
- label "${OS_VERSION}"
- }
-
- stages {
- stage('Initialize-Environment') {
- steps {
- initializeEnvironment()
- script {
- if (env.BUILD_STATED_SLACK_NOTIFIED != 'true') {
- notifySlack()
- }
- }
- }
- }
- stage('Describe-Build') {
- steps {
- describeScheduledTestingStage()
- }
- }
- stage('Install-Driver-And-Compile-Extensions') {
- steps {
- installDriverAndCompileExtensions()
- }
- }
- stage('Execute-Tests') {
- steps {
- executeTests()
- }
- post {
- always {
- junit testResults: '*_results.xml'
- }
- }
- }
- }
- }
- post {
- aborted {
- notifySlack('aborted')
- }
- success {
- notifySlack('completed')
- }
- unstable {
- notifySlack('unstable')
- }
- failure {
- notifySlack('FAILED')
- }
- }
- }
-
-
- stage('Adhoc-Testing') {
- when {
- beforeAgent true
- allOf {
- expression { params.ADHOC_BUILD_TYPE == 'BUILD-AND-EXECUTE-TESTS' }
- not { buildingTag() }
- }
- }
-
- environment {
- CYTHON_ENABLED = "${params.CYTHON ? 'True' : 'False'}"
- PYTHON_VERSION = "${params.ADHOC_BUILD_AND_EXECUTE_TESTS_PYTHON_VERSION}"
- }
-
- matrix {
- axes {
- axis {
- name 'CASSANDRA_VERSION'
- values '2.1', // Legacy Apache Cassandra
- '2.2', // Legacy Apache Cassandra
- '3.0', // Previous Apache Cassandra
- '3.11', // Current Apache Cassandra
- '4.0', // Development Apache Cassandra
- 'dse-5.0', // Long Term Support DataStax Enterprise
- 'dse-5.1', // Legacy DataStax Enterprise
- 'dse-6.0', // Previous DataStax Enterprise
- 'dse-6.7', // Current DataStax Enterprise
- 'dse-6.8' // Development DataStax Enterprise
- }
- }
- when {
- beforeAgent true
- allOf {
- expression { params.ADHOC_BUILD_AND_EXECUTE_TESTS_SERVER_VERSION ==~ /(ALL|${env.CASSANDRA_VERSION})/ }
- }
- }
-
- agent {
- label "${OS_VERSION}"
- }
-
- stages {
- stage('Describe-Build') {
- steps {
- describeAdhocTestingStage()
- }
- }
- stage('Initialize-Environment') {
- steps {
- initializeEnvironment()
- }
- }
- stage('Install-Driver-And-Compile-Extensions') {
- steps {
- installDriverAndCompileExtensions()
- }
- }
- stage('Execute-Tests') {
- steps {
- executeTests()
- }
- post {
- always {
- junit testResults: '*_results.xml'
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/build.yaml.bak b/build.yaml.bak
deleted file mode 100644
index 100c86558a..0000000000
--- a/build.yaml.bak
+++ /dev/null
@@ -1,264 +0,0 @@
-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"