PYTHON-4725 - Async client should use tasks for SDAM instead of threads PYTHON-4860 - Async client should use asyncio.Lock and asyncio.Condition PYTHON-4941 - Synchronous unified test runner being used in asynchronous tests PYTHON-4843 - Async test suite should use a single event loop PYTHON-4945 - Fix test cleanups for mongoses Co-authored-by: Iris <58442094+sleepyStick@users.noreply.github.com>
1728 lines
56 KiB
YAML
1728 lines
56 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 ourselves 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: 3600 # 60 minutes is the longest we'll ever run (primarily
|
|
# for macos hosts)
|
|
|
|
# What to do when evergreen hits the timeout (`post:` tasks are run automatically)
|
|
timeout:
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: ls -la
|
|
|
|
include:
|
|
- filename: .evergreen/generated_configs/tasks.yml
|
|
- filename: .evergreen/generated_configs/variants.yml
|
|
|
|
functions:
|
|
"fetch source":
|
|
# Executes 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 expansion file with dynamic values
|
|
- command: subprocess.exec
|
|
params:
|
|
include_expansions_in_env: ["is_patch", "project", "version_id", "AUTH", "SSL", "test_encryption", "test_encryption_pyopenssl", "test_crypt_shared", "test_pyopenssl", "SETDEFAULTENCODING", "test_loadbalancer", "test_serverless", "SKIP_CSOT_TESTS", "MONGODB_STARTED", "DISABLE_TEST_COMMANDS", "GREEN_FRAMEWORK", "NO_EXT", "COVERAGE", "COMPRESSORS", "TEST_SUITES", "MONGODB_API_VERSION", "SKIP_HATCH", "skip_crypt_shared", "VERSION", "TOPOLOGY", "STORAGE_ENGINE", "ORCHESTRATION_FILE", "REQUIRE_API_VERSION", "LOAD_BALANCER", "skip_web_identity_auth_test", "skip_ECS_auth_test"]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/configure-env.sh
|
|
# 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: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- src/.evergreen/scripts/prepare-resources.sh
|
|
|
|
"upload coverage" :
|
|
- command: ec2.assume_role
|
|
params:
|
|
role_arn: ${assume_role_arn}
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${AWS_ACCESS_KEY_ID}
|
|
aws_secret: ${AWS_SECRET_ACCESS_KEY}
|
|
aws_session_token: ${AWS_SESSION_TOKEN}
|
|
local_file: src/.coverage
|
|
optional: true
|
|
# Upload the coverage report for all tasks in a single build to the same directory.
|
|
remote_file: coverage/${revision}/${version_id}/coverage/coverage.${build_variant}.${task_name}
|
|
bucket: ${bucket_name}
|
|
permissions: public-read
|
|
content_type: text/html
|
|
display_name: "Raw Coverage Report"
|
|
|
|
"download and merge coverage" :
|
|
- command: ec2.assume_role
|
|
params:
|
|
role_arn: ${assume_role_arn}
|
|
- command: subprocess.exec
|
|
params:
|
|
silent: true
|
|
binary: bash
|
|
working_dir: "src"
|
|
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
|
|
args:
|
|
- .evergreen/scripts/download-and-merge-coverage.sh
|
|
- ${bucket_name}
|
|
- ${revision}
|
|
- ${version_id}
|
|
- command: subprocess.exec
|
|
params:
|
|
working_dir: "src"
|
|
binary: bash
|
|
args:
|
|
- .evergreen/combine-coverage.sh
|
|
# Upload the resulting html coverage report.
|
|
- command: subprocess.exec
|
|
params:
|
|
silent: true
|
|
binary: bash
|
|
working_dir: "src"
|
|
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
|
|
args:
|
|
- .evergreen/scripts/upload-coverage-report.sh
|
|
- ${bucket_name}
|
|
- ${revision}
|
|
- ${version_id}
|
|
# Attach the index.html with s3.put so it shows up in the Evergreen UI.
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${AWS_ACCESS_KEY_ID}
|
|
aws_secret: ${AWS_SECRET_ACCESS_KEY}
|
|
aws_session_token: ${AWS_SESSION_TOKEN}
|
|
local_file: src/htmlcov/index.html
|
|
remote_file: coverage/${revision}/${version_id}/htmlcov/index.html
|
|
bucket: ${bucket_name}
|
|
permissions: public-read
|
|
content_type: text/html
|
|
display_name: "Coverage Report HTML"
|
|
|
|
|
|
"upload mo artifacts":
|
|
- command: ec2.assume_role
|
|
params:
|
|
role_arn: ${assume_role_arn}
|
|
- command: archive.targz_pack
|
|
params:
|
|
target: "mongo-coredumps.tgz"
|
|
source_dir: "./"
|
|
include:
|
|
- "./**.core"
|
|
- "./**.mdmp" # Windows: minidumps
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${AWS_ACCESS_KEY_ID}
|
|
aws_secret: ${AWS_SECRET_ACCESS_KEY}
|
|
aws_session_token: ${AWS_SESSION_TOKEN}
|
|
local_file: mongo-coredumps.tgz
|
|
remote_file: ${build_variant}/${revision}/${version_id}/${build_id}/coredumps/${task_id}-${execution}-mongodb-coredumps.tar.gz
|
|
bucket: ${bucket_name}
|
|
permissions: public-read
|
|
content_type: ${content_type|application/gzip}
|
|
display_name: Core Dumps - Execution
|
|
optional: true
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${AWS_ACCESS_KEY_ID}
|
|
aws_secret: ${AWS_SECRET_ACCESS_KEY}
|
|
aws_session_token: ${AWS_SESSION_TOKEN}
|
|
local_file: ${DRIVERS_TOOLS}/.evergreen/test_logs.tar.gz
|
|
remote_file: ${build_variant}/${revision}/${version_id}/${build_id}/logs/${task_id}-${execution}-drivers-tools-logs.tar.gz
|
|
bucket: ${bucket_name}
|
|
permissions: public-read
|
|
content_type: ${content_type|application/x-gzip}
|
|
display_name: "drivers-tools-logs.tar.gz"
|
|
|
|
"upload working dir":
|
|
- command: ec2.assume_role
|
|
params:
|
|
role_arn: ${assume_role_arn}
|
|
- command: archive.targz_pack
|
|
params:
|
|
target: "working-dir.tar.gz"
|
|
source_dir: ${PROJECT_DIRECTORY}/
|
|
include:
|
|
- "./**"
|
|
- command: s3.put
|
|
params:
|
|
aws_key: ${AWS_ACCESS_KEY_ID}
|
|
aws_secret: ${AWS_SECRET_ACCESS_KEY}
|
|
aws_session_token: ${AWS_SESSION_TOKEN}
|
|
local_file: working-dir.tar.gz
|
|
remote_file: ${build_variant}/${revision}/${version_id}/${build_id}/artifacts/${task_id}-${execution}-working-dir.tar.gz
|
|
bucket: ${bucket_name}
|
|
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_ACCESS_KEY_ID}
|
|
aws_secret: ${AWS_SECRET_ACCESS_KEY}
|
|
aws_session_token: ${AWS_SESSION_TOKEN}
|
|
local_file: drivers-dir.tar.gz
|
|
remote_file: ${build_variant}/${revision}/${version_id}/${build_id}/artifacts/${task_id}-${execution}-drivers-dir.tar.gz
|
|
bucket: ${bucket_name}
|
|
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: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
include_expansions_in_env: ["VERSION", "TOPOLOGY", "AUTH", "SSL", "ORCHESTRATION_FILE", "LOAD_BALANCER"]
|
|
args:
|
|
- src/.evergreen/scripts/run-with-env.sh
|
|
- src/.evergreen/scripts/bootstrap-mongo-orchestration.sh
|
|
- command: expansions.update
|
|
params:
|
|
file: mo-expansion.yml
|
|
- command: expansions.update
|
|
params:
|
|
updates:
|
|
- key: MONGODB_STARTED
|
|
value: "1"
|
|
|
|
"bootstrap data lake":
|
|
- command: subprocess.exec
|
|
type: setup
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/atlas_data_lake/pull-mongohouse-image.sh
|
|
- command: subprocess.exec
|
|
type: setup
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/atlas_data_lake/run-mongohouse-image.sh
|
|
|
|
"stop mongo-orchestration":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/stop-orchestration.sh
|
|
|
|
"run mod_wsgi tests":
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: [MOD_WSGI_VERSION, MOD_WSGI_EMBEDDED, "PYTHON_BINARY"]
|
|
working_dir: "src"
|
|
binary: bash
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-mod-wsgi-tests.sh
|
|
|
|
"run mockupdb tests":
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: ["PYTHON_BINARY"]
|
|
working_dir: "src"
|
|
binary: bash
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-mockupdb-tests.sh
|
|
|
|
"run doctests":
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: [ "PYTHON_BINARY" ]
|
|
working_dir: "src"
|
|
binary: bash
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-doctests.sh
|
|
|
|
"run tests":
|
|
- command: subprocess.exec
|
|
params:
|
|
include_expansions_in_env: ["TEST_DATA_LAKE", "PYTHON_BINARY", "AUTH", "SSL", "TEST_INDEX_MANAGEMENT", "CRYPT_SHARED_LIB_PATH", "test_encryption", "test_encryption_pyopenssl", "test_crypt_shared", "test_pyopenssl", "test_loadbalancer", "test_serverless", "ORCHESTRATION_FILE"]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/setup-tests.sh
|
|
- command: subprocess.exec
|
|
params:
|
|
working_dir: "src"
|
|
binary: bash
|
|
background: true
|
|
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/setup-encryption.sh
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
working_dir: "src"
|
|
binary: bash
|
|
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN", "PYTHON_BINARY", "TEST_DATA_LAKE", "TEST_INDEX_MANAGEMENT", "CRYPT_SHARED_LIB_PATH", "SINGLE_MONGOS_LB_URI", "MULTI_MONGOS_LB_URI", "TEST_SUITES"]
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-tests.sh
|
|
|
|
"run enterprise auth tests":
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
binary: bash
|
|
working_dir: "src"
|
|
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN", "PYTHON_BINARY"]
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-enterprise-auth-tests.sh
|
|
|
|
"run atlas tests":
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
binary: bash
|
|
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN", "PYTHON_BINARY"]
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-atlas-tests.sh
|
|
|
|
"get aws auth secrets":
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/auth_aws/setup-secrets.sh
|
|
|
|
"run aws auth test with regular aws credentials":
|
|
- command: subprocess.exec
|
|
params:
|
|
include_expansions_in_env: ["TEST_DATA_LAKE", "TEST_INDEX_MANAGEMENT", "CRYPT_SHARED_LIB_PATH", "test_encryption", "test_encryption_pyopenssl", "test_crypt_shared", "test_pyopenssl", "test_loadbalancer", "test_serverless", "ORCHESTRATION_FILE"]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/setup-tests.sh
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: ["DRIVERS_TOOLS", "skip_EC2_auth_test"]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-mongodb-aws-test.sh
|
|
- regular
|
|
|
|
"run aws auth test with assume role credentials":
|
|
- command: subprocess.exec
|
|
params:
|
|
include_expansions_in_env: [ "TEST_DATA_LAKE", "TEST_INDEX_MANAGEMENT", "CRYPT_SHARED_LIB_PATH", "test_encryption", "test_encryption_pyopenssl", "test_crypt_shared", "test_pyopenssl", "test_loadbalancer", "test_serverless", "ORCHESTRATION_FILE" ]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/setup-tests.sh
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: ["DRIVERS_TOOLS", "skip_EC2_auth_test"]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-mongodb-aws-test.sh
|
|
- assume-role
|
|
|
|
"run aws auth test with aws EC2 credentials":
|
|
- command: subprocess.exec
|
|
params:
|
|
include_expansions_in_env: [ "TEST_DATA_LAKE", "TEST_INDEX_MANAGEMENT", "CRYPT_SHARED_LIB_PATH", "test_encryption", "test_encryption_pyopenssl", "test_crypt_shared", "test_pyopenssl", "test_loadbalancer", "test_serverless", "ORCHESTRATION_FILE" ]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/setup-tests.sh
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: ["DRIVERS_TOOLS", "skip_EC2_auth_test"]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-mongodb-aws-test.sh
|
|
- ec2
|
|
|
|
"run aws auth test with aws web identity credentials":
|
|
- command: subprocess.exec
|
|
params:
|
|
include_expansions_in_env: [ "TEST_DATA_LAKE", "TEST_INDEX_MANAGEMENT", "CRYPT_SHARED_LIB_PATH", "test_encryption", "test_encryption_pyopenssl", "test_crypt_shared", "test_pyopenssl", "test_loadbalancer", "test_serverless", "ORCHESTRATION_FILE" ]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/setup-tests.sh
|
|
- # Test with and without AWS_ROLE_SESSION_NAME set.
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: ["DRIVERS_TOOLS", "skip_EC2_auth_test"]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-mongodb-aws-test.sh
|
|
- web-identity
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: [ "DRIVERS_TOOLS", "skip_EC2_auth_test" ]
|
|
binary: bash
|
|
working_dir: "src"
|
|
env:
|
|
AWS_ROLE_SESSION_NAME: test
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-mongodb-aws-test.sh
|
|
- web-identity
|
|
|
|
"run aws auth test with aws credentials as environment variables":
|
|
- command: subprocess.exec
|
|
params:
|
|
include_expansions_in_env: [ "TEST_DATA_LAKE", "TEST_INDEX_MANAGEMENT", "CRYPT_SHARED_LIB_PATH", "test_encryption", "test_encryption_pyopenssl", "test_crypt_shared", "test_pyopenssl", "test_loadbalancer", "test_serverless", "ORCHESTRATION_FILE" ]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/setup-tests.sh
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: ["DRIVERS_TOOLS", "skip_EC2_auth_test"]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-mongodb-aws-test.sh
|
|
- env-creds
|
|
|
|
"run aws auth test with aws credentials and session token as environment variables":
|
|
- command: subprocess.exec
|
|
params:
|
|
include_expansions_in_env: [ "TEST_DATA_LAKE", "TEST_INDEX_MANAGEMENT", "CRYPT_SHARED_LIB_PATH", "test_encryption", "test_encryption_pyopenssl", "test_crypt_shared", "test_pyopenssl", "test_loadbalancer", "test_serverless", "ORCHESTRATION_FILE" ]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/setup-tests.sh
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: ["DRIVERS_TOOLS", "skip_EC2_auth_test"]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-mongodb-aws-test.sh
|
|
- session-creds
|
|
|
|
"run oidc auth test with test credentials":
|
|
- command: subprocess.exec
|
|
params:
|
|
include_expansions_in_env: [ "TEST_DATA_LAKE", "TEST_INDEX_MANAGEMENT", "CRYPT_SHARED_LIB_PATH", "test_encryption", "test_encryption_pyopenssl", "test_crypt_shared", "test_pyopenssl", "test_loadbalancer", "test_serverless", "ORCHESTRATION_FILE" ]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/setup-tests.sh
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
working_dir: "src"
|
|
binary: bash
|
|
include_expansions_in_env: ["DRIVERS_TOOLS", "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
|
|
args:
|
|
- .evergreen/run-mongodb-oidc-test.sh
|
|
|
|
"run oidc k8s auth test":
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
binary: bash
|
|
working_dir: src
|
|
env:
|
|
OIDC_ENV: k8s
|
|
include_expansions_in_env: ["DRIVERS_TOOLS", "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN", "K8S_VARIANT"]
|
|
args:
|
|
- ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-oidc-remote-test.sh
|
|
|
|
"run aws ECS auth test":
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-aws-ecs-auth-test.sh
|
|
|
|
"cleanup":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/cleanup.sh
|
|
|
|
"teardown":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/teardown.sh
|
|
|
|
"fix absolute paths":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- src/.evergreen/scripts/fix-absolute-paths.sh
|
|
|
|
"windows fix":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- src/.evergreen/scripts/windows-fix.sh
|
|
|
|
"make files executable":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- src/.evergreen/scripts/make-files-executable.sh
|
|
|
|
"init test-results":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- src/.evergreen/scripts/init-test-results.sh
|
|
|
|
"install dependencies":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/install-dependencies.sh
|
|
|
|
"assume ec2 role":
|
|
- command: ec2.assume_role
|
|
params:
|
|
role_arn: ${aws_test_secrets_role}
|
|
|
|
"setup atlas":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
include_expansions_in_env: ["task_id", "execution"]
|
|
env:
|
|
MONGODB_VERSION: "7.0"
|
|
LAMBDA_STACK_NAME: dbx-python-lambda
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/atlas/setup-atlas-cluster.sh
|
|
- command: expansions.update
|
|
params:
|
|
file: atlas-expansion.yml
|
|
|
|
"run-ocsp-test":
|
|
- command: subprocess.exec
|
|
params:
|
|
include_expansions_in_env: [ "TEST_DATA_LAKE", "TEST_INDEX_MANAGEMENT", "CRYPT_SHARED_LIB_PATH", "test_encryption", "test_encryption_pyopenssl", "test_crypt_shared", "test_pyopenssl", "test_loadbalancer", "test_serverless", "ORCHESTRATION_FILE" ]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/setup-tests.sh
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: ["OCSP_ALGORITHM", "OCSP_TLS_SHOULD_SUCCEED", "PYTHON_BINARY"]
|
|
binary: bash
|
|
working_dir: "src"
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-ocsp-test.sh
|
|
|
|
"run-ocsp-server":
|
|
- command: subprocess.exec
|
|
params:
|
|
background: true
|
|
binary: bash
|
|
include_expansions_in_env: [SERVER_TYPE, OCSP_ALGORITHM]
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/ocsp/setup.sh
|
|
|
|
"run load-balancer":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
include_expansions_in_env: ["MONGODB_URI"]
|
|
args:
|
|
- src/.evergreen/scripts/run-with-env.sh
|
|
- src/.evergreen/scripts/run-load-balancer.sh
|
|
- command: expansions.update
|
|
params:
|
|
file: lb-expansion.yml
|
|
|
|
"stop load-balancer":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- src/.evergreen/scripts/stop-load-balancer.sh
|
|
|
|
"teardown_docker":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- src/.evergreen/scripts/teardown-docker.sh
|
|
|
|
"teardown_aws":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- src/.evergreen/scripts/run-with-env.sh
|
|
- src/.evergreen/scripts/teardown-aws.sh
|
|
|
|
"teardown atlas":
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh
|
|
|
|
"run perf tests":
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
working_dir: "src"
|
|
binary: bash
|
|
args:
|
|
- .evergreen/scripts/run-with-env.sh
|
|
- .evergreen/scripts/run-perf-tests.sh
|
|
|
|
"attach benchmark test results":
|
|
- command: attach.results
|
|
params:
|
|
file_location: src/report.json
|
|
|
|
"send dashboard data":
|
|
- command: perf.send
|
|
params:
|
|
file: src/results.json
|
|
|
|
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"
|
|
- func: "assume ec2 role"
|
|
|
|
post:
|
|
# Disabled, causing timeouts
|
|
# - func: "upload working dir"
|
|
- func: "teardown"
|
|
- func: "upload coverage"
|
|
- func: "upload mo artifacts"
|
|
- func: "upload test results"
|
|
- func: "stop mongo-orchestration"
|
|
- func: "teardown_aws"
|
|
- func: "cleanup"
|
|
- func: "teardown_docker"
|
|
|
|
task_groups:
|
|
- name: serverless_task_group
|
|
setup_group_can_fail_task: true
|
|
setup_group_timeout_secs: 1800 # 30 minutes
|
|
setup_group:
|
|
- func: "fetch source"
|
|
- func: "prepare resources"
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
env:
|
|
VAULT_NAME: ${VAULT_NAME}
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/serverless/create-instance.sh
|
|
teardown_task:
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/serverless/delete-instance.sh
|
|
- func: "upload test results"
|
|
tasks:
|
|
- ".serverless"
|
|
|
|
- name: testgcpkms_task_group
|
|
setup_group_can_fail_task: true
|
|
setup_group_timeout_secs: 1800 # 30 minutes
|
|
setup_group:
|
|
- func: fetch source
|
|
- func: prepare resources
|
|
- func: fix absolute paths
|
|
- func: make files executable
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/csfle/gcpkms/create-and-setup-instance.sh
|
|
teardown_task:
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/csfle/gcpkms/delete-instance.sh
|
|
- func: "upload test results"
|
|
tasks:
|
|
- testgcpkms-task
|
|
|
|
- name: testazurekms_task_group
|
|
setup_group:
|
|
- func: fetch source
|
|
- func: prepare resources
|
|
- func: fix absolute paths
|
|
- func: make files executable
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
env:
|
|
AZUREKMS_VMNAME_PREFIX: "PYTHON_DRIVER"
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/create-and-setup-vm.sh
|
|
teardown_group:
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/delete-vm.sh
|
|
- func: "upload test results"
|
|
setup_group_can_fail_task: true
|
|
teardown_task_can_fail_task: true
|
|
setup_group_timeout_secs: 1800
|
|
tasks:
|
|
- testazurekms-task
|
|
|
|
- name: testazureoidc_task_group
|
|
setup_group:
|
|
- func: fetch source
|
|
- func: prepare resources
|
|
- func: fix absolute paths
|
|
- func: make files executable
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
env:
|
|
AZUREOIDC_VMNAME_PREFIX: "PYTHON_DRIVER"
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/auth_oidc/azure/create-and-setup-vm.sh
|
|
teardown_task:
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/auth_oidc/azure/delete-vm.sh
|
|
setup_group_can_fail_task: true
|
|
setup_group_timeout_secs: 1800
|
|
tasks:
|
|
- oidc-auth-test-azure
|
|
|
|
- name: testgcpoidc_task_group
|
|
setup_group:
|
|
- func: fetch source
|
|
- func: prepare resources
|
|
- func: fix absolute paths
|
|
- func: make files executable
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
env:
|
|
GCPOIDC_VMNAME_PREFIX: "PYTHON_DRIVER"
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/auth_oidc/gcp/setup.sh
|
|
teardown_task:
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/auth_oidc/gcp/teardown.sh
|
|
setup_group_can_fail_task: true
|
|
setup_group_timeout_secs: 1800
|
|
tasks:
|
|
- oidc-auth-test-gcp
|
|
|
|
- name: testk8soidc_task_group
|
|
setup_group:
|
|
- func: fetch source
|
|
- func: prepare resources
|
|
- func: fix absolute paths
|
|
- func: make files executable
|
|
- command: ec2.assume_role
|
|
params:
|
|
role_arn: ${aws_test_secrets_role}
|
|
duration_seconds: 1800
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/auth_oidc/k8s/setup.sh
|
|
teardown_task:
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/auth_oidc/k8s/teardown.sh
|
|
setup_group_can_fail_task: true
|
|
setup_group_timeout_secs: 1800
|
|
tasks:
|
|
- oidc-auth-test-k8s
|
|
|
|
- name: testoidc_task_group
|
|
setup_group:
|
|
- func: fetch source
|
|
- func: prepare resources
|
|
- func: fix absolute paths
|
|
- func: make files executable
|
|
- func: "assume ec2 role"
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/auth_oidc/setup.sh
|
|
teardown_task:
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/auth_oidc/teardown.sh
|
|
setup_group_can_fail_task: true
|
|
setup_group_timeout_secs: 1800
|
|
tasks:
|
|
- oidc-auth-test
|
|
|
|
- name: test_aws_lambda_task_group
|
|
setup_group:
|
|
- func: fetch source
|
|
- func: prepare resources
|
|
- func: setup atlas
|
|
teardown_task:
|
|
- func: teardown atlas
|
|
setup_group_can_fail_task: true
|
|
setup_group_timeout_secs: 1800
|
|
tasks:
|
|
- test-aws-lambda-deployed
|
|
|
|
- name: test_atlas_task_group_search_indexes
|
|
setup_group:
|
|
- func: fetch source
|
|
- func: prepare resources
|
|
- func: fix absolute paths
|
|
- func: make files executable
|
|
- func: setup atlas
|
|
teardown_task:
|
|
- func: teardown atlas
|
|
setup_group_can_fail_task: true
|
|
setup_group_timeout_secs: 1800
|
|
tasks:
|
|
- test-search-index-helpers
|
|
|
|
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: subprocess.exec
|
|
binary: bash
|
|
type: test
|
|
params:
|
|
args:
|
|
- src/.evergreen/scripts/run-getdata.sh
|
|
# 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: "server"
|
|
- func: "run doctests"
|
|
|
|
- name: "test-serverless"
|
|
tags: ["serverless"]
|
|
commands:
|
|
- func: "run tests"
|
|
|
|
- name: "test-enterprise-auth"
|
|
tags: ["enterprise-auth"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "server"
|
|
- func: "assume ec2 role"
|
|
- func: "run enterprise auth tests"
|
|
|
|
- name: "test-search-index-helpers"
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "6.0"
|
|
TOPOLOGY: "replica_set"
|
|
- func: "run tests"
|
|
vars:
|
|
TEST_INDEX_MANAGEMENT: "1"
|
|
|
|
- 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: "mod-wsgi-embedded-mode-standalone"
|
|
tags: ["mod_wsgi"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "server"
|
|
- func: "run mod_wsgi tests"
|
|
vars:
|
|
MOD_WSGI_EMBEDDED: "1"
|
|
|
|
- name: "mod-wsgi-embedded-mode-replica-set"
|
|
tags: ["mod_wsgi"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "replica_set"
|
|
- func: "run mod_wsgi tests"
|
|
vars:
|
|
MOD_WSGI_EMBEDDED: "1"
|
|
|
|
- name: "no-server"
|
|
tags: ["no-server"]
|
|
commands:
|
|
- func: "run tests"
|
|
|
|
- name: "atlas-connect"
|
|
tags: ["atlas-connect"]
|
|
commands:
|
|
- func: "assume ec2 role"
|
|
- func: "run atlas tests"
|
|
|
|
- name: atlas-data-lake-tests
|
|
commands:
|
|
- func: "bootstrap data lake"
|
|
- func: "run tests"
|
|
vars:
|
|
TEST_DATA_LAKE: "true"
|
|
|
|
- name: "test-aws-lambda-deployed"
|
|
commands:
|
|
- func: "install dependencies"
|
|
- command: ec2.assume_role
|
|
params:
|
|
role_arn: ${LAMBDA_AWS_ROLE_ARN}
|
|
duration_seconds: 3600
|
|
- command: subprocess.exec
|
|
params:
|
|
working_dir: src
|
|
binary: bash
|
|
add_expansions_to_env: true
|
|
args:
|
|
- .evergreen/run-deployed-lambda-aws-tests.sh
|
|
env:
|
|
TEST_LAMBDA_DIRECTORY: ${PROJECT_DIRECTORY}/test/lambda
|
|
|
|
- name: test-ocsp-rsa-valid-cert-server-staples
|
|
tags: ["ocsp", "ocsp-rsa", "ocsp-staple"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
SERVER_TYPE: "valid"
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "true"
|
|
|
|
- name: test-ocsp-rsa-invalid-cert-server-staples
|
|
tags: ["ocsp", "ocsp-rsa", "ocsp-staple"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
SERVER_TYPE: "revoked"
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-rsa-valid-cert-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-rsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
SERVER_TYPE: valid
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "true"
|
|
|
|
- name: test-ocsp-rsa-invalid-cert-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-rsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
SERVER_TYPE: revoked
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-rsa-soft-fail
|
|
tags: ["ocsp", "ocsp-rsa"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "true"
|
|
|
|
- name: test-ocsp-rsa-malicious-invalid-cert-mustStaple-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-rsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
SERVER_TYPE: revoked
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-rsa-malicious-no-responder-mustStaple-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-rsa"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-rsa-delegate-valid-cert-server-staples
|
|
tags: ["ocsp", "ocsp-rsa", "ocsp-staple"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
SERVER_TYPE: valid-delegate
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "true"
|
|
|
|
- name: test-ocsp-rsa-delegate-invalid-cert-server-staples
|
|
tags: ["ocsp", "ocsp-rsa", "ocsp-staple"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
SERVER_TYPE: revoked-delegate
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-rsa-delegate-valid-cert-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-rsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
SERVER_TYPE: valid-delegate
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "true"
|
|
|
|
- name: test-ocsp-rsa-delegate-invalid-cert-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-rsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
SERVER_TYPE: revoked-delegate
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-rsa-delegate-malicious-invalid-cert-mustStaple-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-rsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
SERVER_TYPE: revoked-delegate
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "rsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-ecdsa-valid-cert-server-staples
|
|
tags: ["ocsp", "ocsp-ecdsa", "ocsp-staple"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
SERVER_TYPE: valid
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "true"
|
|
|
|
- name: test-ocsp-ecdsa-invalid-cert-server-staples
|
|
tags: ["ocsp", "ocsp-ecdsa", "ocsp-staple"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
SERVER_TYPE: revoked
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-ecdsa-valid-cert-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-ecdsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
SERVER_TYPE: valid
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "true"
|
|
|
|
- name: test-ocsp-ecdsa-invalid-cert-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-ecdsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
SERVER_TYPE: revoked
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-ecdsa-soft-fail
|
|
tags: ["ocsp", "ocsp-ecdsa"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "true"
|
|
|
|
- name: test-ocsp-ecdsa-malicious-invalid-cert-mustStaple-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-ecdsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
SERVER_TYPE: revoked
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-ecdsa-malicious-no-responder-mustStaple-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-ecdsa"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-ecdsa-delegate-valid-cert-server-staples
|
|
tags: ["ocsp", "ocsp-ecdsa", "ocsp-staple"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
SERVER_TYPE: valid-delegate
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "true"
|
|
|
|
- name: test-ocsp-ecdsa-delegate-invalid-cert-server-staples
|
|
tags: ["ocsp", "ocsp-ecdsa", "ocsp-staple"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
SERVER_TYPE: revoked-delegate
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-ecdsa-delegate-valid-cert-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-ecdsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
SERVER_TYPE: valid-delegate
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "true"
|
|
|
|
- name: test-ocsp-ecdsa-delegate-invalid-cert-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-ecdsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
SERVER_TYPE: revoked-delegate
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: test-ocsp-ecdsa-delegate-malicious-invalid-cert-mustStaple-server-does-not-staple
|
|
tags: ["ocsp", "ocsp-ecdsa"]
|
|
commands:
|
|
- func: run-ocsp-server
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
SERVER_TYPE: valid-delegate
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple-disableStapling.json"
|
|
- func: run-ocsp-test
|
|
vars:
|
|
OCSP_ALGORITHM: "ecdsa"
|
|
OCSP_TLS_SHOULD_SUCCEED: "false"
|
|
|
|
- name: "aws-auth-test-4.4"
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
AUTH: "auth"
|
|
ORCHESTRATION_FILE: "auth-aws.json"
|
|
TOPOLOGY: "server"
|
|
VERSION: "4.4"
|
|
- func: "assume ec2 role"
|
|
- func: "get aws auth secrets"
|
|
- func: "run aws auth test with regular aws credentials"
|
|
- func: "run aws auth test with assume role credentials"
|
|
- func: "run aws auth test with aws credentials as environment variables"
|
|
- func: "run aws auth test with aws credentials and session token as environment variables"
|
|
- func: "run aws auth test with aws EC2 credentials"
|
|
- func: "run aws auth test with aws web identity credentials"
|
|
- func: "run aws ECS auth test"
|
|
|
|
- name: "aws-auth-test-5.0"
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
AUTH: "auth"
|
|
ORCHESTRATION_FILE: "auth-aws.json"
|
|
TOPOLOGY: "server"
|
|
VERSION: "5.0"
|
|
- func: "assume ec2 role"
|
|
- func: "get aws auth secrets"
|
|
- func: "run aws auth test with regular aws credentials"
|
|
- func: "run aws auth test with assume role credentials"
|
|
- func: "run aws auth test with aws credentials as environment variables"
|
|
- func: "run aws auth test with aws credentials and session token as environment variables"
|
|
- func: "run aws auth test with aws EC2 credentials"
|
|
- func: "run aws auth test with aws web identity credentials"
|
|
- func: "run aws ECS auth test"
|
|
|
|
- name: "aws-auth-test-6.0"
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
AUTH: "auth"
|
|
ORCHESTRATION_FILE: "auth-aws.json"
|
|
TOPOLOGY: "server"
|
|
VERSION: "6.0"
|
|
- func: "assume ec2 role"
|
|
- func: "get aws auth secrets"
|
|
- func: "run aws auth test with regular aws credentials"
|
|
- func: "run aws auth test with assume role credentials"
|
|
- func: "run aws auth test with aws credentials as environment variables"
|
|
- func: "run aws auth test with aws credentials and session token as environment variables"
|
|
- func: "run aws auth test with aws EC2 credentials"
|
|
- func: "run aws auth test with aws web identity credentials"
|
|
- func: "run aws ECS auth test"
|
|
|
|
- name: "aws-auth-test-7.0"
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
AUTH: "auth"
|
|
ORCHESTRATION_FILE: "auth-aws.json"
|
|
TOPOLOGY: "server"
|
|
VERSION: "7.0"
|
|
- func: "assume ec2 role"
|
|
- func: "get aws auth secrets"
|
|
- func: "run aws auth test with regular aws credentials"
|
|
- func: "run aws auth test with assume role credentials"
|
|
- func: "run aws auth test with aws credentials as environment variables"
|
|
- func: "run aws auth test with aws credentials and session token as environment variables"
|
|
- func: "run aws auth test with aws EC2 credentials"
|
|
- func: "run aws auth test with aws web identity credentials"
|
|
- func: "run aws ECS auth test"
|
|
|
|
- name: "aws-auth-test-8.0"
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
AUTH: "auth"
|
|
ORCHESTRATION_FILE: "auth-aws.json"
|
|
TOPOLOGY: "server"
|
|
VERSION: "8.0"
|
|
- func: "assume ec2 role"
|
|
- func: "get aws auth secrets"
|
|
- func: "run aws auth test with regular aws credentials"
|
|
- func: "run aws auth test with assume role credentials"
|
|
- func: "run aws auth test with aws credentials as environment variables"
|
|
- func: "run aws auth test with aws credentials and session token as environment variables"
|
|
- func: "run aws auth test with aws EC2 credentials"
|
|
- func: "run aws auth test with aws web identity credentials"
|
|
- func: "run aws ECS auth test"
|
|
|
|
- name: "aws-auth-test-rapid"
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
AUTH: "auth"
|
|
ORCHESTRATION_FILE: "auth-aws.json"
|
|
TOPOLOGY: "server"
|
|
VERSION: "rapid"
|
|
- func: "assume ec2 role"
|
|
- func: "get aws auth secrets"
|
|
- func: "run aws auth test with regular aws credentials"
|
|
- func: "run aws auth test with assume role credentials"
|
|
- func: "run aws auth test with aws credentials as environment variables"
|
|
- func: "run aws auth test with aws credentials and session token as environment variables"
|
|
- func: "run aws auth test with aws EC2 credentials"
|
|
- func: "run aws auth test with aws web identity credentials"
|
|
- func: "run aws ECS auth test"
|
|
|
|
- name: "aws-auth-test-latest"
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
AUTH: "auth"
|
|
ORCHESTRATION_FILE: "auth-aws.json"
|
|
TOPOLOGY: "server"
|
|
VERSION: "latest"
|
|
- func: "assume ec2 role"
|
|
- func: "get aws auth secrets"
|
|
- func: "run aws auth test with regular aws credentials"
|
|
- func: "run aws auth test with assume role credentials"
|
|
- func: "run aws auth test with aws credentials as environment variables"
|
|
- func: "run aws auth test with aws credentials and session token as environment variables"
|
|
- func: "run aws auth test with aws EC2 credentials"
|
|
- func: "run aws auth test with aws web identity credentials"
|
|
- func: "run aws ECS auth test"
|
|
|
|
- name: "oidc-auth-test"
|
|
commands:
|
|
- func: "run oidc auth test with test credentials"
|
|
|
|
- name: "oidc-auth-test-azure"
|
|
commands:
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
binary: bash
|
|
working_dir: src
|
|
env:
|
|
OIDC_ENV: azure
|
|
include_expansions_in_env: ["DRIVERS_TOOLS"]
|
|
args:
|
|
- ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-oidc-remote-test.sh
|
|
|
|
- name: "oidc-auth-test-gcp"
|
|
commands:
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
binary: bash
|
|
working_dir: src
|
|
env:
|
|
OIDC_ENV: gcp
|
|
include_expansions_in_env: ["DRIVERS_TOOLS"]
|
|
args:
|
|
- ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-oidc-remote-test.sh
|
|
|
|
- name: "oidc-auth-test-k8s"
|
|
commands:
|
|
- func: "run oidc k8s auth test"
|
|
vars:
|
|
K8S_VARIANT: eks
|
|
- func: "run oidc k8s auth test"
|
|
vars:
|
|
K8S_VARIANT: gke
|
|
- func: "run oidc k8s auth test"
|
|
vars:
|
|
K8S_VARIANT: aks
|
|
# }}}
|
|
- 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"
|
|
|
|
- name: "testgcpkms-task"
|
|
commands:
|
|
- command: subprocess.exec
|
|
type: setup
|
|
params:
|
|
working_dir: "src"
|
|
binary: bash
|
|
include_expansions_in_env: ["DRIVERS_TOOLS"]
|
|
args:
|
|
- .evergreen/run-gcpkms-test.sh
|
|
|
|
- name: "testgcpkms-fail-task"
|
|
# testgcpkms-fail-task runs in a non-GCE environment.
|
|
# It is expected to fail to obtain GCE credentials.
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "server"
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
include_expansions_in_env: ["PYTHON_BINARY"]
|
|
working_dir: "src"
|
|
binary: "bash"
|
|
args:
|
|
- .evergreen/scripts/run-gcpkms-fail-test.sh
|
|
|
|
- name: testazurekms-task
|
|
commands:
|
|
- command: subprocess.exec
|
|
params:
|
|
binary: bash
|
|
working_dir: src
|
|
include_expansions_in_env: ["DRIVERS_TOOLS"]
|
|
args:
|
|
- .evergreen/run-azurekms-test.sh
|
|
|
|
- name: testazurekms-fail-task
|
|
commands:
|
|
- func: fetch source
|
|
- func: make files executable
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "latest"
|
|
TOPOLOGY: "server"
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
binary: bash
|
|
working_dir: src
|
|
include_expansions_in_env: ["DRIVERS_TOOLS"]
|
|
args:
|
|
- .evergreen/run-azurekms-fail-test.sh
|
|
|
|
- name: "perf-6.0-standalone"
|
|
tags: ["perf"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "v6.0-perf"
|
|
TOPOLOGY: "server"
|
|
- func: "run perf tests"
|
|
- func: "attach benchmark test results"
|
|
- func: "send dashboard data"
|
|
|
|
- name: "perf-6.0-standalone-ssl"
|
|
tags: ["perf"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "v6.0-perf"
|
|
TOPOLOGY: "server"
|
|
SSL: "ssl"
|
|
- func: "run perf tests"
|
|
- func: "attach benchmark test results"
|
|
- func: "send dashboard data"
|
|
|
|
- name: "perf-8.0-standalone"
|
|
tags: ["perf"]
|
|
commands:
|
|
- func: "bootstrap mongo-orchestration"
|
|
vars:
|
|
VERSION: "8.0"
|
|
TOPOLOGY: "server"
|
|
- func: "run perf tests"
|
|
- func: "attach benchmark test results"
|
|
- func: "send dashboard data"
|
|
|
|
- name: "check-import-time"
|
|
tags: ["pr"]
|
|
commands:
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
binary: bash
|
|
working_dir: src
|
|
args:
|
|
- .evergreen/scripts/check-import-time.sh
|
|
- ${revision}
|
|
- ${github_commit}
|
|
- name: "backport-pr"
|
|
allowed_requesters: ["commit"]
|
|
commands:
|
|
- command: subprocess.exec
|
|
type: test
|
|
params:
|
|
binary: bash
|
|
args:
|
|
- ${DRIVERS_TOOLS}/.evergreen/github_app/backport-pr.sh
|
|
- mongodb
|
|
- mongo-python-driver
|
|
- ${github_commit}
|
|
|
|
buildvariants:
|
|
- name: "no-server"
|
|
display_name: "No server"
|
|
run_on:
|
|
- rhel84-small
|
|
tasks:
|
|
- name: "no-server"
|
|
|
|
- name: "Coverage Report"
|
|
display_name: "Coverage Report"
|
|
run_on:
|
|
- rhel84-small
|
|
tasks:
|
|
- name: "coverage-report"
|
|
|
|
- name: testkms-variant
|
|
display_name: "KMS"
|
|
run_on:
|
|
- debian11-small
|
|
tasks:
|
|
- name: testgcpkms_task_group
|
|
batchtime: 20160 # Use a batchtime of 14 days as suggested by the CSFLE test README
|
|
- testgcpkms-fail-task
|
|
- name: testazurekms_task_group
|
|
batchtime: 20160 # Use a batchtime of 14 days as suggested by the CSFLE test README
|
|
- testazurekms-fail-task
|
|
|
|
- name: rhel8-test-lambda
|
|
display_name: FaaS Lambda
|
|
run_on: rhel87-small
|
|
tasks:
|
|
- name: test_aws_lambda_task_group
|
|
|
|
- name: rhel8-import-time
|
|
display_name: Import Time
|
|
run_on: rhel87-small
|
|
tasks:
|
|
- name: "check-import-time"
|
|
|
|
- name: backport-pr
|
|
display_name: "Backport PR"
|
|
run_on:
|
|
- rhel8.7-small
|
|
tasks:
|
|
- name: "backport-pr"
|
|
|
|
- name: "perf-tests"
|
|
display_name: "Performance Benchmarks"
|
|
batchtime: 10080 # 7 days
|
|
run_on: rhel90-dbx-perf-large
|
|
tasks:
|
|
- name: "perf-6.0-standalone"
|
|
- name: "perf-6.0-standalone-ssl"
|
|
- name: "perf-8.0-standalone"
|
|
|
|
# Platform notes
|
|
# i386 builds of OpenSSL or Cyrus SASL are not available
|
|
# 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.6 and RHEL 8.4 only supports 3.6+.
|
|
# 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 :
|