1278 lines
40 KiB
YAML
1278 lines
40 KiB
YAML
########################################
|
|
# Evergreen Template for MongoDB Drivers
|
|
########################################
|
|
|
|
# When a task that used to pass starts to fail
|
|
# Go through all versions that may have been skipped to detect
|
|
# when the task started failing
|
|
stepback: true
|
|
|
|
# Mark a failure as a system/bootstrap failure (purple box) rather then a task
|
|
# failure by default.
|
|
# Actual testing tasks are marked with `type: test`
|
|
command_type: system
|
|
|
|
# Protect ourself against rogue test case, or curl gone wild, that runs forever
|
|
# Good rule of thumb: the averageish length a task takes, times 5
|
|
# That roughly accounts for variable system performance for various buildvariants
|
|
exec_timeout_secs: 1800 # 6 minutes is the longest we'll ever run
|
|
|
|
# What to do when evergreen hits the timeout (`post:` tasks are run automatically)
|
|
timeout:
|
|
- command: shell.exec
|
|
params:
|
|
script: |
|
|
ls -la
|
|
|
|
functions:
|
|
"fetch source":
|
|
# Executes git clone and applies the submitted patch, if any
|
|
- command: git.get_project
|
|
params:
|
|
directory: "src"
|
|
# Applies the subitted patch, if any
|
|
# Deprecated. Should be removed. But still needed for certain agents (ZAP)
|
|
- command: git.apply_patch
|
|
# Make an evergreen exapanstion file with dynamic values
|
|
- command: shell.exec
|
|
params:
|
|
working_dir: "src"
|
|
script: |
|
|
# Get the current unique version of this checkout
|
|
if [ "${is_patch}" = "true" ]; then
|
|
CURRENT_VERSION=$(git describe)-patch-${version_id}
|
|
else
|
|
CURRENT_VERSION=latest
|
|
fi
|
|
|
|
export DRIVERS_TOOLS="$(pwd)/../drivers-tools"
|
|
export PROJECT_DIRECTORY="$(pwd)"
|
|
|
|
# Python has cygwin path problems on Windows. Detect prospective mongo-orchestration home directory
|
|
if [ "Windows_NT" = "$OS" ]; then # Magic variable in cygwin
|
|
export DRIVERS_TOOLS=$(cygpath -m $DRIVERS_TOOLS)
|
|
export PROJECT_DIRECTORY=$(cygpath -m $PROJECT_DIRECTORY)
|
|
fi
|
|
|
|
export MONGO_ORCHESTRATION_HOME="$DRIVERS_TOOLS/.evergreen/orchestration"
|
|
export MONGODB_BINARIES="$DRIVERS_TOOLS/mongodb/bin"
|
|
export UPLOAD_BUCKET="${project}"
|
|
|
|
cat <<EOT > expansion.yml
|
|
CURRENT_VERSION: "$CURRENT_VERSION"
|
|
DRIVERS_TOOLS: "$DRIVERS_TOOLS"
|
|
MONGO_ORCHESTRATION_HOME: "$MONGO_ORCHESTRATION_HOME"
|
|
MONGODB_BINARIES: "$MONGODB_BINARIES"
|
|
UPLOAD_BUCKET: "$UPLOAD_BUCKET"
|
|
PROJECT_DIRECTORY: "$PROJECT_DIRECTORY"
|
|
PREPARE_SHELL: |
|
|
set -o errexit
|
|
set -o xtrace
|
|
export DRIVERS_TOOLS="$DRIVERS_TOOLS"
|
|
export MONGO_ORCHESTRATION_HOME="$MONGO_ORCHESTRATION_HOME"
|
|
export MONGODB_BINARIES="$MONGODB_BINARIES"
|
|
export UPLOAD_BUCKET="$UPLOAD_BUCKET"
|
|
export PROJECT_DIRECTORY="$PROJECT_DIRECTORY"
|
|
|
|
export TMPDIR="$MONGO_ORCHESTRATION_HOME/db"
|
|
export PATH="$MONGODB_BINARIES:$PATH"
|
|
export PROJECT="${project}"
|
|
EOT
|
|
# See what we've done
|
|
cat expansion.yml
|
|
|
|
# Load the expansion file to make an evergreen variable with the current unique version
|
|
- command: expansions.update
|
|
params:
|
|
file: src/expansion.yml
|
|
|
|
"prepare resources":
|
|
- command: shell.exec
|
|
params:
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
rm -rf $DRIVERS_TOOLS
|
|
if [ "${project}" = "drivers-tools" ]; then
|
|
# If this was a patch build, doing a fresh clone would not actually test the patch
|
|
cp -R ${PROJECT_DIRECTORY}/ $DRIVERS_TOOLS
|
|
else
|
|
git clone git://github.com/mongodb-labs/drivers-evergreen-tools.git $DRIVERS_TOOLS
|
|
fi
|
|
echo "{ \"releases\": { \"default\": \"$MONGODB_BINARIES\" }}" > $MONGO_ORCHESTRATION_HOME/orchestration.config
|
|
|
|
"upload release":
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${aws_key}
|
|
aws_secret: ${aws_secret}
|
|
local_file: ${project}.tar.gz
|
|
remote_file: ${UPLOAD_BUCKET}/${project}-${CURRENT_VERSION}.tar.gz
|
|
bucket: mciuploads
|
|
permissions: public-read
|
|
content_type: ${content_type|application/x-gzip}
|
|
|
|
# Upload build artifacts that other tasks may depend on
|
|
# Note this URL needs to be totally unique, while predictable for the next task
|
|
# so it can automatically download the artifacts
|
|
"upload build":
|
|
# Compress and upload the entire build directory
|
|
- command: archive.targz_pack
|
|
params:
|
|
# Example: mongo_c_driver_releng_9dfb7d741efbca16faa7859b9349d7a942273e43_16_11_08_19_29_52.tar.gz
|
|
target: "${build_id}.tar.gz"
|
|
source_dir: ${PROJECT_DIRECTORY}/
|
|
include:
|
|
- "./**"
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${aws_key}
|
|
aws_secret: ${aws_secret}
|
|
local_file: ${build_id}.tar.gz
|
|
# Example: /mciuploads/${UPLOAD_BUCKET}/gcc49/9dfb7d741efbca16faa7859b9349d7a942273e43/debug-compile-nosasl-nossl/mongo_c_driver_releng_9dfb7d741efbca16faa7859b9349d7a942273e43_16_11_08_19_29_52.tar.gz
|
|
remote_file: ${UPLOAD_BUCKET}/${build_variant}/${revision}/${task_name}/${build_id}.tar.gz
|
|
bucket: mciuploads
|
|
permissions: public-read
|
|
content_type: ${content_type|application/x-gzip}
|
|
|
|
"fetch build":
|
|
- command: shell.exec
|
|
params:
|
|
continue_on_err: true
|
|
script: "set -o xtrace && rm -rf ${PROJECT_DIRECTORY}"
|
|
- command: s3.get
|
|
params:
|
|
aws_key: ${aws_key}
|
|
aws_secret: ${aws_secret}
|
|
remote_file: ${UPLOAD_BUCKET}/${build_variant}/${revision}/${BUILD_NAME}/${build_id}.tar.gz
|
|
bucket: mciuploads
|
|
local_file: build.tar.gz
|
|
- command: shell.exec
|
|
params:
|
|
continue_on_err: true
|
|
# EVG-1105: Use s3.get extract_to: ./
|
|
script: "set -o xtrace && cd .. && rm -rf ${PROJECT_DIRECTORY} && mkdir ${PROJECT_DIRECTORY}/ && tar xf build.tar.gz -C ${PROJECT_DIRECTORY}/"
|
|
|
|
"exec compile script" :
|
|
- command: shell.exec
|
|
type: test
|
|
params:
|
|
working_dir: "src"
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
[ -f ${PROJECT_DIRECTORY}/${file} ] && BUILDTOOL="${buildtool}" sh ${PROJECT_DIRECTORY}/${file} || echo "${PROJECT_DIRECTORY}/${file} not available, skipping"
|
|
|
|
"exec script" :
|
|
- command: shell.exec
|
|
type: test
|
|
params:
|
|
working_dir: "src"
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
[ -f ${PROJECT_DIRECTORY}/${file} ] && sh ${PROJECT_DIRECTORY}/${file} || echo "${PROJECT_DIRECTORY}/${file} not available, skipping"
|
|
|
|
"upload docs" :
|
|
- command: shell.exec
|
|
params:
|
|
silent: true
|
|
script: |
|
|
export AWS_ACCESS_KEY_ID=${aws_key}
|
|
export AWS_SECRET_ACCESS_KEY=${aws_secret}
|
|
aws s3 cp ${PROJECT_DIRECTORY}/doc/html s3://mciuploads/${UPLOAD_BUCKET}/docs/${CURRENT_VERSION} --recursive --acl public-read --region us-east-1
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${aws_key}
|
|
aws_secret: ${aws_secret}
|
|
local_file: ${PROJECT_DIRECTORY}/doc/html/index.html
|
|
remote_file: ${UPLOAD_BUCKET}/docs/${CURRENT_VERSION}/index.html
|
|
bucket: mciuploads
|
|
permissions: public-read
|
|
content_type: text/html
|
|
display_name: "Rendered docs"
|
|
|
|
"upload coverage" :
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${aws_key}
|
|
aws_secret: ${aws_secret}
|
|
local_file: ${PROJECT_DIRECTORY}/.coverage
|
|
optional: true
|
|
# Upload the coverage report for all tasks in a single build to the same directory.
|
|
remote_file: ${UPLOAD_BUCKET}/coverage/${revision}/${version_id}/coverage/coverage.${build_variant}.${task_name}
|
|
bucket: mciuploads
|
|
permissions: public-read
|
|
content_type: text/html
|
|
display_name: "Raw Coverage Report"
|
|
|
|
"download and merge coverage" :
|
|
- command: shell.exec
|
|
params:
|
|
silent: true
|
|
working_dir: "src"
|
|
script: |
|
|
export AWS_ACCESS_KEY_ID=${aws_key}
|
|
export AWS_SECRET_ACCESS_KEY=${aws_secret}
|
|
|
|
# Download all the task coverage files.
|
|
aws s3 cp --recursive s3://mciuploads/${UPLOAD_BUCKET}/coverage/${revision}/${version_id}/coverage/ coverage/
|
|
- command: shell.exec
|
|
params:
|
|
working_dir: "src"
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
# Coverage combine merges (and removes) all the coverage files and
|
|
# generates a new .coverage file in the current directory.
|
|
ls -la coverage/
|
|
/opt/python/3.6/bin/python3 -m coverage combine coverage/coverage.*
|
|
/opt/python/3.6/bin/python3 -m coverage html -d htmlcov
|
|
# Upload the resulting html coverage report.
|
|
- command: shell.exec
|
|
params:
|
|
silent: true
|
|
working_dir: "src"
|
|
script: |
|
|
export AWS_ACCESS_KEY_ID=${aws_key}
|
|
export AWS_SECRET_ACCESS_KEY=${aws_secret}
|
|
aws s3 cp htmlcov/ s3://mciuploads/${UPLOAD_BUCKET}/coverage/${revision}/${version_id}/htmlcov/ --recursive --acl public-read --region us-east-1
|
|
# Attach the index.html with s3.put so it shows up in the Evergreen UI.
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${aws_key}
|
|
aws_secret: ${aws_secret}
|
|
local_file: ${PROJECT_DIRECTORY}/htmlcov/index.html
|
|
remote_file: ${UPLOAD_BUCKET}/coverage/${revision}/${version_id}/htmlcov/index.html
|
|
bucket: mciuploads
|
|
permissions: public-read
|
|
content_type: text/html
|
|
display_name: "Coverage Report HTML"
|
|
|
|
"upload scan artifacts" :
|
|
- command: shell.exec
|
|
type: test
|
|
params:
|
|
script: |
|
|
cd
|
|
if find ${PROJECT_DIRECTORY}/scan -name \*.html | grep -q html; then
|
|
(cd ${PROJECT_DIRECTORY}/scan && find . -name index.html -exec echo "<li><a href='{}'>{}</a></li>" \;) >> scan.html
|
|
else
|
|
echo "No issues found" > scan.html
|
|
fi
|
|
- command: shell.exec
|
|
params:
|
|
silent: true
|
|
script: |
|
|
export AWS_ACCESS_KEY_ID=${aws_key}
|
|
export AWS_SECRET_ACCESS_KEY=${aws_secret}
|
|
aws s3 cp ${PROJECT_DIRECTORY}/scan s3://mciuploads/${UPLOAD_BUCKET}/${build_variant}/${revision}/${version_id}/${build_id}/scan/ --recursive --acl public-read --region us-east-1
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${aws_key}
|
|
aws_secret: ${aws_secret}
|
|
local_file: ${PROJECT_DIRECTORY}/scan.html
|
|
remote_file: ${UPLOAD_BUCKET}/${build_variant}/${revision}/${version_id}/${build_id}/scan/index.html
|
|
bucket: mciuploads
|
|
permissions: public-read
|
|
content_type: text/html
|
|
display_name: "Scan Build Report"
|
|
|
|
"upload mo artifacts":
|
|
- command: shell.exec
|
|
params:
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
find $MONGO_ORCHESTRATION_HOME -name \*.log | xargs tar czf mongodb-logs.tar.gz
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${aws_key}
|
|
aws_secret: ${aws_secret}
|
|
local_file: mongodb-logs.tar.gz
|
|
remote_file: ${UPLOAD_BUCKET}/${build_variant}/${revision}/${version_id}/${build_id}/logs/${task_id}-${execution}-mongodb-logs.tar.gz
|
|
bucket: mciuploads
|
|
permissions: public-read
|
|
content_type: ${content_type|application/x-gzip}
|
|
display_name: "mongodb-logs.tar.gz"
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${aws_key}
|
|
aws_secret: ${aws_secret}
|
|
local_file: ${DRIVERS_TOOLS}/.evergreen/orchestration/server.log
|
|
remote_file: ${UPLOAD_BUCKET}/${build_variant}/${revision}/${version_id}/${build_id}/logs/${task_id}-${execution}-orchestration.log
|
|
bucket: mciuploads
|
|
permissions: public-read
|
|
content_type: ${content_type|text/plain}
|
|
display_name: "orchestration.log"
|
|
|
|
"upload working dir":
|
|
- command: archive.targz_pack
|
|
params:
|
|
target: "working-dir.tar.gz"
|
|
source_dir: ${PROJECT_DIRECTORY}/
|
|
include:
|
|
- "./**"
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${aws_key}
|
|
aws_secret: ${aws_secret}
|
|
local_file: working-dir.tar.gz
|
|
remote_file: ${UPLOAD_BUCKET}/${build_variant}/${revision}/${version_id}/${build_id}/artifacts/${task_id}-${execution}-working-dir.tar.gz
|
|
bucket: mciuploads
|
|
permissions: public-read
|
|
content_type: ${content_type|application/x-gzip}
|
|
display_name: "working-dir.tar.gz"
|
|
- command: archive.targz_pack
|
|
params:
|
|
target: "drivers-dir.tar.gz"
|
|
source_dir: ${DRIVERS_TOOLS}
|
|
include:
|
|
- "./**"
|
|
exclude_files:
|
|
# Windows cannot read the mongod *.lock files because they are locked.
|
|
- "*.lock"
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${aws_key}
|
|
aws_secret: ${aws_secret}
|
|
local_file: drivers-dir.tar.gz
|
|
remote_file: ${UPLOAD_BUCKET}/${build_variant}/${revision}/${version_id}/${build_id}/artifacts/${task_id}-${execution}-drivers-dir.tar.gz
|
|
bucket: mciuploads
|
|
permissions: public-read
|
|
content_type: ${content_type|application/x-gzip}
|
|
display_name: "drivers-dir.tar.gz"
|
|
|
|
"upload test results":
|
|
- command: attach.results
|
|
params:
|
|
file_location: "${DRIVERS_TOOLS}/results.json"
|
|
- command: attach.xunit_results
|
|
params:
|
|
file: "src/xunit-results/TEST-*.xml"
|
|
|
|
"bootstrap mongo-orchestration":
|
|
- command: shell.exec
|
|
params:
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
MONGODB_VERSION=${VERSION} TOPOLOGY=${TOPOLOGY} AUTH=${AUTH} SSL=${SSL} STORAGE_ENGINE=${STORAGE_ENGINE} sh ${DRIVERS_TOOLS}/.evergreen/run-orchestration.sh
|
|
# run-orchestration generates expansion file with the MONGODB_URI for the cluster
|
|
- command: expansions.update
|
|
params:
|
|
file: mo-expansion.yml
|
|
|
|
"stop mongo-orchestration":
|
|
- command: shell.exec
|
|
params:
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
sh ${DRIVERS_TOOLS}/.evergreen/stop-orchestration.sh
|
|
|
|
"run mod_wsgi tests":
|
|
- command: shell.exec
|
|
type: test
|
|
params:
|
|
working_dir: "src"
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
PYTHON_BINARY=${PYTHON_BINARY} MOD_WSGI_VERSION=${MOD_WSGI_VERSION} PROJECT_DIRECTORY=${PROJECT_DIRECTORY} sh ${PROJECT_DIRECTORY}/.evergreen/run-mod-wsgi-tests.sh
|
|
|
|
"run mockupdb tests":
|
|
- command: shell.exec
|
|
type: test
|
|
params:
|
|
working_dir: "src"
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
PYTHON_BINARY=${PYTHON_BINARY} PROJECT_DIRECTORY=${PROJECT_DIRECTORY} sh ${PROJECT_DIRECTORY}/.evergreen/run-mockupdb-tests.sh
|
|
|
|
"run cdecimal tests":
|
|
- command: shell.exec
|
|
type: test
|
|
params:
|
|
working_dir: "src"
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
PYTHON_BINARY=${PYTHON_BINARY} sh ${PROJECT_DIRECTORY}/.evergreen/run-cdecimal-tests.sh
|
|
|
|
"run doctests":
|
|
- command: shell.exec
|
|
type: test
|
|
params:
|
|
working_dir: "src"
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
PYTHON_BINARY=${PYTHON_BINARY} sh ${PROJECT_DIRECTORY}/.evergreen/run-doctests.sh
|
|
|
|
"run tests":
|
|
- command: shell.exec
|
|
type: test
|
|
params:
|
|
working_dir: "src"
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
PYTHON_BINARY=${PYTHON_BINARY} GREEN_FRAMEWORK=${GREEN_FRAMEWORK} C_EXTENSIONS=${C_EXTENSIONS} COVERAGE=${COVERAGE} AUTH=${AUTH} SSL=${SSL} sh ${PROJECT_DIRECTORY}/.evergreen/run-tests.sh
|
|
|
|
"run enterprise auth tests":
|
|
- command: shell.exec
|
|
type: test
|
|
params:
|
|
silent: true
|
|
working_dir: "src"
|
|
script: |
|
|
# DO NOT ECHO WITH XTRACE (which PREPARE_SHELL does)
|
|
PYTHON_BINARY=${PYTHON_BINARY} SASL_HOST=${sasl_host} SASL_PORT=${sasl_port} SASL_USER=${sasl_user} SASL_PASS=${sasl_pass} SASL_DB=${sasl_db} PRINCIPAL=${principal} GSSAPI_DB=${gssapi_db} KEYTAB_BASE64=${keytab_base64} PROJECT_DIRECTORY=${PROJECT_DIRECTORY} sh ${PROJECT_DIRECTORY}/.evergreen/run-enterprise-auth-tests.sh
|
|
|
|
"cleanup":
|
|
- command: shell.exec
|
|
params:
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
rm -rf $DRIVERS_TOOLS || true
|
|
|
|
"fix absolute paths":
|
|
- command: shell.exec
|
|
params:
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
for filename in $(find ${DRIVERS_TOOLS} -name \*.json); do
|
|
perl -p -i -e "s|ABSOLUTE_PATH_REPLACEMENT_TOKEN|${DRIVERS_TOOLS}|g" $filename
|
|
done
|
|
|
|
"windows fix":
|
|
- command: shell.exec
|
|
params:
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
for i in $(find ${DRIVERS_TOOLS}/.evergreen ${PROJECT_DIRECTORY}/.evergreen -name \*.sh); do
|
|
cat $i | tr -d '\r' > $i.new
|
|
mv $i.new $i
|
|
done
|
|
# Copy client certificate because symlinks do not work on Windows.
|
|
cp ${DRIVERS_TOOLS}/.evergreen/x509gen/client.pem ${MONGO_ORCHESTRATION_HOME}/lib/client.pem
|
|
|
|
"make files executable":
|
|
- command: shell.exec
|
|
params:
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
for i in $(find ${DRIVERS_TOOLS}/.evergreen ${PROJECT_DIRECTORY}/.evergreen -name \*.sh); do
|
|
chmod +x $i
|
|
done
|
|
|
|
"init test-results":
|
|
- command: shell.exec
|
|
params:
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
echo '{"results": [{ "status": "FAIL", "test_file": "Build", "log_raw": "No test-results.json found was created" } ]}' > ${PROJECT_DIRECTORY}/test-results.json
|
|
|
|
"install dependencies":
|
|
- command: shell.exec
|
|
params:
|
|
working_dir: "src"
|
|
script: |
|
|
${PREPARE_SHELL}
|
|
file="${PROJECT_DIRECTORY}/.evergreen/install-dependencies.sh"
|
|
# Don't use ${file} syntax here because evergreen treats it as an empty expansion.
|
|
[ -f "$file" ] && sh $file || echo "$file not available, skipping"
|
|
|
|
pre:
|
|
- func: "fetch source"
|
|
- func: "prepare resources"
|
|
- func: "windows fix"
|
|
- func: "fix absolute paths"
|
|
- func: "init test-results"
|
|
- func: "make files executable"
|
|
- func: "install dependencies"
|
|
|
|
post:
|
|
# Disabled, causing timeouts
|
|
# - func: "upload working dir"
|
|
- func: "upload coverage"
|
|
- func: "upload mo artifacts"
|
|
- func: "upload test results"
|
|
- func: "stop mongo-orchestration"
|
|
- func: "cleanup"
|
|
|
|
tasks:
|
|
|
|
|
|
# Wildcard task. Do you need to find out what tools are available and where?
|
|
# Throw it here, and execute this task on all buildvariants
|
|
- name: getdata
|
|
commands:
|
|
- command: shell.exec
|
|
type: test
|
|
params:
|
|
script: |
|
|
set -o xtrace
|
|
. ${DRIVERS_TOOLS}/.evergreen/download-mongodb.sh || true
|
|
get_distro || true
|
|
echo $DISTRO
|
|
echo $MARCH
|
|
echo $OS
|
|
uname -a || true
|
|
ls /etc/*release* || true
|
|
cc --version || true
|
|
gcc --version || true
|
|
clang --version || true
|
|
gcov --version || true
|
|
lcov --version || true
|
|
llvm-cov --version || true
|
|
echo $PATH
|
|
ls -la /usr/local/Cellar/llvm/*/bin/ || true
|
|
ls -la /usr/local/Cellar/ || true
|
|
scan-build --version || true
|
|
genhtml --version || true
|
|
valgrind --version || true
|
|
|
|
# Standard test tasks {{{
|
|
|
|
- name: "mockupdb"
|
|
tags: ["mockupdb"]
|
|
commands:
|
|
- func: "run mockupdb tests"
|
|
|
|
- name: "doctests"
|
|
tags: ["doctests"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "replica_set"
|
|
- func: "run doctests"
|
|
|
|
- name: "test-2.6-standalone"
|
|
tags: ["2.6", "standalone"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "2.6"
|
|
TOPOLOGY: "server"
|
|
- func: "run tests"
|
|
|
|
- name: "test-2.6-replica_set"
|
|
tags: ["2.6", "replica_set"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "2.6"
|
|
TOPOLOGY: "replica_set"
|
|
- func: "run tests"
|
|
|
|
- name: "test-2.6-sharded_cluster"
|
|
tags: ["2.6", "sharded_cluster"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "2.6"
|
|
TOPOLOGY: "sharded_cluster"
|
|
- func: "run tests"
|
|
|
|
- name: "test-3.0-standalone"
|
|
tags: ["3.0", "standalone"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "3.0"
|
|
TOPOLOGY: "server"
|
|
- func: "run tests"
|
|
|
|
- name: "test-3.0-replica_set"
|
|
tags: ["3.0", "replica_set"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "3.0"
|
|
TOPOLOGY: "replica_set"
|
|
- func: "run tests"
|
|
|
|
- name: "test-3.0-sharded_cluster"
|
|
tags: ["3.0", "sharded_cluster"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "3.0"
|
|
TOPOLOGY: "sharded_cluster"
|
|
- func: "run tests"
|
|
|
|
- name: "test-3.2-standalone"
|
|
tags: ["3.2", "standalone"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "3.2"
|
|
TOPOLOGY: "server"
|
|
- func: "run tests"
|
|
|
|
- name: "test-3.2-replica_set"
|
|
tags: ["3.2", "replica_set"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "3.2"
|
|
TOPOLOGY: "replica_set"
|
|
- func: "run tests"
|
|
|
|
- name: "test-3.2-sharded_cluster"
|
|
tags: ["3.2", "sharded_cluster"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "3.2"
|
|
TOPOLOGY: "sharded_cluster"
|
|
- func: "run tests"
|
|
|
|
- name: "test-3.4-standalone"
|
|
tags: ["3.4", "standalone"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "3.4"
|
|
TOPOLOGY: "server"
|
|
- func: "run tests"
|
|
|
|
- name: "test-3.4-replica_set"
|
|
tags: ["3.4", "replica_set"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "3.4"
|
|
TOPOLOGY: "replica_set"
|
|
- func: "run tests"
|
|
|
|
- name: "test-3.4-sharded_cluster"
|
|
tags: ["3.4", "sharded_cluster"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "3.4"
|
|
TOPOLOGY: "sharded_cluster"
|
|
- func: "run tests"
|
|
|
|
- name: "test-latest-standalone"
|
|
tags: ["latest", "standalone"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "server"
|
|
- func: "run tests"
|
|
|
|
- name: "test-latest-replica_set"
|
|
tags: ["latest", "replica_set"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "replica_set"
|
|
- func: "run tests"
|
|
|
|
- name: "test-latest-sharded_cluster"
|
|
tags: ["latest", "sharded_cluster"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "sharded_cluster"
|
|
- func: "run tests"
|
|
|
|
- name: "test-enterprise-auth"
|
|
tags: ["enterprise-auth"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "server"
|
|
- func: "run enterprise auth tests"
|
|
|
|
- name: "mod-wsgi-standalone"
|
|
tags: ["mod_wsgi"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "server"
|
|
- func: "run mod_wsgi tests"
|
|
|
|
- name: "mod-wsgi-replica-set"
|
|
tags: ["mod_wsgi"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "replica_set"
|
|
- func: "run mod_wsgi tests"
|
|
|
|
- name: "cdecimal"
|
|
tags: ["cdecimal"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "server"
|
|
- func: "run cdecimal tests"
|
|
|
|
- name: "no-server"
|
|
tags: ["no-server"]
|
|
commands:
|
|
- func: "run tests"
|
|
vars:
|
|
PYTHON_BINARY: /opt/python/2.7/bin/python
|
|
|
|
# }}}
|
|
- name: "coverage-report"
|
|
tags: ["coverage"]
|
|
depends_on:
|
|
# BUILD-3165: We can't use "*" (all tasks) and specify "variant".
|
|
# Instead list out all coverage tasks using tags.
|
|
- name: ".standalone"
|
|
variant: ".coverage_tag"
|
|
# Run the coverage task even if some tasks fail.
|
|
status: "*"
|
|
# Run the coverage task even if some tasks are not scheduled in a patch build.
|
|
patch_optional: true
|
|
- name: ".replica_set"
|
|
variant: ".coverage_tag"
|
|
status: "*"
|
|
patch_optional: true
|
|
- name: ".sharded_cluster"
|
|
variant: ".coverage_tag"
|
|
status: "*"
|
|
patch_optional: true
|
|
commands:
|
|
- func: "download and merge coverage"
|
|
|
|
|
|
axes:
|
|
- id: versions
|
|
display_name: MongoDB Version
|
|
values:
|
|
- id: "latest"
|
|
display_name: "latest"
|
|
variables:
|
|
VERSION: "latest"
|
|
- id: "3.4"
|
|
display_name: "3.4"
|
|
variables:
|
|
VERSION: "3.4"
|
|
- id: "3.2"
|
|
display_name: "3.2"
|
|
variables:
|
|
VERSION: "3.2"
|
|
- id: "3.0"
|
|
display_name: "3.0"
|
|
variables:
|
|
VERSION: "3.0"
|
|
- id: "2.6"
|
|
display_name: "2.6"
|
|
variables:
|
|
VERSION: "2.6"
|
|
|
|
# OSes that support versions of MongoDB>=2.6 with SSL.
|
|
- id: os-fully-featured
|
|
display_name: OS
|
|
values:
|
|
- id: suse11-x86-64-test
|
|
display_name: "SUSE 11 (x86_64)"
|
|
run_on: suse11-test
|
|
|
|
- id: linux-64-amzn-test
|
|
display_name: "Amazon Linux (Enterprise)"
|
|
run_on: linux-64-amzn-test
|
|
|
|
# OSes that support versions of MongoDB without SSL.
|
|
- id: os-nossl
|
|
display_name: OS
|
|
values:
|
|
- id: archlinux-test
|
|
display_name: "Archlinux"
|
|
run_on: archlinux-test
|
|
|
|
- id: macos-1012
|
|
display_name: "macOS 10.12"
|
|
run_on: macos-1012
|
|
|
|
# - id: solaris
|
|
# display_name: "Solaris"
|
|
# run_on: solaris
|
|
|
|
# OSes that support versions of MongoDB>=2.6 with SSL.
|
|
- id: os-requires-26
|
|
display_name: OS
|
|
values:
|
|
- id: ubuntu-14.04
|
|
display_name: "Ubuntu 14.04"
|
|
run_on: ubuntu1404-test
|
|
|
|
- id: rhel70
|
|
display_name: "RHEL 7.0"
|
|
run_on: rhel70-small
|
|
|
|
- id: debian71-test
|
|
display_name: "Debian 7.1"
|
|
run_on: debian71-test
|
|
|
|
# OSes that support versions of MongoDB>=3.2 with SSL.
|
|
- id: os-requires-32
|
|
display_name: OS
|
|
values:
|
|
- id: ubuntu-16.04
|
|
display_name: "Ubuntu 16.04"
|
|
run_on: ubuntu1604-test
|
|
|
|
- id: suse12-x86-64-test
|
|
display_name: "SUSE 12 (x86_64)"
|
|
run_on: suse12-test
|
|
|
|
- id: rhel71-power8-test
|
|
display_name: "RHEL 7.1 (POWER8)"
|
|
run_on: rhel71-power8-test
|
|
batchtime: 10080 # 7 days
|
|
|
|
# OSes that introduced support for SSL with MongoDB>=3.2.
|
|
- id: os-ssl-requires-32
|
|
display_name: OS
|
|
values:
|
|
- id: macos-1012
|
|
display_name: "macOS 10.12"
|
|
run_on: macos-1012
|
|
|
|
# OSes that support versions of MongoDB>=3.4 with SSL.
|
|
- id: os-requires-34
|
|
display_name: OS
|
|
values:
|
|
- id: debian81-test
|
|
display_name: "Debian 8.1"
|
|
run_on: debian81-test
|
|
|
|
- id: rhel72-zseries-test
|
|
display_name: "RHEL 7.2 (zSeries)"
|
|
run_on: rhel72-zseries-test
|
|
batchtime: 10080 # 7 days
|
|
|
|
- id: suse12-zseries-test
|
|
display_name: "SUSE 12 (zSeries)"
|
|
run_on: suse12-zseries-test
|
|
batchtime: 10080 # 7 days
|
|
|
|
- id: ubuntu1604-arm64-small
|
|
display_name: "Ubuntu 16.04 (ARM64)"
|
|
run_on: ubuntu1604-arm64-small
|
|
batchtime: 10080 # 7 days
|
|
|
|
- id: ubuntu1604-power8-test
|
|
display_name: "Ubuntu 16.04 (POWER8)"
|
|
run_on: ubuntu1604-power8-test
|
|
batchtime: 10080 # 7 days
|
|
|
|
- id: ubuntu1604-zseries-small
|
|
display_name: "Ubuntu 16.04 (zSeries)"
|
|
run_on: ubuntu1604-zseries-small
|
|
batchtime: 10080 # 7 days
|
|
|
|
- id: topology
|
|
display_name: Topology
|
|
values:
|
|
- id: standalone
|
|
display_name: Standalone
|
|
variables:
|
|
TOPOLOGY: "server"
|
|
- id: replicaset
|
|
display_name: Replica Set
|
|
variables:
|
|
TOPOLOGY: "replica_set"
|
|
- id: sharded-cluster
|
|
display_name: Sharded Cluster
|
|
variables:
|
|
TOPOLOGY: "sharded_cluster"
|
|
- id: auth
|
|
display_name: Authentication
|
|
values:
|
|
- id: auth
|
|
display_name: Auth
|
|
variables:
|
|
AUTH: "auth"
|
|
- id: noauth
|
|
display_name: NoAuth
|
|
variables:
|
|
AUTH: "noauth"
|
|
- id: ssl
|
|
display_name: SSL
|
|
values:
|
|
- id: ssl
|
|
display_name: SSL
|
|
variables:
|
|
SSL: "ssl"
|
|
- id: nossl
|
|
display_name: NoSSL
|
|
variables:
|
|
SSL: "nossl"
|
|
- id: python-version
|
|
display_name: "Python"
|
|
values:
|
|
- id: "2.6"
|
|
display_name: "Python 2.6"
|
|
variables:
|
|
PYTHON_BINARY: "/opt/python/2.6/bin/python"
|
|
- id: "2.7"
|
|
display_name: "Python 2.7"
|
|
variables:
|
|
PYTHON_BINARY: "/opt/python/2.7/bin/python"
|
|
- id: "3.3"
|
|
display_name: "Python 3.3"
|
|
variables:
|
|
PYTHON_BINARY: "/opt/python/3.3/bin/python3"
|
|
- id: "3.4"
|
|
display_name: "Python 3.4"
|
|
variables:
|
|
PYTHON_BINARY: "/opt/python/3.4/bin/python3"
|
|
- id: "3.5"
|
|
display_name: "Python 3.5"
|
|
variables:
|
|
PYTHON_BINARY: "/opt/python/3.5/bin/python3"
|
|
- id: "3.6"
|
|
display_name: "Python 3.6"
|
|
variables:
|
|
PYTHON_BINARY: "/opt/python/3.6/bin/python3"
|
|
- id: "pypy"
|
|
display_name: "PyPy"
|
|
variables:
|
|
PYTHON_BINARY: "/opt/python/pypy/bin/pypy"
|
|
- id: "pypy3"
|
|
display_name: "PyPy 3"
|
|
variables:
|
|
PYTHON_BINARY: "/opt/python/pypy3/bin/pypy3"
|
|
- id: "jython2.7"
|
|
display_name: "Jython 2.7"
|
|
variables:
|
|
PYTHON_BINARY: "/opt/python/jython2.7/bin/jython"
|
|
- id: mod-wsgi-version
|
|
display_name: "mod_wsgi version"
|
|
values:
|
|
- id: "2.8"
|
|
display_name: "mod_wsgi 2.8"
|
|
variables:
|
|
MOD_WSGI_VERSION: "2.8"
|
|
- id: "3.5"
|
|
display_name: "mod_wsgi 3.5"
|
|
variables:
|
|
MOD_WSGI_VERSION: "3.5"
|
|
- id: "4.5.15"
|
|
display_name: "mod_wsgi 4.5.15"
|
|
variables:
|
|
MOD_WSGI_VERSION: "4.5.15"
|
|
- id: green-framework
|
|
display_name: "Green Framework"
|
|
values:
|
|
- id: "eventlet"
|
|
display_name: "Eventlet"
|
|
variables:
|
|
GREEN_FRAMEWORK: "eventlet"
|
|
- id: "gevent"
|
|
display_name: "Gevent"
|
|
variables:
|
|
GREEN_FRAMEWORK: "gevent"
|
|
- id: c-extensions
|
|
display_name: "C Extensions"
|
|
values:
|
|
- id: "without-c-extensions"
|
|
display_name: "Without C Extensions"
|
|
variables:
|
|
C_EXTENSIONS: "--no_ext"
|
|
- id: storage-engine
|
|
display_name: Storage
|
|
values:
|
|
- id: mmapv1
|
|
display_name: MMAPv1
|
|
variables:
|
|
STORAGE_ENGINE: "mmapv1"
|
|
- id: wiredtiger
|
|
display_name: WiredTiger
|
|
variables:
|
|
STORAGE_ENGINE: "wiredtiger"
|
|
- id: inmemory
|
|
display_name: InMemory
|
|
variables:
|
|
STORAGE_ENGINE: "inmemory"
|
|
- id: windows-vs2010-python-version
|
|
display_name: "Windows Visual Studio 2010 Python"
|
|
values:
|
|
- id: "3.3"
|
|
display_name: "Python 3.3"
|
|
variables:
|
|
PYTHON_BINARY: "/cygdrive/c/python/Python33/python.exe"
|
|
- id: "3.4"
|
|
display_name: "Python 3.4"
|
|
variables:
|
|
PYTHON_BINARY: "/cygdrive/c/python/Python34/python.exe"
|
|
- id: windows-vs2015-python-version
|
|
display_name: "Windows Visual Studio 2015 Python"
|
|
values:
|
|
# There is (currently) no vs2008 distro. The Microsoft Visual
|
|
# C++ Compiler for Python 2.7 has been installed, with CPython
|
|
# 2.6 and 2.7, on the vs2015 distro.
|
|
- id: "2.6"
|
|
display_name: "Python 2.6"
|
|
variables:
|
|
PYTHON_BINARY: "/cygdrive/c/python/Python26/python.exe"
|
|
- id: "2.7"
|
|
display_name: "Python 2.7"
|
|
variables:
|
|
PYTHON_BINARY: "/cygdrive/c/python/Python27/python.exe"
|
|
- id: "3.5"
|
|
display_name: "Python 3.5"
|
|
variables:
|
|
PYTHON_BINARY: "/cygdrive/c/python/Python35/python.exe"
|
|
- id: "3.6"
|
|
display_name: "Python 3.6"
|
|
variables:
|
|
PYTHON_BINARY: "/cygdrive/c/python/Python36/python.exe"
|
|
- id: coverage
|
|
display_name: "Coverage"
|
|
values:
|
|
- id: "coverage"
|
|
display_name: "Coverage"
|
|
tags: ["coverage_tag"]
|
|
variables:
|
|
COVERAGE: "coverage"
|
|
|
|
|
|
buildvariants:
|
|
|
|
- matrix_name: "tests-all"
|
|
matrix_spec: {"os-fully-featured": "*", auth: "*", ssl: "*"}
|
|
display_name: "${os-fully-featured} ${auth} ${ssl}"
|
|
tasks:
|
|
- ".latest"
|
|
- ".3.4"
|
|
- ".3.2"
|
|
- ".3.0"
|
|
- ".2.6"
|
|
|
|
- matrix_name: "tests-nossl"
|
|
matrix_spec: {"os-nossl": "*", auth: "*", ssl: "nossl"}
|
|
display_name: "${os-nossl} ${auth} ${ssl}"
|
|
tasks:
|
|
- ".latest"
|
|
- ".3.4"
|
|
- ".3.2"
|
|
- ".3.0"
|
|
- ".2.6"
|
|
|
|
- matrix_name: "tests-os-requires-26"
|
|
matrix_spec: {"os-requires-26": "*", auth: "*", ssl: "*"}
|
|
display_name: "${os-requires-26} ${auth} ${ssl}"
|
|
tasks:
|
|
- ".latest"
|
|
- ".3.4"
|
|
- ".3.2"
|
|
- ".3.0"
|
|
- ".2.6"
|
|
|
|
- matrix_name: "tests-os-requires-32"
|
|
matrix_spec: {"os-requires-32": "*", auth: "*", ssl: "*"}
|
|
display_name: "${os-requires-32} ${auth} ${ssl}"
|
|
tasks:
|
|
- ".latest"
|
|
- ".3.4"
|
|
- ".3.2"
|
|
|
|
- matrix_name: "tests-ssl-requires-32"
|
|
matrix_spec: {"os-ssl-requires-32": "*", auth: "*", ssl: "ssl"}
|
|
display_name: "${os-ssl-requires-32} ${auth} ${ssl}"
|
|
tasks:
|
|
- ".latest"
|
|
- ".3.4"
|
|
- ".3.2"
|
|
|
|
- matrix_name: "tests-os-requires-34"
|
|
matrix_spec: {"os-requires-34": "*", auth: "*", ssl: "*"}
|
|
display_name: "${os-requires-34} ${auth} ${ssl}"
|
|
tasks:
|
|
- ".latest"
|
|
- ".3.4"
|
|
|
|
- matrix_name: "tests-python-version-ubuntu1204-test-ssl"
|
|
matrix_spec: {"python-version": "*", auth: "*", ssl: "*", coverage: "*"}
|
|
exclude_spec:
|
|
# PYTHON-498: disable Jython SSL tests
|
|
python-version: "jython2.7"
|
|
# EVG-1410: exlcude_spec must specifiy values for all axes
|
|
auth: "*"
|
|
ssl: "ssl"
|
|
coverage: "*"
|
|
display_name: "${python-version} Ubuntu 12.04 (x86_64) ${auth} ${ssl} ${coverage}"
|
|
run_on: ubuntu1204-test
|
|
tasks:
|
|
- ".latest"
|
|
- ".3.4"
|
|
- ".3.2"
|
|
- ".3.0"
|
|
- ".2.6"
|
|
|
|
- matrix_name: "tests-python-version-ubuntu1204-without-c-extensions"
|
|
matrix_spec: {"python-version": "*", "c-extensions": "without-c-extensions", auth: "noauth", ssl: "nossl", coverage: "*"}
|
|
exclude_spec:
|
|
# These interpreters are always tested without extensions.
|
|
- python-version: ["pypy", "pypy3", "jython2.7"]
|
|
c-extensions: "*"
|
|
auth: "*"
|
|
ssl: "*"
|
|
coverage: "*"
|
|
display_name: "${c-extensions} ${python-version} Ubuntu 12.04 (x86_64) ${auth} ${ssl} ${coverage}"
|
|
run_on: ubuntu1204-test
|
|
tasks:
|
|
- ".latest"
|
|
- ".3.4"
|
|
- ".3.2"
|
|
- ".3.0"
|
|
- ".2.6"
|
|
|
|
- matrix_name: "tests-python-version-green-framework-ubuntu1204"
|
|
matrix_spec: {"python-version": "*", "green-framework": "*", auth: "*", ssl: "*"}
|
|
exclude_spec:
|
|
# Don't test green frameworks on these Python versions.
|
|
- python-version: ["pypy", "pypy3", "jython2.7"]
|
|
green-framework: "*"
|
|
auth: "*"
|
|
ssl: "*"
|
|
display_name: "${green-framework} ${python-version} Ubuntu 12.04 (x86_64) ${auth} ${ssl}"
|
|
run_on: ubuntu1204-test
|
|
tasks:
|
|
- ".latest"
|
|
- ".3.4"
|
|
- ".3.2"
|
|
- ".3.0"
|
|
- ".2.6"
|
|
|
|
# Test CPython 3.3 and 3.4 against all versions on MongoDB >= 2.6
|
|
# on Windows with Visual Studio 2010.
|
|
- matrix_name: "tests-windows-vs2010-python-version-nossl"
|
|
matrix_spec: {windows-vs2010-python-version: "*", auth: "*", ssl: "*"}
|
|
display_name: "Windows 64 Visual Studio 2010 ${windows-vs2010-python-version} ${auth} ${ssl}"
|
|
run_on: windows-64-vs2010-test
|
|
tasks:
|
|
- ".latest"
|
|
- ".3.4"
|
|
- ".3.2"
|
|
- ".3.0"
|
|
- ".2.6"
|
|
|
|
# Test CPython 2.6, 2.7, 3.5 and 3.6 against all versions on MongoDB >= 2.6
|
|
# on Windows with the Microsoft Visual C++ Compiler for Python 2.7 or Visual Studio 2015.
|
|
- matrix_name: "tests-windows-vs2015-python-version-nossl"
|
|
matrix_spec: {windows-vs2015-python-version: "*", auth: "*", ssl: "*"}
|
|
display_name: "Windows 64 Visual Studio 2015 ${windows-vs2015-python-version} ${auth} ${ssl}"
|
|
run_on: windows-64-vs2015-test
|
|
tasks:
|
|
- ".latest"
|
|
- ".3.4"
|
|
- ".3.2"
|
|
- ".3.0"
|
|
- ".2.6"
|
|
|
|
# Storage engine tests on Ubuntu 12.04 (x86_64) with Python 2.7.
|
|
- matrix_name: "tests-storage-engines"
|
|
matrix_spec: {storage-engine: "*", python-version: "2.7"}
|
|
display_name: "Storage ${storage-engine} ${python-version} Ubuntu 12.04 (x86_64)"
|
|
run_on: ubuntu1204-test
|
|
rules:
|
|
- if:
|
|
storage-engine: ["mmapv1", "inmemory"]
|
|
python-version: "*"
|
|
then:
|
|
add_tasks:
|
|
- "test-latest-standalone"
|
|
- "test-3.4-standalone"
|
|
- "test-3.2-standalone"
|
|
- if:
|
|
storage-engine: "wiredtiger"
|
|
python-version: "*"
|
|
then:
|
|
add_tasks:
|
|
- "test-3.0-standalone"
|
|
|
|
- matrix_name: "test-linux-enterprise-auth"
|
|
matrix_spec: {"python-version": "*", auth: "auth"}
|
|
display_name: "Enterprise Auth Linux ${python-version}"
|
|
run_on: ubuntu1204-test
|
|
tasks:
|
|
- name: "test-enterprise-auth"
|
|
|
|
- matrix_name: "tests-windows-vs2010-enterprise-auth"
|
|
matrix_spec: {"windows-vs2010-python-version": "*", auth: "auth"}
|
|
display_name: "Enterprise Auth Windows ${windows-vs2010-python-version}"
|
|
run_on: windows-64-vs2010-test
|
|
tasks:
|
|
- name: "test-enterprise-auth"
|
|
|
|
- matrix_name: "tests-windows-vs2015-enterprise-auth"
|
|
matrix_spec: {"windows-vs2015-python-version": "*", auth: "auth"}
|
|
display_name: "Enterprise Auth Windows ${windows-vs2015-python-version}"
|
|
run_on: windows-64-vs2015-test
|
|
tasks:
|
|
- name: "test-enterprise-auth"
|
|
|
|
- matrix_name: "tests-mod-wsgi"
|
|
matrix_spec: {"python-version": ["2.6", "2.7", "3.3", "3.6"], "mod-wsgi-version": "*"}
|
|
exclude_spec:
|
|
python-version: ["3.3", "3.6"]
|
|
mod-wsgi-version: ["2.8"]
|
|
display_name: "${mod-wsgi-version} ${python-version}"
|
|
run_on: ubuntu1204-test
|
|
tasks:
|
|
- name: "mod-wsgi-standalone"
|
|
- name: "mod-wsgi-replica-set"
|
|
|
|
- matrix_name: "mockupdb-tests"
|
|
matrix_spec: {python-version: "2.7"}
|
|
display_name: "MockupDB Tests"
|
|
run_on: ubuntu1204-test
|
|
tasks:
|
|
- name: "mockupdb"
|
|
|
|
- matrix_name: "tests-doctests"
|
|
matrix_spec: {python-version: ["2.7", "3.4"]}
|
|
display_name: "Doctests ${python-version}"
|
|
run_on: ubuntu1204-test
|
|
tasks:
|
|
- name: "doctests"
|
|
|
|
- matrix_name: "cdecimal"
|
|
matrix_spec: {python-version: ["2.6", "2.7"]}
|
|
display_name: "cdecimal ${python-version}"
|
|
batchtime: 10080 # 7 days
|
|
run_on:
|
|
- ubuntu1204-test
|
|
tasks:
|
|
- name: "cdecimal"
|
|
|
|
- name: "no-server"
|
|
display_name: "No server test"
|
|
run_on:
|
|
- ubuntu1204-test
|
|
tasks:
|
|
- name: "no-server"
|
|
|
|
- name: "Coverage Report"
|
|
display_name: "Coverage Report"
|
|
run_on: ubuntu1604-test
|
|
tasks:
|
|
- name: "coverage-report"
|
|
|
|
# Platform notes
|
|
# i386 builds of OpenSSL or Cyrus SASL are not available
|
|
# Ubuntu14.04 only supports 2.6+ with SSL
|
|
# Ubuntu16.04 ppc64le is only supported by MongoDB 3.4+
|
|
# Ubuntu16.04 aarch64 is only supported by MongoDB 3.4+
|
|
# Ubuntu16.04 s390x is only supported by MongoDB 3.4+
|
|
# Ubuntu16.04 (x86) only supports MongoDB 3.2+
|
|
# Debian 8.1 only supports MongoDB 3.4+
|
|
# SUSE12 s390x is only supported by MongoDB 3.4+
|
|
# No enterprise build for Archlinux, SSL not available
|
|
# RHEL 7 only supports 2.6+
|
|
# RHEL 7.1 ppc64le is only supported by MongoDB 3.2+
|
|
# RHEL 7.2 s390x is only supported by MongoDB 3.4+
|
|
# Solaris MongoDB SSL builds are not available
|
|
# Darwin MongoDB SSL builds are not available for 2.6
|
|
# SUSE12 x86_64 is only supported by MongoDB 3.2+
|
|
# vim: set et sw=2 ts=2 :
|