Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
207 changes: 100 additions & 107 deletions .evergreen/config.yml

Large diffs are not rendered by default.

79 changes: 32 additions & 47 deletions .evergreen/config/axes.yml.erb
Original file line number Diff line number Diff line change
@@ -1,15 +1,4 @@
axes:

- id: preload
display_name: Preload server
values:
- id: nopreload
display_name: Do not preload
- id: preload
display_name: Preload
variables:
PRELOAD_ARG: -p

- id: "mongodb-version"
display_name: MongoDB Version
values:
Expand Down Expand Up @@ -63,23 +52,29 @@ axes:
- id: "standalone"
display_name: Standalone
variables:
TOPOLOGY: standalone
TOPOLOGY: server
MLAUNCH_TOPOLOGY: standalone
- id: "replica-set"
display_name: Replica Set
variables:
TOPOLOGY: replica-set
TOPOLOGY: replica_set
MLAUNCH_TOPOLOGY: replica-set
- id: "replica-set-single-node"
display_name: Replica Set (Single Node)
variables:
TOPOLOGY: replica-set-single-node
MLAUNCH_TOPOLOGY: replica-set-single-node
- id: "sharded-cluster"
display_name: Sharded
variables:
TOPOLOGY: sharded-cluster
TOPOLOGY: sharded_cluster
MLAUNCH_TOPOLOGY: sharded-cluster
- id: "load-balanced"
display_name: Load Balanced
variables:
TOPOLOGY: load-balanced
TOPOLOGY: sharded_cluster
MLAUNCH_TOPOLOGY: sharded-cluster
LOAD_BALANCED: 'true'

- id: "single-mongos"
display_name: Single Mongos
Expand All @@ -96,22 +91,22 @@ axes:
display_name: Auth SSL
variables:
AUTH: "auth"
SSL: "ssl"
SSL: "yes"
- id: "auth-and-nossl"
display_name: Auth NoSSL
variables:
AUTH: "auth"
- id: "noauth-and-ssl"
display_name: NoAuth SSL
variables:
SSL: "ssl"
SSL: "yes"
- id: "noauth-and-nossl"
display_name: NoAuth NoSSL
- id: "x509"
display_name: X.509
variables:
AUTH: "x509"
SSL: "ssl"
SSL: "yes"
- id: kerberos
display_name: Kerberos
variables:
Expand Down Expand Up @@ -140,6 +135,14 @@ axes:
- id: "ruby"
display_name: Ruby Version
values:
- id: "ruby-dev"
display_name: ruby-dev
variables:
RVM_RUBY: "ruby-dev"
- id: "ruby-3.5"
display_name: ruby-3.5
variables:
RVM_RUBY: "ruby-3.5"
- id: "ruby-3.4"
display_name: ruby-3.4
variables:
Expand Down Expand Up @@ -168,25 +171,22 @@ axes:
display_name: ruby-2.7
variables:
RVM_RUBY: "ruby-2.7"
- id: "ruby-head"
display_name: ruby-head
variables:
RVM_RUBY: "ruby-head"
- id: "jruby-9.3"
display_name: jruby-9.3
- id: "jruby-10"
display_name: jruby-10
variables:
RVM_RUBY: "jruby-9.3"
RVM_RUBY: "jruby-10"
- id: "jruby-9.4"
display_name: jruby-9.4
variables:
RVM_RUBY: "jruby-9.4"
- id: "jruby-9.3"
display_name: jruby-9.3
variables:
RVM_RUBY: "jruby-9.3"

- id: "os"
display_name: OS
values:
- id: debian11
display_name: "Debian 11"
run_on: debian11-small
- id: ubuntu2404
display_name: "Ubuntu 24.04"
run_on: ubuntu2404-small
Expand All @@ -205,16 +205,9 @@ axes:
- id: ubuntu1804
display_name: "Ubuntu 18.04"
run_on: ubuntu1804-small

- id: docker-distro
display_name: Docker Distro
values:
<% %w(debian11 ubuntu2204).each do |distro| %>
- id: <%= distro %>
display_name: <%= distro %>
variables:
DOCKER_DISTRO: <%= distro %>
<% end %>
- id: debian11
display_name: "Debian 11"
run_on: debian11-small

- id: "compressor"
display_name: Compressor
Expand Down Expand Up @@ -304,15 +297,6 @@ axes:
variables:
BSON: min

- id: storage-engine
display_name: Storage Engine
values:
- id: mmapv1
display_name: MMAPv1
run_on: ubuntu2004-small
variables:
MMAPV1: 'true'

- id: "fle"
display_name: FLE
values:
Expand Down Expand Up @@ -403,5 +387,6 @@ axes:
display_name: Yes
variables:
API_VERSION_REQUIRED: 1
REQUIRE_API_VERSION: 1
- id: no
display_name: No
98 changes: 54 additions & 44 deletions .evergreen/config/common.yml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ pre_error_fails_task: true
# Actual testing tasks are marked with `type: test`
command_type: system

# Protect ourself against rogue test case, or curl gone wild, that runs forever.
# Protect ourselves against rogue test case, or curl gone wild, that runs forever.
exec_timeout_secs: 5400

# What to do when evergreen hits the timeout (`post:` tasks are run automatically)
Expand All @@ -21,6 +21,11 @@ timeout:
true

functions:
assume-test-secrets-ec2-role:
- command: ec2.assume_role
params:
role_arn: ${aws_test_secrets_role}

"fetch source":
# Executes git clone and applies the submitted patch, if any
- command: git.get_project
Expand All @@ -34,7 +39,7 @@ functions:

git submodule update --init --recursive

"create expansions":
setup-system:
# Make an evergreen expansion file with dynamic values
- command: shell.exec
params:
Expand Down Expand Up @@ -85,6 +90,7 @@ functions:
export AUTH=${AUTH}
export SSL=${SSL}
export TOPOLOGY=${TOPOLOGY}
export MLAUNCH_TOPOLOGY=${MLAUNCH_TOPOLOGY}
export COMPRESSOR=${COMPRESSOR}
export RVM_RUBY="${RVM_RUBY}"
export MONGODB_VERSION=${MONGODB_VERSION}
Expand Down Expand Up @@ -122,12 +128,30 @@ functions:

# 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
- command: subprocess.exec
params:
binary: bash
include_expansions_in_env: ["PROJECT_DIRECTORY"]
args:
- "${DRIVERS_TOOLS}/.evergreen/setup.sh"

bootstrap-mongo-orchestration:
- command: subprocess.exec
params:
binary: bash
env:
MONGODB_VERSION: ${MONGODB_VERSION}
include_expansions_in_env: [TOPOLOGY, AUTH, SSL, ORCHESTRATION_FILE,
REQUIRE_API_VERSION, LOAD_BALANCER]
args: ["${DRIVERS_TOOLS}/.evergreen/run-orchestration.sh"]
- command: expansions.update
params:
file: mo-expansion.yml

"export AWS auth credentials":
- command: shell.exec
Expand Down Expand Up @@ -176,6 +200,8 @@ functions:
export AWS_DEFAULT_REGION="${fle_aws_region}"
fi
export CSOT_SPEC_TESTS=1
unset TOPOLOGY
export TOPOLOGY=${MLAUNCH_TOPOLOGY}
TEST_CMD="bundle exec rspec spec/spec_tests/client_side_operations_timeout_spec.rb --format Rfc::Riff --format RspecJunitFormatter --out tmp/rspec.xml" \
.evergreen/run-tests.sh

Expand Down Expand Up @@ -252,40 +278,6 @@ functions:
content_type: ${content_type|application/x-gzip}
display_name: "mongodb-logs.tar.gz"

"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:
- "./**"
- 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 to s3":
- command: s3.put
params:
Expand Down Expand Up @@ -357,11 +349,22 @@ functions:
working_dir: "src"
script: |
${PREPARE_SHELL}
unset TOPOLOGY
export TOPOLOGY=${MLAUNCH_TOPOLOGY}
TEST_CMD="bundle exec rake driver_bench" PERFORMANCE_RESULTS_FILE="$PROJECT_DIRECTORY/perf.json" .evergreen/run-tests.sh
- command: perf.send
params:
file: "${PROJECT_DIRECTORY}/perf.json"

"run tests with orchestration and drivers tools":
- command: subprocess.exec
type: test
params:
binary: bash
working_dir: "src"
include_expansions_in_env: [MONGODB_URI, AUTH, SSL, TOPOLOGY, COMPRESSOR, RVM_RUBY]
args:
- ".evergreen/run-tests-new.sh"
"run tests":
- command: shell.exec
type: test
Expand All @@ -377,6 +380,8 @@ functions:
export AWS_SECRET_ACCESS_KEY="${fle_aws_secret}"
export AWS_DEFAULT_REGION="${fle_aws_region}"
fi
unset TOPOLOGY
export TOPOLOGY=${MLAUNCH_TOPOLOGY}
.evergreen/run-tests.sh

"run AWS auth tests":
Expand All @@ -387,6 +392,8 @@ functions:
working_dir: "src"
script: |
${PREPARE_SHELL}
unset TOPOLOGY
export TOPOLOGY=${MLAUNCH_TOPOLOGY}
.evergreen/run-tests-aws-auth.sh

"run Kerberos unit tests":
Expand Down Expand Up @@ -419,13 +426,12 @@ functions:
.evergreen/run-tests-atlas.sh

pre:
- func: assume-test-secrets-ec2-role
- func: "fetch source"
- func: "create expansions"
- func: setup-system

post:
- func: "delete private environment"
# Removed, causing timeouts
# - func: "upload working dir"
- func: "upload mo artifacts"
- func: "upload test results"
- func: "upload test results to s3"
Expand All @@ -436,7 +442,7 @@ task_groups:
setup_group_timeout_secs: 1800 # 30 minutes
setup_group:
- func: fetch source
- func: create expansions
- func: setup-system
- command: shell.exec
params:
shell: "bash"
Expand Down Expand Up @@ -486,7 +492,7 @@ task_groups:
setup_group_timeout_secs: 1800 # 30 minutes
setup_group:
- func: fetch source
- func: create expansions
- func: setup-system
- command: shell.exec
params:
shell: "bash"
Expand Down Expand Up @@ -536,7 +542,7 @@ task_groups:
setup_group_timeout_secs: 1800 # 30 minutes
setup_group:
- func: fetch source
- func: "create expansions"
- func: setup-system
- command: shell.exec
params:
shell: "bash"
Expand Down Expand Up @@ -573,7 +579,7 @@ task_groups:
setup_group_timeout_secs: 1800 # 30 minutes
setup_group:
- func: fetch source
- func: "create expansions"
- func: setup-system
- command: shell.exec
params:
shell: "bash"
Expand Down Expand Up @@ -613,6 +619,10 @@ task_groups:
- testazurekms-task

tasks:
- name: "run-main-test-suite"
commands:
- func: bootstrap-mongo-orchestration
- func: "run tests with orchestration and drivers tools"
- name: "test-atlas"
commands:
- func: "run Atlas tests"
Expand Down
Loading
Loading