1########################################
2# Evergreen Template for MongoDB Drivers
3########################################
4
5# When a task that used to pass starts to fail
6# Go through all versions that may have been skipped to detect
7# when the task started failing
8stepback: true
9
10# Mark a failure as a system/bootstrap failure (purple box) rather then a task
11# failure by default.
12# Actual testing tasks are marked with `type: test`
13command_type: setup
14
15# Fail builds when pre tasks fail.
16pre_error_fails_task: true
17
18# Protect the CI from long or indefinite runtimes.
19exec_timeout_secs: 3600
20
21# What to do when evergreen hits the timeout (`post:` tasks are run automatically)
22timeout:
23 - command: shell.exec
24 params:
25 shell: "bash"
26 script: |
27 ls -la
28functions:
29 fetch-source:
30 # Executes clone and applies the submitted patch, if any
31 - command: git.get_project
32 type: system
33 params:
34 directory: src/go.mongodb.org/mongo-driver
35 # Make an evergreen expansion file with dynamic values
36 - command: shell.exec
37 params:
38 shell: "bash"
39 working_dir: src/go.mongodb.org/mongo-driver
40 script: |
41 set -o errexit
42
43 # Get the current unique version of this checkout.
44 if [ "${is_patch}" = "true" ]; then
45 CURRENT_VERSION=$(git describe)-patch-${version_id}
46 else
47 CURRENT_VERSION=latest
48 fi
49
50 # Set Golang environment vars. GOROOT is wherever current Go distribution is; GOPATH is always 3
51 # directories up from pwd; GOCACHE is under .cache in the pwd.
52 export GOROOT="${GO_DIST}"
53 export GOPATH="$(dirname $(dirname $(dirname `pwd`)))"
54 export GOCACHE="$(pwd)/.cache"
55
56 # Set other relevant variables for Evergreen processes.
57 export DRIVERS_TOOLS="$(dirname $(dirname $(dirname `pwd`)))/drivers-tools"
58 export PROJECT_DIRECTORY="$(pwd)"
59 export MONGO_ORCHESTRATION_HOME="$DRIVERS_TOOLS/.evergreen/orchestration"
60 export MONGODB_BINARIES="$DRIVERS_TOOLS/mongodb/bin"
61 export UPLOAD_BUCKET="${project}"
62 export PROJECT="${project}"
63
64 # If on Windows, convert paths with cygpath. GOROOT should not be converted as Windows expects it
65 # to be separated with '\'.
66 if [ "Windows_NT" = "$OS" ]; then
67 export GOPATH=$(cygpath -m $GOPATH)
68 export GOCACHE=$(cygpath -m $GOCACHE)
69 export DRIVERS_TOOLS=$(cygpath -m $DRIVERS_TOOLS)
70 export PROJECT_DIRECTORY=$(cygpath -m $PROJECT_DIRECTORY)
71 export MONGO_ORCHESTRATION_HOME=$(cygpath -m $MONGO_ORCHESTRATION_HOME)
72 export MONGODB_BINARIES=$(cygpath -m $MONGODB_BINARIES)
73 export UPLOAD_BUCKET=$(cygpath -m $UPLOAD_BUCKET)
74 export PROJECT=$(cygpath -m $PROJECT)
75
76 # Set home variables for Windows, too.
77 export USERPROFILE=$(cygpath -w $(dirname $(dirname $(dirname `pwd`))))
78 export HOME=$USERPROFILE
79 fi
80
81 # Set actual PATH. PATH should contain binaries from GOROOT, GOPATH, GCC_PATH and mongodb.
82 export GOROOTBIN="$GOROOT/bin"
83 export GOPATHBIN="$GOPATH/bin"
84 if [ "Windows_NT" = "$OS" ]; then
85 # Convert all Windows-style paths (e.g. C:/) to Bash-style Cygwin paths
86 # (e.g. /cygdrive/c/...) because PATH is interpreted by Bash, which uses ":" as a
87 # separator so doesn't support Windows-style paths. Other scripts or binaries that
88 # aren't part of Cygwin still need the environment variables to use Windows-style
89 # paths, so only convert them when setting PATH. Note that GCC_PATH is already a
90 # Bash-style Cygwin path for all Windows tasks.
91 export PATH="$(cygpath $GOROOTBIN):$(cygpath $GOPATHBIN):${GCC_PATH}:$(cygpath $MONGODB_BINARIES):$PATH"
92 else
93 export PATH="$GOROOTBIN:$GOPATHBIN:${GCC_PATH}:$MONGODB_BINARIES:$PATH"
94 fi
95
96 # Check Go installation.
97 go version
98 go env
99
100 # Install libmongocrypt.
101 bash etc/install-libmongocrypt.sh
102 if [ "Windows_NT" = "$OS" ]; then
103 export PATH=$PATH:/cygdrive/c/libmongocrypt/bin
104 fi
105
106 cat <<EOT > expansion.yml
107 CURRENT_VERSION: "$CURRENT_VERSION"
108 DRIVERS_TOOLS: "$DRIVERS_TOOLS"
109 MONGO_ORCHESTRATION_HOME: "$MONGO_ORCHESTRATION_HOME"
110 MONGODB_BINARIES: "$MONGODB_BINARIES"
111 UPLOAD_BUCKET: "$UPLOAD_BUCKET"
112 PROJECT_DIRECTORY: "$PROJECT_DIRECTORY"
113 PREPARE_SHELL: |
114 set -o errexit
115 export SKIP_LEGACY_SHELL=1
116 export GOROOT="$GOROOT"
117 export GOPATH="$GOPATH"
118 export GOCACHE="$GOCACHE"
119 export DRIVERS_TOOLS="$DRIVERS_TOOLS"
120 export PROJECT_DIRECTORY="$PROJECT_DIRECTORY"
121 export MONGO_ORCHESTRATION_HOME="$MONGO_ORCHESTRATION_HOME"
122 export MONGODB_BINARIES="$MONGODB_BINARIES"
123 export UPLOAD_BUCKET="$UPLOAD_BUCKET"
124 export PROJECT="$PROJECT"
125 export TMPDIR="$MONGO_ORCHESTRATION_HOME/db"
126 export PKG_CONFIG_PATH=$(pwd)/install/libmongocrypt/lib64/pkgconfig
127 export LD_LIBRARY_PATH=$(pwd)/install/libmongocrypt/lib64
128 export PATH="$PATH"
129 EOT
130 # See what we variables we've set.
131 cat expansion.yml
132 # Load the expansion file to make an evergreen variable with the current unique version
133 - command: expansions.update
134 params:
135 file: src/go.mongodb.org/mongo-driver/expansion.yml
136
137 prepare-resources:
138 - command: shell.exec
139 params:
140 shell: "bash"
141 script: |
142 ${PREPARE_SHELL}
143 rm -rf $DRIVERS_TOOLS
144 if [ "${project}" = "drivers-tools" ]; then
145 # If this was a patch build, doing a fresh clone would not actually test the patch
146 cp -R ${PROJECT_DIRECTORY}/ $DRIVERS_TOOLS
147 else
148 git clone https://github.com/mongodb-labs/drivers-evergreen-tools.git $DRIVERS_TOOLS
149 fi
150 echo "{ \"releases\": { \"default\": \"$MONGODB_BINARIES\" }}" > $MONGO_ORCHESTRATION_HOME/orchestration.config
151 - command: shell.exec
152 params:
153 shell: "bash"
154 working_dir: src/go.mongodb.org/mongo-driver
155 script: |
156 ${PREPARE_SHELL}
157
158 # initialize submodules
159 git submodule init
160 git submodule update
161 - command: shell.exec
162 params:
163 shell: "bash"
164 working_dir: src/go.mongodb.org/mongo-driver
165 script: |
166 . ${DRIVERS_TOOLS}/.evergreen/venv-utils.sh
167 . ${DRIVERS_TOOLS}/.evergreen/find-python3.sh
168
169 export PYTHON3_BINARY="$(find_python3 2>/dev/null)"
170 venvcreate "$PYTHON3_BINARY" venv
171
172 echo "PYTHON3_BINARY: $PYTHON3_BINARY" >>expansion.yml
173 # Load the expansion file to make an evergreen variable with the current unique version
174 - command: expansions.update
175 params:
176 file: src/go.mongodb.org/mongo-driver/expansion.yml
177
178 handle-test-artifacts:
179 - command: gotest.parse_files
180 params:
181 files:
182 - "src/go.mongodb.org/mongo-driver/*.suite"
183 - command: shell.exec
184 params:
185 shell: "bash"
186 script: |
187 ${PREPARE_SHELL}
188 find $MONGO_ORCHESTRATION_HOME -name \*.log | xargs tar czf mongodb-logs.tar.gz
189 - command: s3.put
190 params:
191 aws_key: ${aws_key}
192 aws_secret: ${aws_secret}
193 local_file: mongodb-logs.tar.gz
194 remote_file: ${UPLOAD_BUCKET}/${build_variant}/${revision}/${version_id}/${build_id}/logs/${task_id}-${execution}-mongodb-logs.tar.gz
195 bucket: mciuploads
196 permissions: public-read
197 content_type: ${content_type|application/x-gzip}
198 display_name: "mongodb-logs.tar.gz"
199 - command: s3.put
200 params:
201 aws_key: ${aws_key}
202 aws_secret: ${aws_secret}
203 optional: true
204 local_file: ${PROJECT_DIRECTORY}/fuzz.tgz
205 remote_file: ${UPLOAD_BUCKET}/${build_variant}/${revision}/${version_id}/${build_id}/${task_id}-${execution}-fuzz.tgz
206 bucket: mciuploads
207 permissions: public-read
208 content_type: application/x-gzip
209 display_name: "fuzz.tgz"
210 - command: shell.exec
211 params:
212 shell: "bash"
213 working_dir: src/go.mongodb.org/mongo-driver
214 script: |
215 ${PREPARE_SHELL}
216 find . -name \*.suite | xargs tar czf test_suite.tgz
217 - command: s3.put
218 params:
219 aws_key: ${aws_key}
220 aws_secret: ${aws_secret}
221 local_file: src/go.mongodb.org/mongo-driver/test_suite.tgz
222 optional: true
223 remote_file: ${UPLOAD_BUCKET}/${build_variant}/${revision}/${version_id}/${build_id}/logs/${task_id}-${execution}-test_suite.tgz
224 bucket: mciuploads
225 permissions: public-read
226 content_type: ${content_type|text/plain}
227 display_name: "test_suite.tgz"
228
229 bootstrap-mongohoused:
230 - command: shell.exec
231 params:
232 shell: "bash"
233 script: |
234 ${PREPARE_SHELL}
235
236 cd $DRIVERS_TOOLS/.evergreen/atlas_data_lake
237 DRIVERS_TOOLS="${DRIVERS_TOOLS}" bash pull-mongohouse-image.sh
238 - command: shell.exec
239 params:
240 shell: "bash"
241 script: |
242 ${PREPARE_SHELL}
243
244 cd $DRIVERS_TOOLS/.evergreen/atlas_data_lake
245 DRIVERS_TOOLS="${DRIVERS_TOOLS}" bash run-mongohouse-image.sh
246
247 bootstrap-mongo-orchestration:
248 - command: shell.exec
249 params:
250 shell: "bash"
251 script: |
252 set -x
253 ${PREPARE_SHELL}
254
255 MONGODB_VERSION=${VERSION} \
256 TOPOLOGY=${TOPOLOGY} \
257 AUTH=${AUTH} \
258 SSL=${SSL} \
259 ORCHESTRATION_FILE=${ORCHESTRATION_FILE} \
260 REQUIRE_API_VERSION=${REQUIRE_API_VERSION} \
261 LOAD_BALANCER=${LOAD_BALANCER} \
262 bash ${DRIVERS_TOOLS}/.evergreen/run-orchestration.sh
263 - command: expansions.update
264 params:
265 file: mo-expansion.yml
266
267 ocsp-bootstrap-mongo-orchestration:
268 - command: shell.exec
269 params:
270 shell: "bash"
271 script: |
272 ${PREPARE_SHELL}
273
274 MONGODB_VERSION=${VERSION} \
275 TOPOLOGY=${TOPOLOGY} \
276 AUTH=${AUTH} \
277 SSL=${SSL} \
278 ORCHESTRATION_FILE=${ORCHESTRATION_FILE} \
279 bash ${DRIVERS_TOOLS}/.evergreen/run-orchestration.sh
280 - command: expansions.update
281 params:
282 file: mo-expansion.yml
283
284 cleanup:
285 - command: shell.exec
286 params:
287 shell: "bash"
288 script: |
289 # Ensure the instance profile is reassigned for aws tests.
290 cd "${DRIVERS_TOOLS}/.evergreen/auth_aws"
291 if [ -f "./aws_e2e_setup.json" ]; then
292 . ./activate-authawsvenv.sh
293 python ./lib/aws_assign_instance_profile.py
294 fi
295 - command: shell.exec
296 params:
297 shell: "bash"
298 script: |
299 # Attempt to shut down a running load balancer. Ignore any errors that happen if the load
300 # balancer is not running.
301 DRIVERS_TOOLS=${DRIVERS_TOOLS} MONGODB_URI=${MONGODB_URI} bash ${DRIVERS_TOOLS}/.evergreen/run-load-balancer.sh stop || echo "Ignoring load balancer stop error"
302 - command: shell.exec
303 params:
304 shell: "bash"
305 script: |
306 ${PREPARE_SHELL}
307 # Clean up cse servers
308 bash ${DRIVERS_TOOLS}/.evergreen/csfle/stop-servers.sh
309 - command: shell.exec
310 params:
311 shell: "bash"
312 script: |
313 ${PREPARE_SHELL}
314 # Stop orchestration and remove drivers tools.
315 bash ${DRIVERS_TOOLS}/.evergreen/stop-orchestration.sh
316 cd -
317 rm -rf $DRIVERS_TOOLS || true
318
319
320 fix-absolute-paths:
321 - command: shell.exec
322 params:
323 shell: "bash"
324 script: |
325 ${PREPARE_SHELL}
326 for filename in $(find ${DRIVERS_TOOLS} -name \*.json); do
327 perl -p -i -e "s|ABSOLUTE_PATH_REPLACEMENT_TOKEN|${DRIVERS_TOOLS}|g" $filename
328 done
329
330 windows-fix:
331 - command: shell.exec
332 params:
333 shell: "bash"
334 script: |
335 ${PREPARE_SHELL}
336 for i in $(find ${DRIVERS_TOOLS}/.evergreen ${PROJECT_DIRECTORY} -name \*.sh); do
337 cat $i | tr -d '\r' > $i.new
338 mv $i.new $i
339 done
340 # Copy client certificate because symlinks do not work on Windows. Ignore any copy errors.
341 cp ${DRIVERS_TOOLS}/.evergreen/x509gen/client.pem ${MONGO_ORCHESTRATION_HOME}/lib/client.pem || echo "Ignoring copy error"
342
343 make-files-executable:
344 - command: shell.exec
345 params:
346 shell: "bash"
347 script: |
348 ${PREPARE_SHELL}
349 for i in $(find ${DRIVERS_TOOLS}/.evergreen ${PROJECT_DIRECTORY} -name \*.sh); do
350 chmod +x $i
351 done
352
353 run-make:
354 - command: shell.exec
355 type: test
356 params:
357 shell: "bash"
358 working_dir: src/go.mongodb.org/mongo-driver
359 script: |
360 ${PREPARE_SHELL}
361 ${BUILD_ENV|} BUILD_TAGS=${BUILD_TAGS|-tags=cse,gssapi} make ${targets}
362
363 run-tests:
364 - command: shell.exec
365 type: test
366 params:
367 shell: "bash"
368 working_dir: src/go.mongodb.org/mongo-driver
369 include_expansions_in_env: ["TOPOLOGY", "AUTH", "SSL", "MONGODB_URI", "CRYPT_SHARED_LIB_PATH", "SKIP_CRYPT_SHARED_LIB", "RACE", "MONGO_GO_DRIVER_COMPRESSOR", "REQUIRE_API_VERSION", "LOAD_BALANCER"]
370 script: |
371 ${PREPARE_SHELL}
372 bash ${PROJECT_DIRECTORY}/.evergreen/run-tests.sh
373
374 create-api-report:
375 - command: shell.exec
376 type: test
377 params:
378 shell: "bash"
379 working_dir: src/go.mongodb.org/mongo-driver
380 script: |
381 ${PREPARE_SHELL}
382 export BASE_SHA=${revision}
383 export HEAD_SHA=${github_commit}
384 bash etc/api_report.sh
385
386 "add PR labels":
387 - command: shell.exec
388 type: test
389 params:
390 shell: "bash"
391 working_dir: src/go.mongodb.org/mongo-driver
392 script: |
393 ${PREPARE_SHELL}
394 export CONFIG=$PROJECT_DIRECTORY/.github/labeler.yml
395 export SCRIPT="$DRIVERS_TOOLS/.evergreen/github_app/apply-labels.sh"
396 bash $SCRIPT -l $CONFIG -h ${github_commit} -o "mongodb" -n "mongo-go-driver"
397
398 "add PR reviewer":
399 - command: shell.exec
400 type: test
401 params:
402 shell: "bash"
403 working_dir: src/go.mongodb.org/mongo-driver
404 script: |
405 ${PREPARE_SHELL}
406 export CONFIG=$PROJECT_DIRECTORY/.github/reviewers.txt
407 export SCRIPT="$DRIVERS_TOOLS/.evergreen/github_app/assign-reviewer.sh"
408 bash $SCRIPT -p $CONFIG -h ${github_commit} -o "mongodb" -n "mongo-go-driver"
409
410 send-perf-data:
411 - command: perf.send
412 params:
413 file: src/go.mongodb.org/mongo-driver/perf.json
414
415 run-enterprise-auth-tests:
416 - command: ec2.assume_role
417 params:
418 role_arn: "${aws_test_secrets_role}"
419 - command: shell.exec
420 type: test
421 params:
422 shell: "bash"
423 working_dir: src/go.mongodb.org/mongo-driver
424 include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
425 script: |
426 ${PREPARE_SHELL}
427 bash ./etc/run-enterprise-plain-test.sh
428
429 run-enterprise-gssapi-auth-tests:
430 - command: ec2.assume_role
431 params:
432 role_arn: "${aws_test_secrets_role}"
433 - command: shell.exec
434 type: test
435 params:
436 shell: "bash"
437 working_dir: src/go.mongodb.org/mongo-driver
438 include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
439 script: |
440 ${PREPARE_SHELL}
441 bash ./etc/run-enterprise-gssapi-test.sh
442
443 run-atlas-test:
444 - command: ec2.assume_role
445 params:
446 role_arn: "${aws_test_secrets_role}"
447 - command: shell.exec
448 type: test
449 params:
450 shell: "bash"
451 working_dir: src/go.mongodb.org/mongo-driver
452 include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
453 script: |
454 ${PREPARE_SHELL}
455 bash etc/run-atlas-test.sh
456
457 run-ocsp-test:
458 - command: shell.exec
459 type: test
460 params:
461 shell: "bash"
462 working_dir: src/go.mongodb.org/mongo-driver
463 script: |
464 ${PREPARE_SHELL}
465 export MONGO_GO_DRIVER_CA_FILE="$DRIVERS_TOOLS/.evergreen/ocsp/${OCSP_ALGORITHM}/ca.pem"
466 if [ "Windows_NT" = "$OS" ]; then # Magic variable in cygwin
467 export MONGO_GO_DRIVER_CA_FILE=$(cygpath -m $MONGO_GO_DRIVER_CA_FILE)
468 fi
469
470 AUTH="auth" \
471 SSL="ssl" \
472 TOPOLOGY="server" \
473 MONGODB_URI="${MONGODB_URI}" \
474 OCSP_TLS_SHOULD_SUCCEED="${OCSP_TLS_SHOULD_SUCCEED}" \
475 make evg-test-ocsp
476
477 run-versioned-api-test:
478 - command: shell.exec
479 type: test
480 params:
481 shell: "bash"
482 working_dir: src/go.mongodb.org/mongo-driver
483 script: |
484 ${PREPARE_SHELL}
485 source ./secrets-export.sh
486
487 if [ "${SKIP_CRYPT_SHARED_LIB}" = "true" ]; then
488 CRYPT_SHARED_LIB_PATH=""
489 echo "crypt_shared library is skipped"
490 elif [ -z "${CRYPT_SHARED_LIB_PATH}" ]; then
491 echo "crypt_shared library path is empty"
492 else
493 CRYPT_SHARED_LIB_PATH=${CRYPT_SHARED_LIB_PATH}
494 echo "crypt_shared library will be loaded from path: $CRYPT_SHARED_LIB_PATH"
495 fi
496
497 export GOFLAGS=-mod=vendor
498 AUTH="${AUTH}" \
499 SSL="${SSL}" \
500 MONGODB_URI="${MONGODB_URI}" \
501 TOPOLOGY="${TOPOLOGY}" \
502 MONGO_GO_DRIVER_COMPRESSOR=${MONGO_GO_DRIVER_COMPRESSOR} \
503 BUILD_TAGS="-tags=cse" \
504 REQUIRE_API_VERSION="${REQUIRE_API_VERSION}" \
505 CRYPT_SHARED_LIB_PATH="$CRYPT_SHARED_LIB_PATH" \
506 make evg-test-versioned-api \
507 PKG_CONFIG_PATH=$PKG_CONFIG_PATH \
508 LD_LIBRARY_PATH=$LD_LIBRARY_PATH
509
510 run-load-balancer-tests:
511 - command: shell.exec
512 type: test
513 params:
514 shell: "bash"
515 working_dir: src/go.mongodb.org/mongo-driver
516 script: |
517 ${PREPARE_SHELL}
518
519 if [ ${SSL} = "ssl" ]; then
520 export MONGO_GO_DRIVER_CA_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/ca.pem"
521 export MONGO_GO_DRIVER_KEY_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/client.pem"
522 export MONGO_GO_DRIVER_PKCS8_ENCRYPTED_KEY_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/client-pkcs8-encrypted.pem"
523 export MONGO_GO_DRIVER_PKCS8_UNENCRYPTED_KEY_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/client-pkcs8-unencrypted.pem"
524 if [ "Windows_NT" = "$OS" ]; then # Magic variable in cygwin
525 export MONGO_GO_DRIVER_CA_FILE=$(cygpath -m $MONGO_GO_DRIVER_CA_FILE)
526 export MONGO_GO_DRIVER_KEY_FILE=$(cygpath -m $MONGO_GO_DRIVER_KEY_FILE)
527 export MONGO_GO_DRIVER_PKCS8_ENCRYPTED_KEY_FILE=$(cygpath -m $MONGO_GO_DRIVER_PKCS8_ENCRYPTED_KEY_FILE)
528 export MONGO_GO_DRIVER_PKCS8_UNENCRYPTED_KEY_FILE=$(cygpath -m $MONGO_GO_DRIVER_PKCS8_UNENCRYPTED_KEY_FILE)
529 fi
530 fi
531
532 # Verify that the required LB URI expansions are set to ensure that the test runner can correctly connect to
533 # the LBs.
534 if [ -z "${SINGLE_MONGOS_LB_URI}" ]; then
535 echo "SINGLE_MONGOS_LB_URI must be set for testing against LBs"
536 exit 1
537 fi
538 if [ -z "${MULTI_MONGOS_LB_URI}" ]; then
539 echo "MULTI_MONGOS_LB_URI must be set for testing against LBs"
540 exit 1
541 fi
542
543 # Per the LB testing spec, the URI of an LB fronting a single mongos should be used to configure internal
544 # testing Client instances, so we set MONGODB_URI to SINGLE_MONGOS_LB_URI.
545 export GOFLAGS=-mod=vendor
546 AUTH="${AUTH}" \
547 SSL="${SSL}" \
548 MONGODB_URI="${SINGLE_MONGOS_LB_URI}" \
549 SINGLE_MONGOS_LB_URI="${SINGLE_MONGOS_LB_URI}" \
550 MULTI_MONGOS_LB_URI="${MULTI_MONGOS_LB_URI}" \
551 TOPOLOGY="${TOPOLOGY}" \
552 MONGO_GO_DRIVER_COMPRESSOR=${MONGO_GO_DRIVER_COMPRESSOR} \
553 make evg-test-load-balancers
554
555 run-serverless-tests:
556 - command: shell.exec
557 type: test
558 params:
559 shell: "bash"
560 working_dir: src/go.mongodb.org/mongo-driver
561 script: |
562 ${PREPARE_SHELL}
563 bash etc/run-serverless-test.sh
564
565 run-atlas-data-lake-test:
566 - command: shell.exec
567 type: test
568 params:
569 shell: "bash"
570 working_dir: src/go.mongodb.org/mongo-driver
571 script: |
572 ${PREPARE_SHELL}
573 AUTH="auth" \
574 SSL="nossl" \
575 TOPOLOGY="server" \
576 MONGODB_URI="mongodb://mhuser:pencil@localhost" \
577 make evg-test-atlas-data-lake
578
579 run-docker-test:
580 - command: shell.exec
581 type: test
582 params:
583 shell: "bash"
584 working_dir: src/go.mongodb.org/mongo-driver
585 script: |
586 ${PREPARE_SHELL}
587 bash etc/run_docker.sh
588 TOPOLOGY=sharded_cluster bash etc/run_docker.sh test-short
589
590 run-valid-ocsp-server:
591 - command: shell.exec
592 params:
593 shell: "bash"
594 background: true
595 script: |
596 cd ${DRIVERS_TOOLS}/.evergreen/ocsp
597 . ./activate-ocspvenv.sh
598
599 python ocsp_mock.py \
600 --ca_file ${OCSP_ALGORITHM}/ca.pem \
601 --ocsp_responder_cert ${OCSP_ALGORITHM}/ca.crt \
602 --ocsp_responder_key ${OCSP_ALGORITHM}/ca.key \
603 -p 8100 -v
604
605 run-revoked-ocsp-server:
606 - command: shell.exec
607 params:
608 shell: "bash"
609 background: true
610 script: |
611 cd ${DRIVERS_TOOLS}/.evergreen/ocsp
612 . ./activate-ocspvenv.sh
613
614 python ocsp_mock.py \
615 --ca_file ${OCSP_ALGORITHM}/ca.pem \
616 --ocsp_responder_cert ${OCSP_ALGORITHM}/ca.crt \
617 --ocsp_responder_key ${OCSP_ALGORITHM}/ca.key \
618 -p 8100 \
619 -v \
620 --fault revoked
621
622 run-valid-delegate-ocsp-server:
623 - command: shell.exec
624 params:
625 shell: "bash"
626 background: true
627 script: |
628 cd ${DRIVERS_TOOLS}/.evergreen/ocsp
629 . ./activate-ocspvenv.sh
630
631 python ocsp_mock.py \
632 --ca_file ${OCSP_ALGORITHM}/ca.pem \
633 --ocsp_responder_cert ${OCSP_ALGORITHM}/ocsp-responder.crt \
634 --ocsp_responder_key ${OCSP_ALGORITHM}/ocsp-responder.key \
635 -p 8100 -v
636
637 run-revoked-delegate-ocsp-server:
638 - command: shell.exec
639 params:
640 shell: "bash"
641 background: true
642 script: |
643 cd ${DRIVERS_TOOLS}/.evergreen/ocsp
644 . ./activate-ocspvenv.sh
645
646 python ocsp_mock.py \
647 --ca_file ${OCSP_ALGORITHM}/ca.pem \
648 --ocsp_responder_cert ${OCSP_ALGORITHM}/ocsp-responder.crt \
649 --ocsp_responder_key ${OCSP_ALGORITHM}/ocsp-responder.key \
650 -p 8100 \
651 -v \
652 --fault revoked
653
654 run-load-balancer:
655 - command: shell.exec
656 params:
657 shell: "bash"
658 script: |
659 DRIVERS_TOOLS=${DRIVERS_TOOLS} MONGODB_URI=${MONGODB_URI} bash ${DRIVERS_TOOLS}/.evergreen/run-load-balancer.sh start
660 - command: expansions.update
661 params:
662 file: lb-expansion.yml
663
664 run-search-index-tests:
665 - command: shell.exec
666 type: test
667 params:
668 shell: "bash"
669 working_dir: src/go.mongodb.org/mongo-driver
670 script: |
671 ${PREPARE_SHELL}
672 TEST_INDEX_URI="${TEST_INDEX_URI}" \
673 make evg-test-search-index
674
675 add-aws-auth-variables-to-file:
676 - command: ec2.assume_role
677 params:
678 role_arn: ${aws_test_secrets_role}
679 - command: subprocess.exec
680 type: test
681 params:
682 include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
683 binary: "bash"
684 args:
685 - ${DRIVERS_TOOLS}/.evergreen/auth_aws/setup-secrets.sh
686
687 run-aws-auth-test-with-regular-aws-credentials:
688 - command: shell.exec
689 type: test
690 params:
691 shell: "bash"
692 working_dir: "src"
693 script: |
694 ${PREPARE_SHELL}
695 ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh regular
696
697 run-aws-auth-test-with-assume-role-credentials:
698 - command: shell.exec
699 type: test
700 params:
701 shell: "bash"
702 working_dir: "src"
703 script: |
704 ${PREPARE_SHELL}
705 ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh assume-role
706
707 run-aws-auth-test-with-aws-EC2-credentials:
708 - command: shell.exec
709 type: test
710 params:
711 shell: "bash"
712 working_dir: "src"
713 script: |
714 ${PREPARE_SHELL}
715 if [ "${SKIP_EC2_AUTH_TEST}" = "true" ]; then
716 echo "This platform does not support the EC2 auth test, skipping..."
717 exit 0
718 fi
719 ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh ec2
720
721 run-aws-auth-test-with-aws-credentials-as-environment-variables:
722 - command: shell.exec
723 type: test
724 params:
725 shell: "bash"
726 working_dir: "src"
727 script: |
728 ${PREPARE_SHELL}
729 ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh env-creds
730
731 run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables:
732 - command: shell.exec
733 type: test
734 params:
735 shell: "bash"
736 working_dir: "src"
737 script: |
738 ${PREPARE_SHELL}
739 ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh session-creds
740
741 run-aws-ECS-auth-test:
742 - command: shell.exec
743 type: test
744 params:
745 shell: "bash"
746 working_dir: src/go.mongodb.org/mongo-driver
747 script: |
748 ${PREPARE_SHELL}
749 if [ "${SKIP_ECS_AUTH_TEST}" = "true" ]; then
750 echo "This platform does not support the ECS auth test, skipping..."
751 exit 0
752 fi
753 make build-aws-ecs-test
754 - command: shell.exec
755 type: test
756 params:
757 shell: "bash"
758 working_dir: "src"
759 script: |
760 ${PREPARE_SHELL}
761 if [ "${SKIP_ECS_AUTH_TEST}" = "true" ]; then
762 exit 0
763 fi
764 AUTH_AWS_DIR=${DRIVERS_TOOLS}/.evergreen/auth_aws
765 ECS_SRC_DIR=$AUTH_AWS_DIR/src
766 # pack up project directory to ssh it to the container
767 mkdir -p $ECS_SRC_DIR/.evergreen
768 cp ${PROJECT_DIRECTORY}/main $ECS_SRC_DIR
769 cp ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-ecs-test.sh $ECS_SRC_DIR/.evergreen
770 tar -czf $ECS_SRC_DIR/src.tgz -C $PROJECT_DIRECTORY .
771
772 export PROJECT_DIRECTORY="$ECS_SRC_DIR"
773 $AUTH_AWS_DIR/aws_setup.sh ecs
774
775 run-aws-auth-test-with-aws-web-identity-credentials:
776 - command: shell.exec
777 type: test
778 params:
779 shell: "bash"
780 working_dir: "src"
781 script: |
782 ${PREPARE_SHELL}
783 if [ "${SKIP_WEB_IDENTITY_AUTH_TEST}" = "true" ]; then
784 echo "This platform does not support the web identity auth test, skipping..."
785 exit 0
786 fi
787 ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh web-identity
788 - command: shell.exec
789 type: test
790 params:
791 shell: "bash"
792 working_dir: "src"
793 script: |
794 ${PREPARE_SHELL}
795 if [ "${SKIP_WEB_IDENTITY_AUTH_TEST}" = "true" ]; then
796 echo "This platform does not support the web identity auth test, skipping..."
797 exit 0
798 fi
799 export AWS_ROLE_SESSION_NAME="test"
800 ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh web-identity
801
802 start-cse-servers:
803 - command: ec2.assume_role
804 params:
805 role_arn: ${aws_test_secrets_role}
806 - command: subprocess.exec
807 params:
808 working_dir: src/go.mongodb.org/mongo-driver
809 binary: bash
810 background: true
811 include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN", "DRIVERS_TOOLS"]
812 args:
813 - etc/setup-encryption.sh
814 - command: subprocess.exec
815 params:
816 working_dir: src/go.mongodb.org/mongo-driver
817 binary: bash
818 args:
819 - ${DRIVERS_TOOLS}/.evergreen/csfle/await-servers.sh
820
821 run-kms-tls-test:
822 - command: shell.exec
823 type: test
824 params:
825 shell: "bash"
826 working_dir: src/go.mongodb.org/mongo-driver
827 script: |
828 ${PREPARE_SHELL}
829 source ./secrets-export.sh
830 export KMS_TLS_TESTCASE="${KMS_TLS_TESTCASE}"
831
832 export GOFLAGS=-mod=vendor
833 AUTH="${AUTH}" \
834 SSL="${SSL}" \
835 MONGODB_URI="${MONGODB_URI}" \
836 TOPOLOGY="${TOPOLOGY}" \
837 MONGO_GO_DRIVER_COMPRESSOR=${MONGO_GO_DRIVER_COMPRESSOR} \
838 BUILD_TAGS="-tags=cse" \
839 make evg-test-kms \
840 PKG_CONFIG_PATH=$PKG_CONFIG_PATH \
841 LD_LIBRARY_PATH=$LD_LIBRARY_PATH
842
843 run-kmip-tests:
844 - command: shell.exec
845 type: test
846 params:
847 shell: "bash"
848 working_dir: src/go.mongodb.org/mongo-driver
849 script: |
850 ${PREPARE_SHELL}
851 source ./secrets-export.sh
852 export KMS_MOCK_SERVERS_RUNNING="true"
853
854 export GOFLAGS=-mod=vendor
855 AUTH="${AUTH}" \
856 SSL="${SSL}" \
857 MONGODB_URI="${MONGODB_URI}" \
858 TOPOLOGY="${TOPOLOGY}" \
859 MONGO_GO_DRIVER_COMPRESSOR=${MONGO_GO_DRIVER_COMPRESSOR} \
860 BUILD_TAGS="-tags=cse" \
861 make evg-test-kmip \
862 PKG_CONFIG_PATH=$PKG_CONFIG_PATH \
863 LD_LIBRARY_PATH=$LD_LIBRARY_PATH
864
865 run-fuzz-tests:
866 - command: shell.exec
867 type: test
868 params:
869 shell: "bash"
870 working_dir: "src"
871 script: |
872 ${PREPARE_SHELL}
873 ${PROJECT_DIRECTORY}/.evergreen/run-fuzz.sh
874
875pre:
876 - func: fetch-source
877 - func: prepare-resources
878 - func: windows-fix
879 - func: fix-absolute-paths
880 - func: make-files-executable
881
882post:
883 - func: handle-test-artifacts
884 - func: cleanup
885
886tasks:
887 - name: static-analysis
888 tags: ["static-analysis"]
889 commands:
890 - func: run-make
891 vars:
892 targets: "check-fmt check-license check-modules lint"
893
894 - name: pull-request-helpers
895 allowed_requesters: ["patch", "github_pr"]
896 commands:
897 - func: "add PR reviewer"
898 - func: "add PR labels"
899 - func: "create-api-report"
900
901 - name: perf
902 tags: ["performance"]
903 exec_timeout_secs: 7200
904 commands:
905 - func: bootstrap-mongo-orchestration
906 vars:
907 TOPOLOGY: "server"
908 AUTH: "noauth"
909 SSL: "nossl"
910 - func: run-make
911 vars:
912 targets: driver-benchmark
913 - func: send-perf-data
914
915 - name: test-standalone-noauth-nossl
916 tags: ["test", "standalone"]
917 commands:
918 - func: bootstrap-mongo-orchestration
919 vars:
920 TOPOLOGY: "server"
921 AUTH: "noauth"
922 SSL: "nossl"
923 - func: start-cse-servers
924 - func: run-tests
925 vars:
926 TOPOLOGY: "server"
927 AUTH: "noauth"
928 SSL: "nossl"
929
930 - name: test-standalone-noauth-nossl-snappy-compression
931 tags: ["test", "standalone", "compression", "snappy"]
932 commands:
933 - func: bootstrap-mongo-orchestration
934 vars:
935 TOPOLOGY: "server"
936 AUTH: "noauth"
937 SSL: "nossl"
938 - func: start-cse-servers
939 - func: run-tests
940 vars:
941 TOPOLOGY: "server"
942 AUTH: "noauth"
943 SSL: "nossl"
944 MONGO_GO_DRIVER_COMPRESSOR: "snappy"
945
946 - name: test-standalone-noauth-nossl-zlib-compression
947 tags: ["test", "standalone", "compression", "zlib"]
948 commands:
949 - func: bootstrap-mongo-orchestration
950 vars:
951 TOPOLOGY: "server"
952 AUTH: "noauth"
953 SSL: "nossl"
954 - func: start-cse-servers
955 - func: run-tests
956 vars:
957 TOPOLOGY: "server"
958 AUTH: "noauth"
959 SSL: "nossl"
960 MONGO_GO_DRIVER_COMPRESSOR: "zlib"
961
962 - name: test-standalone-noauth-nossl-zstd-compression
963 tags: ["test", "standalone", "compression", "zstd"]
964 commands:
965 - func: bootstrap-mongo-orchestration
966 vars:
967 TOPOLOGY: "server"
968 AUTH: "noauth"
969 SSL: "nossl"
970 - func: start-cse-servers
971 - func: run-tests
972 vars:
973 TOPOLOGY: "server"
974 AUTH: "noauth"
975 SSL: "nossl"
976 MONGO_GO_DRIVER_COMPRESSOR: "zstd"
977
978 - name: test-standalone-auth-ssl
979 tags: ["test", "standalone", "authssl"]
980 commands:
981 - func: bootstrap-mongo-orchestration
982 vars:
983 TOPOLOGY: "server"
984 AUTH: "auth"
985 SSL: "ssl"
986 - func: start-cse-servers
987 - func: run-tests
988 vars:
989 TOPOLOGY: "server"
990 AUTH: "auth"
991 SSL: "ssl"
992
993 - name: test-standalone-auth-nossl
994 tags: ["test", "standalone", "authssl"]
995 commands:
996 - func: bootstrap-mongo-orchestration
997 vars:
998 TOPOLOGY: "server"
999 AUTH: "auth"
1000 SSL: "nossl"
1001 - func: start-cse-servers
1002 - func: run-tests
1003 vars:
1004 TOPOLOGY: "server"
1005 AUTH: "auth"
1006 SSL: "nossl"
1007
1008 - name: test-standalone-auth-ssl-snappy-compression
1009 tags: ["test", "standalone", "authssl", "compression", "snappy"]
1010 commands:
1011 - func: bootstrap-mongo-orchestration
1012 vars:
1013 TOPOLOGY: "server"
1014 AUTH: "auth"
1015 SSL: "ssl"
1016 - func: start-cse-servers
1017 - func: run-tests
1018 vars:
1019 TOPOLOGY: "server"
1020 AUTH: "auth"
1021 SSL: "ssl"
1022 MONGO_GO_DRIVER_COMPRESSOR: "snappy"
1023
1024 - name: test-standalone-auth-ssl-zlib-compression
1025 tags: ["test", "standalone", "authssl", "compression", "zlib"]
1026 commands:
1027 - func: bootstrap-mongo-orchestration
1028 vars:
1029 TOPOLOGY: "server"
1030 AUTH: "auth"
1031 SSL: "ssl"
1032 - func: start-cse-servers
1033 - func: run-tests
1034 vars:
1035 TOPOLOGY: "server"
1036 AUTH: "auth"
1037 SSL: "ssl"
1038 MONGO_GO_DRIVER_COMPRESSOR: "zlib"
1039
1040 - name: test-standalone-auth-ssl-zstd-compression
1041 tags: ["test", "standalone", "authssl", "compression", "zstd"]
1042 commands:
1043 - func: bootstrap-mongo-orchestration
1044 vars:
1045 TOPOLOGY: "server"
1046 AUTH: "auth"
1047 SSL: "ssl"
1048 - func: start-cse-servers
1049 - func: run-tests
1050 vars:
1051 TOPOLOGY: "server"
1052 AUTH: "auth"
1053 SSL: "ssl"
1054 MONGO_GO_DRIVER_COMPRESSOR: "zstd"
1055
1056 - name: test-ocsp-rsa-valid-cert-server-staples
1057 tags: ["ocsp", "ocsp-rsa", "ocsp-staple"]
1058 commands:
1059 - func: run-valid-ocsp-server
1060 vars:
1061 OCSP_ALGORITHM: "rsa"
1062 - func: ocsp-bootstrap-mongo-orchestration
1063 vars:
1064 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple.json"
1065 - func: run-ocsp-test
1066 vars:
1067 OCSP_ALGORITHM: "rsa"
1068 OCSP_TLS_SHOULD_SUCCEED: "true"
1069
1070 - name: test-ocsp-rsa-invalid-cert-server-staples
1071 tags: ["ocsp", "ocsp-rsa", "ocsp-staple"]
1072 commands:
1073 - func: run-revoked-ocsp-server
1074 vars:
1075 OCSP_ALGORITHM: "rsa"
1076 - func: ocsp-bootstrap-mongo-orchestration
1077 vars:
1078 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple.json"
1079 - func: run-ocsp-test
1080 vars:
1081 OCSP_ALGORITHM: "rsa"
1082 OCSP_TLS_SHOULD_SUCCEED: "false"
1083
1084 - name: test-ocsp-rsa-valid-cert-server-does-not-staple
1085 tags: ["ocsp", "ocsp-rsa"]
1086 commands:
1087 - func: run-valid-ocsp-server
1088 vars:
1089 OCSP_ALGORITHM: "rsa"
1090 - func: ocsp-bootstrap-mongo-orchestration
1091 vars:
1092 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-disableStapling.json"
1093 - func: run-ocsp-test
1094 vars:
1095 OCSP_ALGORITHM: "rsa"
1096 OCSP_TLS_SHOULD_SUCCEED: "true"
1097
1098 - name: test-ocsp-rsa-invalid-cert-server-does-not-staple
1099 tags: ["ocsp", "ocsp-rsa"]
1100 commands:
1101 - func: run-revoked-ocsp-server
1102 vars:
1103 OCSP_ALGORITHM: "rsa"
1104 - func: ocsp-bootstrap-mongo-orchestration
1105 vars:
1106 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-disableStapling.json"
1107 - func: run-ocsp-test
1108 vars:
1109 OCSP_ALGORITHM: "rsa"
1110 OCSP_TLS_SHOULD_SUCCEED: "false"
1111
1112 - name: test-ocsp-rsa-soft-fail
1113 tags: ["ocsp", "ocsp-rsa"]
1114 commands:
1115 - func: ocsp-bootstrap-mongo-orchestration
1116 vars:
1117 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-disableStapling.json"
1118 - func: run-ocsp-test
1119 vars:
1120 OCSP_ALGORITHM: "rsa"
1121 OCSP_TLS_SHOULD_SUCCEED: "true"
1122
1123 - name: test-ocsp-rsa-malicious-invalid-cert-mustStaple-server-does-not-staple
1124 tags: ["ocsp", "ocsp-rsa"]
1125 commands:
1126 - func: run-revoked-ocsp-server
1127 vars:
1128 OCSP_ALGORITHM: "rsa"
1129 - func: ocsp-bootstrap-mongo-orchestration
1130 vars:
1131 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple-disableStapling.json"
1132 - func: run-ocsp-test
1133 vars:
1134 OCSP_ALGORITHM: "rsa"
1135 OCSP_TLS_SHOULD_SUCCEED: "false"
1136
1137 - name: test-ocsp-rsa-malicious-no-responder-mustStaple-server-does-not-staple
1138 tags: ["ocsp", "ocsp-rsa"]
1139 commands:
1140 - func: ocsp-bootstrap-mongo-orchestration
1141 vars:
1142 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple-disableStapling.json"
1143 - func: run-ocsp-test
1144 vars:
1145 OCSP_ALGORITHM: "rsa"
1146 OCSP_TLS_SHOULD_SUCCEED: "false"
1147
1148 - name: test-ocsp-rsa-delegate-valid-cert-server-staples
1149 tags: ["ocsp", "ocsp-rsa", "ocsp-staple"]
1150 commands:
1151 - func: run-valid-delegate-ocsp-server
1152 vars:
1153 OCSP_ALGORITHM: "rsa"
1154 - func: ocsp-bootstrap-mongo-orchestration
1155 vars:
1156 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple.json"
1157 - func: run-ocsp-test
1158 vars:
1159 OCSP_ALGORITHM: "rsa"
1160 OCSP_TLS_SHOULD_SUCCEED: "true"
1161
1162 - name: test-ocsp-rsa-delegate-invalid-cert-server-staples
1163 tags: ["ocsp", "ocsp-rsa", "ocsp-staple"]
1164 commands:
1165 - func: run-revoked-delegate-ocsp-server
1166 vars:
1167 OCSP_ALGORITHM: "rsa"
1168 - func: ocsp-bootstrap-mongo-orchestration
1169 vars:
1170 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple.json"
1171 - func: run-ocsp-test
1172 vars:
1173 OCSP_ALGORITHM: "rsa"
1174 OCSP_TLS_SHOULD_SUCCEED: "false"
1175
1176 - name: test-ocsp-rsa-delegate-valid-cert-server-does-not-staple
1177 tags: ["ocsp", "ocsp-rsa"]
1178 commands:
1179 - func: run-valid-delegate-ocsp-server
1180 vars:
1181 OCSP_ALGORITHM: "rsa"
1182 - func: ocsp-bootstrap-mongo-orchestration
1183 vars:
1184 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-disableStapling.json"
1185 - func: run-ocsp-test
1186 vars:
1187 OCSP_ALGORITHM: "rsa"
1188 OCSP_TLS_SHOULD_SUCCEED: "true"
1189
1190 - name: test-ocsp-rsa-delegate-invalid-cert-server-does-not-staple
1191 tags: ["ocsp", "ocsp-rsa"]
1192 commands:
1193 - func: run-revoked-delegate-ocsp-server
1194 vars:
1195 OCSP_ALGORITHM: "rsa"
1196 - func: ocsp-bootstrap-mongo-orchestration
1197 vars:
1198 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-disableStapling.json"
1199 - func: run-ocsp-test
1200 vars:
1201 OCSP_ALGORITHM: "rsa"
1202 OCSP_TLS_SHOULD_SUCCEED: "false"
1203
1204 - name: test-ocsp-rsa-delegate-malicious-invalid-cert-mustStaple-server-does-not-staple
1205 tags: ["ocsp", "ocsp-rsa"]
1206 commands:
1207 - func: run-revoked-delegate-ocsp-server
1208 vars:
1209 OCSP_ALGORITHM: "rsa"
1210 - func: ocsp-bootstrap-mongo-orchestration
1211 vars:
1212 ORCHESTRATION_FILE: "rsa-basic-tls-ocsp-mustStaple-disableStapling.json"
1213 - func: run-ocsp-test
1214 vars:
1215 OCSP_ALGORITHM: "rsa"
1216 OCSP_TLS_SHOULD_SUCCEED: "false"
1217
1218 - name: test-ocsp-ecdsa-valid-cert-server-staples
1219 tags: ["ocsp", "ocsp-ecdsa", "ocsp-staple"]
1220 commands:
1221 - func: run-valid-ocsp-server
1222 vars:
1223 OCSP_ALGORITHM: "ecdsa"
1224 - func: ocsp-bootstrap-mongo-orchestration
1225 vars:
1226 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple.json"
1227 - func: run-ocsp-test
1228 vars:
1229 OCSP_ALGORITHM: "ecdsa"
1230 OCSP_TLS_SHOULD_SUCCEED: "true"
1231
1232 - name: test-ocsp-ecdsa-invalid-cert-server-staples
1233 tags: ["ocsp", "ocsp-ecdsa", "ocsp-staple"]
1234 commands:
1235 - func: run-revoked-ocsp-server
1236 vars:
1237 OCSP_ALGORITHM: "ecdsa"
1238 - func: ocsp-bootstrap-mongo-orchestration
1239 vars:
1240 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple.json"
1241 - func: run-ocsp-test
1242 vars:
1243 OCSP_ALGORITHM: "ecdsa"
1244 OCSP_TLS_SHOULD_SUCCEED: "false"
1245
1246 - name: test-ocsp-ecdsa-valid-cert-server-does-not-staple
1247 tags: ["ocsp", "ocsp-ecdsa"]
1248 commands:
1249 - func: run-valid-ocsp-server
1250 vars:
1251 OCSP_ALGORITHM: "ecdsa"
1252 - func: ocsp-bootstrap-mongo-orchestration
1253 vars:
1254 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-disableStapling.json"
1255 - func: run-ocsp-test
1256 vars:
1257 OCSP_ALGORITHM: "ecdsa"
1258 OCSP_TLS_SHOULD_SUCCEED: "true"
1259
1260 - name: test-ocsp-ecdsa-invalid-cert-server-does-not-staple
1261 tags: ["ocsp", "ocsp-ecdsa"]
1262 commands:
1263 - func: run-revoked-ocsp-server
1264 vars:
1265 OCSP_ALGORITHM: "ecdsa"
1266 - func: ocsp-bootstrap-mongo-orchestration
1267 vars:
1268 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-disableStapling.json"
1269 - func: run-ocsp-test
1270 vars:
1271 OCSP_ALGORITHM: "ecdsa"
1272 OCSP_TLS_SHOULD_SUCCEED: "false"
1273
1274 - name: test-ocsp-ecdsa-soft-fail
1275 tags: ["ocsp", "ocsp-ecdsa"]
1276 commands:
1277 - func: ocsp-bootstrap-mongo-orchestration
1278 vars:
1279 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-disableStapling.json"
1280 - func: run-ocsp-test
1281 vars:
1282 OCSP_ALGORITHM: "ecdsa"
1283 OCSP_TLS_SHOULD_SUCCEED: "true"
1284
1285 - name: test-ocsp-ecdsa-malicious-invalid-cert-mustStaple-server-does-not-staple
1286 tags: ["ocsp", "ocsp-ecdsa"]
1287 commands:
1288 - func: run-revoked-ocsp-server
1289 vars:
1290 OCSP_ALGORITHM: "ecdsa"
1291 - func: ocsp-bootstrap-mongo-orchestration
1292 vars:
1293 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple-disableStapling.json"
1294 - func: run-ocsp-test
1295 vars:
1296 OCSP_ALGORITHM: "ecdsa"
1297 OCSP_TLS_SHOULD_SUCCEED: "false"
1298
1299 - name: test-ocsp-ecdsa-malicious-no-responder-mustStaple-server-does-not-staple
1300 tags: ["ocsp", "ocsp-ecdsa"]
1301 commands:
1302 - func: ocsp-bootstrap-mongo-orchestration
1303 vars:
1304 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple-disableStapling.json"
1305 - func: run-ocsp-test
1306 vars:
1307 OCSP_ALGORITHM: "ecdsa"
1308 OCSP_TLS_SHOULD_SUCCEED: "false"
1309
1310 - name: test-ocsp-ecdsa-delegate-valid-cert-server-staples
1311 tags: ["ocsp", "ocsp-ecdsa", "ocsp-staple"]
1312 commands:
1313 - func: run-valid-delegate-ocsp-server
1314 vars:
1315 OCSP_ALGORITHM: "ecdsa"
1316 - func: ocsp-bootstrap-mongo-orchestration
1317 vars:
1318 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple.json"
1319 - func: run-ocsp-test
1320 vars:
1321 OCSP_ALGORITHM: "ecdsa"
1322 OCSP_TLS_SHOULD_SUCCEED: "true"
1323
1324 - name: test-ocsp-ecdsa-delegate-invalid-cert-server-staples
1325 tags: ["ocsp", "ocsp-ecdsa", "ocsp-staple"]
1326 commands:
1327 - func: run-revoked-delegate-ocsp-server
1328 vars:
1329 OCSP_ALGORITHM: "ecdsa"
1330 - func: ocsp-bootstrap-mongo-orchestration
1331 vars:
1332 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple.json"
1333 - func: run-ocsp-test
1334 vars:
1335 OCSP_ALGORITHM: "ecdsa"
1336 OCSP_TLS_SHOULD_SUCCEED: "false"
1337
1338 - name: test-ocsp-ecdsa-delegate-valid-cert-server-does-not-staple
1339 tags: ["ocsp", "ocsp-ecdsa"]
1340 commands:
1341 - func: run-valid-delegate-ocsp-server
1342 vars:
1343 OCSP_ALGORITHM: "ecdsa"
1344 - func: ocsp-bootstrap-mongo-orchestration
1345 vars:
1346 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-disableStapling.json"
1347 - func: run-ocsp-test
1348 vars:
1349 OCSP_ALGORITHM: "ecdsa"
1350 OCSP_TLS_SHOULD_SUCCEED: "true"
1351
1352 - name: test-ocsp-ecdsa-delegate-invalid-cert-server-does-not-staple
1353 tags: ["ocsp", "ocsp-ecdsa"]
1354 commands:
1355 - func: run-revoked-delegate-ocsp-server
1356 vars:
1357 OCSP_ALGORITHM: "ecdsa"
1358 - func: ocsp-bootstrap-mongo-orchestration
1359 vars:
1360 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-disableStapling.json"
1361 - func: run-ocsp-test
1362 vars:
1363 OCSP_ALGORITHM: "ecdsa"
1364 OCSP_TLS_SHOULD_SUCCEED: "false"
1365
1366 - name: test-ocsp-ecdsa-delegate-malicious-invalid-cert-mustStaple-server-does-not-staple
1367 tags: ["ocsp", "ocsp-ecdsa"]
1368 commands:
1369 - func: run-revoked-delegate-ocsp-server
1370 vars:
1371 OCSP_ALGORITHM: "ecdsa"
1372 - func: ocsp-bootstrap-mongo-orchestration
1373 vars:
1374 ORCHESTRATION_FILE: "ecdsa-basic-tls-ocsp-mustStaple-disableStapling.json"
1375 - func: run-ocsp-test
1376 vars:
1377 OCSP_ALGORITHM: "ecdsa"
1378 OCSP_TLS_SHOULD_SUCCEED: "false"
1379
1380 - name: test-atlas-data-lake
1381 commands:
1382 - func: bootstrap-mongohoused
1383 - func: run-atlas-data-lake-test
1384
1385 - name: test-docker-runner
1386 commands:
1387 - func: bootstrap-mongo-orchestration
1388 - func: run-docker-test
1389
1390 - name: test-load-balancer-noauth-nossl
1391 tags: ["load-balancer"]
1392 commands:
1393 - func: bootstrap-mongo-orchestration
1394 vars:
1395 TOPOLOGY: "sharded_cluster"
1396 AUTH: "noauth"
1397 SSL: "nossl"
1398 LOAD_BALANCER: "true"
1399 - func: run-load-balancer
1400 - func: run-load-balancer-tests
1401 vars:
1402 AUTH: "noauth"
1403 SSL: "nossl"
1404
1405 - name: test-load-balancer-auth-ssl
1406 tags: ["load-balancer"]
1407 commands:
1408 - func: bootstrap-mongo-orchestration
1409 vars:
1410 TOPOLOGY: "sharded_cluster"
1411 AUTH: "auth"
1412 SSL: "ssl"
1413 LOAD_BALANCER: "true"
1414 - func: run-load-balancer
1415 - func: run-load-balancer-tests
1416 vars:
1417 AUTH: "auth"
1418 SSL: "ssl"
1419
1420 - name: test-race
1421 tags: ["race"]
1422 commands:
1423 - func: bootstrap-mongo-orchestration
1424 vars:
1425 TOPOLOGY: "replica_set"
1426 AUTH: "noauth"
1427 SSL: "nossl"
1428 - func: start-cse-servers
1429 - func: run-tests
1430 vars:
1431 TOPOLOGY: "replica_set"
1432 AUTH: "noauth"
1433 SSL: "nossl"
1434 RACE: "-race"
1435
1436 - name: test-replicaset-noauth-nossl
1437 tags: ["test", "replicaset"]
1438 commands:
1439 - func: bootstrap-mongo-orchestration
1440 vars:
1441 TOPOLOGY: "replica_set"
1442 AUTH: "noauth"
1443 SSL: "nossl"
1444 - func: start-cse-servers
1445 - func: run-tests
1446 vars:
1447 TOPOLOGY: "replica_set"
1448 AUTH: "noauth"
1449 SSL: "nossl"
1450
1451 - name: test-replicaset-auth-ssl
1452 tags: ["test", "replicaset", "authssl"]
1453 commands:
1454 - func: bootstrap-mongo-orchestration
1455 vars:
1456 TOPOLOGY: "replica_set"
1457 AUTH: "auth"
1458 SSL: "ssl"
1459 - func: start-cse-servers
1460 - func: run-tests
1461 vars:
1462 TOPOLOGY: "replica_set"
1463 AUTH: "auth"
1464 SSL: "ssl"
1465
1466 - name: test-replicaset-auth-ssl-mongocryptd
1467 tags: ["test", "replicaset", "authssl", "mongocryptd"]
1468 commands:
1469 - func: bootstrap-mongo-orchestration
1470 vars:
1471 TOPOLOGY: "replica_set"
1472 AUTH: "auth"
1473 SSL: "ssl"
1474 - func: start-cse-servers
1475 - func: run-tests
1476 vars:
1477 TOPOLOGY: "replica_set"
1478 AUTH: "auth"
1479 SSL: "ssl"
1480 # Don't use the crypt_shared library, which should cause all of the tests to fall
1481 # back to using mongocryptd instead of crypt_shared.
1482 SKIP_CRYPT_SHARED_LIB: "true"
1483
1484 - name: test-replicaset-auth-nossl
1485 tags: ["test", "replicaset", "authssl"]
1486 commands:
1487 - func: bootstrap-mongo-orchestration
1488 vars:
1489 TOPOLOGY: "replica_set"
1490 AUTH: "auth"
1491 SSL: "nossl"
1492 - func: start-cse-servers
1493 - func: run-tests
1494 vars:
1495 TOPOLOGY: "replica_set"
1496 AUTH: "auth"
1497 SSL: "nossl"
1498
1499 - name: test-sharded-noauth-nossl
1500 tags: ["test", "sharded"]
1501 commands:
1502 - func: bootstrap-mongo-orchestration
1503 vars:
1504 TOPOLOGY: "sharded_cluster"
1505 AUTH: "noauth"
1506 SSL: "nossl"
1507 - func: start-cse-servers
1508 - func: run-tests
1509 vars:
1510 TOPOLOGY: "sharded_cluster"
1511 AUTH: "noauth"
1512 SSL: "nossl"
1513
1514 - name: test-sharded-noauth-nossl-snappy-compression
1515 tags: ["test", "sharded", "compression", "snappy"]
1516 commands:
1517 - func: bootstrap-mongo-orchestration
1518 vars:
1519 TOPOLOGY: "sharded_cluster"
1520 AUTH: "noauth"
1521 SSL: "nossl"
1522 - func: start-cse-servers
1523 - func: run-tests
1524 vars:
1525 TOPOLOGY: "sharded_cluster"
1526 AUTH: "noauth"
1527 SSL: "nossl"
1528 MONGO_GO_DRIVER_COMPRESSOR: "snappy"
1529
1530 - name: test-sharded-noauth-nossl-zlib-compression
1531 tags: ["test", "sharded", "compression", "zlib"]
1532 commands:
1533 - func: bootstrap-mongo-orchestration
1534 vars:
1535 TOPOLOGY: "sharded_cluster"
1536 AUTH: "noauth"
1537 SSL: "nossl"
1538 - func: start-cse-servers
1539 - func: run-tests
1540 vars:
1541 TOPOLOGY: "sharded_cluster"
1542 AUTH: "noauth"
1543 SSL: "nossl"
1544 MONGO_GO_DRIVER_COMPRESSOR: "zlib"
1545
1546 - name: test-sharded-noauth-nossl-zstd-compression
1547 tags: ["test", "sharded", "compression", "zstd"]
1548 commands:
1549 - func: bootstrap-mongo-orchestration
1550 vars:
1551 TOPOLOGY: "sharded_cluster"
1552 AUTH: "noauth"
1553 SSL: "nossl"
1554 - func: start-cse-servers
1555 - func: run-tests
1556 vars:
1557 TOPOLOGY: "sharded_cluster"
1558 AUTH: "noauth"
1559 SSL: "nossl"
1560 MONGO_GO_DRIVER_COMPRESSOR: "zstd"
1561
1562 - name: test-sharded-auth-ssl
1563 tags: ["test", "sharded", "authssl"]
1564 commands:
1565 - func: bootstrap-mongo-orchestration
1566 vars:
1567 TOPOLOGY: "sharded_cluster"
1568 AUTH: "auth"
1569 SSL: "ssl"
1570 - func: start-cse-servers
1571 - func: run-tests
1572 vars:
1573 TOPOLOGY: "sharded_cluster"
1574 AUTH: "auth"
1575 SSL: "ssl"
1576
1577 - name: test-sharded-auth-ssl-snappy-compression
1578 tags: ["test", "sharded", "authssl", "compression", "snappy"]
1579 commands:
1580 - func: bootstrap-mongo-orchestration
1581 vars:
1582 TOPOLOGY: "sharded_cluster"
1583 AUTH: "auth"
1584 SSL: "ssl"
1585 - func: start-cse-servers
1586 - func: run-tests
1587 vars:
1588 TOPOLOGY: "sharded_cluster"
1589 AUTH: "auth"
1590 SSL: "ssl"
1591 MONGO_GO_DRIVER_COMPRESSOR: "snappy"
1592
1593 - name: test-sharded-auth-ssl-zlib-compression
1594 tags: ["test", "sharded", "authssl", "compression", "zlib"]
1595 commands:
1596 - func: bootstrap-mongo-orchestration
1597 vars:
1598 TOPOLOGY: "sharded_cluster"
1599 AUTH: "auth"
1600 SSL: "ssl"
1601 - func: start-cse-servers
1602 - func: run-tests
1603 vars:
1604 TOPOLOGY: "sharded_cluster"
1605 AUTH: "auth"
1606 SSL: "ssl"
1607 MONGO_GO_DRIVER_COMPRESSOR: "zlib"
1608
1609 - name: test-sharded-auth-ssl-zstd-compression
1610 tags: ["test", "sharded", "authssl", "compression", "zstd"]
1611 commands:
1612 - func: bootstrap-mongo-orchestration
1613 vars:
1614 TOPOLOGY: "sharded_cluster"
1615 AUTH: "auth"
1616 SSL: "ssl"
1617 - func: start-cse-servers
1618 - func: run-tests
1619 vars:
1620 TOPOLOGY: "sharded_cluster"
1621 AUTH: "auth"
1622 SSL: "ssl"
1623 MONGO_GO_DRIVER_COMPRESSOR: "zstd"
1624
1625 - name: test-sharded-auth-nossl
1626 tags: ["test", "sharded", "authssl"]
1627 commands:
1628 - func: bootstrap-mongo-orchestration
1629 vars:
1630 TOPOLOGY: "sharded_cluster"
1631 AUTH: "auth"
1632 SSL: "nossl"
1633 - func: start-cse-servers
1634 - func: run-tests
1635 vars:
1636 TOPOLOGY: "sharded_cluster"
1637 AUTH: "auth"
1638 SSL: "nossl"
1639
1640 - name: test-enterprise-auth-plain
1641 tags: ["test", "enterprise-auth"]
1642 commands:
1643 - func: run-enterprise-auth-tests
1644
1645 - name: test-enterprise-auth-gssapi
1646 tags: ["test", "enterprise-auth"]
1647 commands:
1648 - func: run-enterprise-gssapi-auth-tests
1649 vars:
1650 MONGO_GO_DRIVER_COMPRESSOR: "snappy"
1651
1652 # Build with the oldest supported version of Go.
1653 - name: go1.18-build
1654 tags: ["compile-check"]
1655 commands:
1656 - func: run-make
1657 vars:
1658 targets: "build-compile-check"
1659 BUILD_ENV: "PATH=/opt/golang/go1.18/bin:$PATH GOROOT=/opt/golang/go1.18"
1660
1661 # Build with the same Go version that we're using for tests.
1662 - name: build
1663 tags: ["compile-check"]
1664 commands:
1665 - func: run-make
1666 vars:
1667 targets: "build"
1668
1669 - name: "atlas-test"
1670 commands:
1671 - func: "run-atlas-test"
1672
1673 - name: "aws-auth-test"
1674 commands:
1675 - func: bootstrap-mongo-orchestration
1676 vars:
1677 AUTH: "auth"
1678 ORCHESTRATION_FILE: "auth-aws.json"
1679 TOPOLOGY: "server"
1680 - func: add-aws-auth-variables-to-file
1681 - func: run-aws-auth-test-with-regular-aws-credentials
1682 - func: run-aws-auth-test-with-assume-role-credentials
1683 - func: run-aws-auth-test-with-aws-credentials-as-environment-variables
1684 - func: run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables
1685 - func: run-aws-auth-test-with-aws-EC2-credentials
1686 - func: run-aws-ECS-auth-test
1687 - func: run-aws-auth-test-with-aws-web-identity-credentials
1688
1689 - name: "test-standalone-versioned-api"
1690 tags: ["versioned-api"]
1691 commands:
1692 - func: bootstrap-mongo-orchestration
1693 vars:
1694 TOPOLOGY: "server"
1695 AUTH: "auth"
1696 SSL: "nossl"
1697 REQUIRE_API_VERSION: true
1698 - func: start-cse-servers
1699 - func: run-versioned-api-test
1700 vars:
1701 TOPOLOGY: "server"
1702 AUTH: "auth"
1703 SSL: "nossl"
1704 REQUIRE_API_VERSION: true
1705
1706 - name: "test-standalone-versioned-api-test-commands"
1707 tags: ["versioned-api"]
1708 commands:
1709 - func: bootstrap-mongo-orchestration
1710 vars:
1711 TOPOLOGY: "server"
1712 AUTH: "noauth"
1713 SSL: "nossl"
1714 ORCHESTRATION_FILE: "versioned-api-testing.json"
1715 - func: start-cse-servers
1716 - func: run-versioned-api-test
1717 vars:
1718 TOPOLOGY: "server"
1719 AUTH: "noauth"
1720 SSL: "nossl"
1721
1722 - name: "test-kms-tls-invalid-cert"
1723 tags: ["kms-tls"]
1724 commands:
1725 - func: bootstrap-mongo-orchestration
1726 vars:
1727 TOPOLOGY: "server"
1728 AUTH: "noauth"
1729 SSL: "nossl"
1730 - func: start-cse-servers
1731 - func: run-kms-tls-test
1732 vars:
1733 KMS_TLS_TESTCASE: "INVALID_CERT"
1734 TOPOLOGY: "server"
1735 AUTH: "noauth"
1736 SSL: "nossl"
1737
1738 - name: "test-kms-tls-invalid-hostname"
1739 tags: ["kms-tls"]
1740 commands:
1741 - func: bootstrap-mongo-orchestration
1742 vars:
1743 TOPOLOGY: "server"
1744 AUTH: "noauth"
1745 SSL: "nossl"
1746 - func: start-cse-servers
1747 - func: run-kms-tls-test
1748 vars:
1749 KMS_TLS_TESTCASE: "INVALID_HOSTNAME"
1750 TOPOLOGY: "server"
1751 AUTH: "noauth"
1752 SSL: "nossl"
1753
1754 - name: "test-kms-kmip"
1755 tags: ["kms-kmip"]
1756 commands:
1757 - func: bootstrap-mongo-orchestration
1758 vars:
1759 TOPOLOGY: "server"
1760 AUTH: "noauth"
1761 SSL: "nossl"
1762 - func: start-cse-servers
1763 - func: run-kmip-tests
1764 vars:
1765 TOPOLOGY: "server"
1766 AUTH: "noauth"
1767 SSL: "nossl"
1768
1769 - name: "test-serverless"
1770 tags: ["serverless"]
1771 commands:
1772 - func: start-cse-servers
1773 - func: "run-serverless-tests"
1774 vars:
1775 MONGO_GO_DRIVER_COMPRESSOR: "snappy"
1776
1777 - name: "testgcpkms-task"
1778 commands:
1779 - command: shell.exec
1780 type: setup
1781 params:
1782 shell: "bash"
1783 working_dir: src/go.mongodb.org/mongo-driver
1784 script: |
1785 ${PREPARE_SHELL}
1786 echo "Building build-kms-test ... begin"
1787 BUILD_TAGS="-tags=cse" \
1788 PKG_CONFIG_PATH=$PKG_CONFIG_PATH \
1789 make build-kms-test
1790 echo "Building build-kms-test ... end"
1791 source $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/secrets-export.sh
1792 echo "Copying files ... begin"
1793 export GCPKMS_GCLOUD=${GCPKMS_GCLOUD}
1794 export GCPKMS_PROJECT=${GCPKMS_PROJECT}
1795 export GCPKMS_ZONE=${GCPKMS_ZONE}
1796 export GCPKMS_INSTANCENAME=${GCPKMS_INSTANCENAME}
1797 tar czf testgcpkms.tgz ./testkms ./install/libmongocrypt/lib64/libmongocrypt.*
1798 GCPKMS_SRC=testgcpkms.tgz GCPKMS_DST=$GCPKMS_INSTANCENAME: $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/copy-file.sh
1799 echo "Copying files ... end"
1800
1801 echo "Untarring file ... begin"
1802 GCPKMS_CMD="tar xf testgcpkms.tgz" $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/run-command.sh
1803 echo "Untarring file ... end"
1804
1805 - command: shell.exec
1806 type: test
1807 params:
1808 shell: "bash"
1809 working_dir: src/go.mongodb.org/mongo-driver
1810 script: |
1811 ${PREPARE_SHELL}
1812 source $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/secrets-export.sh
1813 export GCPKMS_GCLOUD=${GCPKMS_GCLOUD}
1814 export GCPKMS_PROJECT=${GCPKMS_PROJECT}
1815 export GCPKMS_ZONE=${GCPKMS_ZONE}
1816 export GCPKMS_INSTANCENAME=${GCPKMS_INSTANCENAME}
1817 GCPKMS_CMD="LD_LIBRARY_PATH=./install/libmongocrypt/lib64 MONGODB_URI='mongodb://localhost:27017' PROVIDER='gcp' ./testkms" $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/run-command.sh
1818
1819 - name: "testgcpkms-fail-task"
1820 # testgcpkms-fail-task runs in a non-GCE environment.
1821 # It is expected to fail to obtain GCE credentials.
1822 commands:
1823 - command: shell.exec
1824 type: test
1825 params:
1826 shell: "bash"
1827 working_dir: src/go.mongodb.org/mongo-driver
1828 script: |
1829 ${PREPARE_SHELL}
1830 echo "Building build-kms-test ... begin"
1831 BUILD_TAGS="-tags=cse" \
1832 PKG_CONFIG_PATH=$PKG_CONFIG_PATH \
1833 make build-kms-test
1834 echo "Building build-kms-test ... end"
1835 LD_LIBRARY_PATH=./install/libmongocrypt/lib64 \
1836 MONGODB_URI='mongodb://localhost:27017/' \
1837 EXPECT_ERROR='unable to retrieve GCP credentials' \
1838 PROVIDER='gcp' \
1839 ./testkms
1840
1841 - name: "testawskms-task"
1842 commands:
1843 - command: shell.exec
1844 type: test
1845 params:
1846 shell: "bash"
1847 working_dir: src/go.mongodb.org/mongo-driver
1848 script: |
1849 ${PREPARE_SHELL}
1850 bash etc/run-awskms-test.sh
1851
1852 - name: "testawskms-fail-task"
1853 # testawskms-fail-task runs without environment variables.
1854 # It is expected to fail to obtain credentials.
1855 commands:
1856 - command: shell.exec
1857 type: test
1858 params:
1859 shell: "bash"
1860 working_dir: src/go.mongodb.org/mongo-driver
1861 script: |
1862 ${PREPARE_SHELL}
1863 export EXPECT_ERROR='status=400'
1864 bash etc/run-awskms-test.sh
1865
1866 - name: "testazurekms-task"
1867 commands:
1868 - command: shell.exec
1869 type: setup
1870 params:
1871 shell: "bash"
1872 working_dir: src/go.mongodb.org/mongo-driver
1873 script: |
1874 ${PREPARE_SHELL}
1875 echo "Building build-kms-test ... begin"
1876 BUILD_TAGS="-tags=cse" \
1877 PKG_CONFIG_PATH=$PKG_CONFIG_PATH \
1878 make build-kms-test
1879 echo "Building build-kms-test ... end"
1880
1881 echo "Copying files ... begin"
1882 export AZUREKMS_RESOURCEGROUP=${AZUREKMS_RESOURCEGROUP}
1883 export AZUREKMS_VMNAME=${AZUREKMS_VMNAME}
1884 export AZUREKMS_PRIVATEKEYPATH=/tmp/testazurekms_privatekey
1885 tar czf testazurekms.tgz ./testkms ./install/libmongocrypt/lib64/libmongocrypt.*
1886 AZUREKMS_SRC=testazurekms.tgz AZUREKMS_DST=/tmp $DRIVERS_TOOLS/.evergreen/csfle/azurekms/copy-file.sh
1887 echo "Copying files ... end"
1888 echo "Untarring file ... begin"
1889 AZUREKMS_CMD="tar xf /tmp/testazurekms.tgz" $DRIVERS_TOOLS/.evergreen/csfle/azurekms/run-command.sh
1890 echo "Untarring file ... end"
1891
1892 - command: shell.exec
1893 type: test
1894 params:
1895 shell: "bash"
1896 working_dir: src/go.mongodb.org/mongo-driver
1897 script: |
1898 ${PREPARE_SHELL}
1899 source ${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/setup-secrets.sh
1900 export AZUREKMS_RESOURCEGROUP=${AZUREKMS_RESOURCEGROUP}
1901 export AZUREKMS_VMNAME=${AZUREKMS_VMNAME}
1902 export AZUREKMS_PRIVATEKEYPATH=/tmp/testazurekms_privatekey
1903 AZUREKMS_CMD="LD_LIBRARY_PATH=./install/libmongocrypt/lib64 MONGODB_URI='mongodb://localhost:27017' PROVIDER='azure' AZUREKMS_KEY_NAME='${AZUREKMS_KEY_NAME}' AZUREKMS_KEY_VAULT_ENDPOINT='${AZUREKMS_KEY_VAULT_ENDPOINT}' ./testkms" $DRIVERS_TOOLS/.evergreen/csfle/azurekms/run-command.sh
1904
1905 - name: "testazurekms-fail-task"
1906 # testazurekms-fail-task runs without environment variables.
1907 # It is expected to fail to obtain credentials.
1908 commands:
1909 - command: shell.exec
1910 type: test
1911 params:
1912 shell: "bash"
1913 working_dir: src/go.mongodb.org/mongo-driver
1914 script: |
1915 ${PREPARE_SHELL}
1916 echo "Building build-kms-test ... begin"
1917 BUILD_TAGS="-tags=cse" \
1918 PKG_CONFIG_PATH=$PKG_CONFIG_PATH \
1919 make build-kms-test
1920 echo "Building build-kms-test ... end"
1921
1922 LD_LIBRARY_PATH=./install/libmongocrypt/lib64 \
1923 MONGODB_URI='mongodb://localhost:27017' \
1924 EXPECT_ERROR='unable to retrieve azure credentials' \
1925 PROVIDER='azure' AZUREKMS_KEY_NAME='${AZUREKMS_KEY_NAME}' AZUREKMS_KEY_VAULT_ENDPOINT='${AZUREKMS_KEY_VAULT_ENDPOINT}' \
1926 ./testkms
1927
1928 - name: "test-fuzz"
1929 commands:
1930 - func: bootstrap-mongo-orchestration
1931 - func: run-fuzz-tests
1932
1933 - name: "test-aws-lambda-deployed"
1934 commands:
1935 - command: ec2.assume_role
1936 params:
1937 role_arn: ${LAMBDA_AWS_ROLE_ARN}
1938 duration_seconds: 3600
1939 - command: shell.exec
1940 params:
1941 working_dir: src/go.mongodb.org/mongo-driver
1942 shell: bash
1943 env:
1944 TEST_LAMBDA_DIRECTORY: ${PROJECT_DIRECTORY}/internal/test/faas/awslambda
1945 LAMBDA_STACK_NAME: dbx-go-lambda
1946 AWS_REGION: us-east-1
1947 include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
1948 script: |
1949 ${PREPARE_SHELL}
1950 ./.evergreen/run-deployed-lambda-aws-tests.sh
1951
1952 - name: "test-search-index"
1953 commands:
1954 - func: "bootstrap-mongo-orchestration"
1955 vars:
1956 VERSION: "latest"
1957 TOPOLOGY: "replica_set"
1958 - func: "run-search-index-tests"
1959
1960axes:
1961 - id: version
1962 display_name: MongoDB Version
1963 values:
1964 - id: "7.0"
1965 display_name: "7.0"
1966 variables:
1967 VERSION: "7.0"
1968 - id: "6.0"
1969 display_name: "6.0"
1970 variables:
1971 VERSION: "6.0"
1972 - id: "5.0"
1973 display_name: "5.0"
1974 variables:
1975 VERSION: "5.0"
1976 - id: "4.4"
1977 display_name: "4.4"
1978 variables:
1979 VERSION: "4.4"
1980 - id: "4.2"
1981 display_name: "4.2"
1982 variables:
1983 VERSION: "4.2"
1984 - id: "4.0"
1985 display_name: "4.0"
1986 variables:
1987 VERSION: "4.0"
1988 - id: "3.6"
1989 display_name: "3.6"
1990 variables:
1991 VERSION: "3.6"
1992 - id: "rapid"
1993 display_name: "rapid"
1994 variables:
1995 VERSION: "rapid"
1996 - id: "latest"
1997 display_name: "latest"
1998 variables:
1999 VERSION: "latest"
2000
2001 # OSes that require >= 3.2 for SSL
2002 - id: os-ssl-32
2003 display_name: OS
2004 values:
2005 - id: "windows-64-go-1-20"
2006 display_name: "Windows 64-bit"
2007 run_on:
2008 - windows-vsCurrent-latest-small
2009 variables:
2010 GCC_PATH: "/cygdrive/c/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin"
2011 GO_DIST: "C:\\golang\\go1.20"
2012 VENV_BIN_DIR: "Scripts"
2013 - id: "rhel87-64-go-1-20"
2014 display_name: "RHEL 8.7"
2015 run_on: rhel8.7-large
2016 variables:
2017 GO_DIST: "/opt/golang/go1.20"
2018 - id: "macos11-go-1-20"
2019 display_name: "MacOS 11.0"
2020 run_on: macos-1100
2021 batchtime: 1440 # Run at most once per 24 hours.
2022 variables:
2023 GO_DIST: "/opt/golang/go1.20"
2024
2025 # OSes that require >= 4.0 for SSL
2026 - id: os-ssl-40
2027 display_name: OS
2028 values:
2029 - id: "windows-64-go-1-20"
2030 display_name: "Windows 64-bit"
2031 run_on:
2032 - windows-vsCurrent-latest-small
2033 variables:
2034 GCC_PATH: "/cygdrive/c/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin"
2035 GO_DIST: "C:\\golang\\go1.20"
2036 VENV_BIN_DIR: "Scripts"
2037 - id: "rhel87-64-go-1-20"
2038 display_name: "RHEL 8.7"
2039 run_on: rhel8.7-large
2040 variables:
2041 GO_DIST: "/opt/golang/go1.20"
2042 - id: "macos11-go-1-20"
2043 display_name: "MacOS 11.0"
2044 run_on: macos-1100
2045 batchtime: 1440 # Run at most once per 24 hours.
2046 variables:
2047 GO_DIST: "/opt/golang/go1.20"
2048
2049 - id: ocsp-rhel-87
2050 display_name: OS
2051 values:
2052 - id: "rhel87-go-1-20"
2053 display_name: "RHEL 8.7"
2054 run_on: rhel8.7-large
2055 variables:
2056 GO_DIST: "/opt/golang/go1.20"
2057
2058 - id: os-aws-auth
2059 display_name: OS
2060 values:
2061 - id: "windows-64-vsCurrent-latest-small-go-1-20"
2062 display_name: "Windows 64-bit"
2063 run_on:
2064 - windows-vsCurrent-latest-small
2065 variables:
2066 GCC_PATH: "/cygdrive/c/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin"
2067 GO_DIST: "C:\\golang\\go1.20"
2068 SKIP_ECS_AUTH_TEST: true
2069 - id: "ubuntu2004-64-go-1-20"
2070 display_name: "Ubuntu 20.04"
2071 run_on: ubuntu2004-test
2072 variables:
2073 GO_DIST: "/opt/golang/go1.20"
2074 - id: "macos11-go-1-20"
2075 display_name: "MacOS 11.0"
2076 run_on: macos-1100
2077 batchtime: 1440 # Run at most once per 24 hours.
2078 variables:
2079 GO_DIST: "/opt/golang/go1.20"
2080 SKIP_ECS_AUTH_TEST: true
2081 SKIP_EC2_AUTH_TEST: true
2082 SKIP_WEB_IDENTITY_AUTH_TEST: true
2083
2084 - id: os-faas-80
2085 display_name: OS
2086 values:
2087 - id: "rhel87-large-go-1-20"
2088 display_name: "RHEL 8.7"
2089 run_on: rhel8.7-large
2090 variables:
2091 GO_DIST: "/opt/golang/go1.20"
2092
2093 - id: os-serverless
2094 display_name: OS
2095 values:
2096 - id: "rhel87-go-1-20"
2097 display_name: "RHEL 8.7"
2098 run_on: rhel8.7-small
2099 variables:
2100 GO_DIST: "/opt/golang/go1.20"
2101
2102 - id: serverless-type
2103 display_name: "Serverless Type"
2104 values:
2105 - id: "original"
2106 display_name: "Serverless"
2107 - id: "proxy"
2108 display_name: "Serverless Proxy"
2109 variables:
2110 VAULT_NAME: "serverless_next"
2111
2112task_groups:
2113 - name: serverless_task_group
2114 setup_group_can_fail_task: true
2115 setup_group_timeout_secs: 1800 # 30 minutes
2116 setup_group:
2117 - func: fetch-source
2118 - func: prepare-resources
2119 - func: fix-absolute-paths
2120 - func: make-files-executable
2121 - func: start-cse-servers
2122 - command: shell.exec
2123 params:
2124 shell: "bash"
2125 script: |
2126 ${PREPARE_SHELL}
2127 bash ${DRIVERS_TOOLS}/.evergreen/serverless/setup-secrets.sh ${VAULT_NAME}
2128 bash ${DRIVERS_TOOLS}/.evergreen/serverless/create-instance.sh
2129 - command: expansions.update
2130 params:
2131 file: serverless-expansion.yml
2132 - command: shell.exec
2133 params:
2134 shell: "bash"
2135 script: |
2136 ${PREPARE_SHELL}
2137
2138 # Find the crypt_shared library file in the current directory and set the CRYPT_SHARED_LIB_PATH to
2139 # the path of that file. Only look for .so, .dll, or .dylib files to prevent matching any other
2140 # downloaded files.
2141 CRYPT_SHARED_LIB_PATH="$(find $(pwd) -maxdepth 1 -type f \
2142 -name 'mongo_crypt_v1.so' -o \
2143 -name 'mongo_crypt_v1.dll' -o \
2144 -name 'mongo_crypt_v1.dylib')"
2145
2146 # If we're on Windows, convert the "cygdrive" path to Windows-style paths.
2147 if [ "Windows_NT" = "$OS" ]; then
2148 CRYPT_SHARED_LIB_PATH=$(cygpath -m $CRYPT_SHARED_LIB_PATH)
2149 fi
2150
2151 echo "CRYPT_SHARED_LIB_PATH: $CRYPT_SHARED_LIB_PATH" >> crypt-expansion.yml
2152
2153 # Load the expansion file to make an evergreen variable with the current unique version
2154 - command: expansions.update
2155 params:
2156 file: crypt-expansion.yml
2157
2158 teardown_group:
2159 - command: shell.exec
2160 params:
2161 shell: "bash"
2162 script: |
2163 ${PREPARE_SHELL}
2164 bash ${DRIVERS_TOOLS}/.evergreen/serverless/delete-instance.sh ${VAULT_NAME}
2165 - func: handle-test-artifacts
2166 - func: cleanup
2167 tasks:
2168 - ".serverless"
2169
2170 - name: testgcpkms_task_group
2171 setup_group_can_fail_task: true
2172 setup_group_timeout_secs: 1800 # 30 minutes
2173 setup_group:
2174 - func: fetch-source
2175 - func: prepare-resources
2176 - func: fix-absolute-paths
2177 - func: make-files-executable
2178 - command: shell.exec
2179 params:
2180 shell: "bash"
2181 script: |
2182 ${PREPARE_SHELL}
2183 $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/create-and-setup-instance.sh
2184 # Load the GCPKMS_GCLOUD, GCPKMS_INSTANCE, GCPKMS_REGION, and GCPKMS_ZONE expansions.
2185 - command: expansions.update
2186 params:
2187 file: testgcpkms-expansions.yml
2188 teardown_group:
2189 - command: shell.exec
2190 params:
2191 shell: "bash"
2192 script: |
2193 ${PREPARE_SHELL}
2194 $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/delete-instance.sh
2195 - func: handle-test-artifacts
2196 - func: cleanup
2197 tasks:
2198 - testgcpkms-task
2199
2200 - name: testazurekms_task_group
2201 setup_group_can_fail_task: true
2202 teardown_group_can_fail_task: true
2203 setup_group_timeout_secs: 1800 # 30 minutes
2204 setup_group:
2205 - func: fetch-source
2206 - func: prepare-resources
2207 - func: fix-absolute-paths
2208 - func: make-files-executable
2209 - command: shell.exec
2210 params:
2211 shell: "bash"
2212 script: |
2213 ${PREPARE_SHELL}
2214 export AZUREKMS_VMNAME_PREFIX="GODRIVER"
2215 export AZUREKMS_DRIVERS_TOOLS=$DRIVERS_TOOLS
2216 # Get azurekms credentials from the vault.
2217 . ${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/setup-secrets.sh
2218 ${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/create-and-setup-vm.sh
2219 - command: expansions.update
2220 params:
2221 file: testazurekms-expansions.yml
2222 teardown_group:
2223 # setup_group may have failed before updating expansions. Try to update again to clean up resources on setup failure.
2224 - command: expansions.update
2225 params:
2226 file: testazurekms-expansions.yml
2227 - command: shell.exec
2228 params:
2229 shell: "bash"
2230 script: |
2231 ${PREPARE_SHELL}
2232 export AZUREKMS_SCOPE=${AZUREKMS_SCOPE}
2233 export AZUREKMS_RESOURCEGROUP=${AZUREKMS_RESOURCEGROUP}
2234 $DRIVERS_TOOLS/.evergreen/csfle/azurekms/delete-vm.sh
2235 - func: handle-test-artifacts
2236 - func: cleanup
2237 tasks:
2238 - testazurekms-task
2239
2240 - name: test-aws-lambda-task-group
2241 setup_group:
2242 - func: fetch-source
2243 - func: prepare-resources
2244 - command: subprocess.exec
2245 params:
2246 working_dir: src/go.mongodb.org/mongo-driver
2247 binary: bash
2248 env:
2249 LAMBDA_STACK_NAME: dbx-go-lambda
2250 AWS_REGION: us-east-1
2251 task_id: ${task_id}
2252 execution: ${execution}
2253 args:
2254 - ${DRIVERS_TOOLS}/.evergreen/atlas/setup-atlas-cluster.sh
2255 teardown_group:
2256 - command: subprocess.exec
2257 params:
2258 working_dir: src/go.mongodb.org/mongo-driver
2259 binary: bash
2260 env:
2261 LAMBDA_STACK_NAME: dbx-go-lambda
2262 AWS_REGION: us-east-1
2263 args:
2264 - ${DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh
2265 - func: handle-test-artifacts
2266 - func: cleanup
2267 setup_group_can_fail_task: true
2268 setup_group_timeout_secs: 1800
2269 tasks:
2270 - test-aws-lambda-deployed
2271
2272 - name: test-search-index-task-group
2273 setup_group:
2274 - func: fetch-source
2275 - func: prepare-resources
2276 - command: subprocess.exec
2277 params:
2278 working_dir: src/go.mongodb.org/mongo-driver
2279 binary: bash
2280 env:
2281 MONGODB_VERSION: "7.0"
2282 LAMBDA_STACK_NAME: dbx-go-lambda
2283 AWS_REGION: us-east-1
2284 task_id: ${task_id}
2285 execution: ${execution}
2286 args:
2287 - ${DRIVERS_TOOLS}/.evergreen/atlas/setup-atlas-cluster.sh
2288 - command: expansions.update
2289 params:
2290 file: src/go.mongodb.org/mongo-driver/atlas-expansion.yml
2291 - command: shell.exec
2292 params:
2293 working_dir: src/go.mongodb.org/mongo-driver
2294 shell: bash
2295 script: |-
2296 echo "TEST_INDEX_URI: ${MONGODB_URI}" > atlas-expansion.yml
2297 - command: expansions.update
2298 params:
2299 file: src/go.mongodb.org/mongo-driver/atlas-expansion.yml
2300 teardown_group:
2301 - command: subprocess.exec
2302 params:
2303 working_dir: src/go.mongodb.org/mongo-driver
2304 binary: bash
2305 args:
2306 - ${DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh
2307 - func: handle-test-artifacts
2308 - func: cleanup
2309 setup_group_can_fail_task: true
2310 setup_group_timeout_secs: 1800
2311 tasks:
2312 - test-search-index
2313
2314buildvariants:
2315 - name: static-analysis
2316 tags: ["pullrequest"]
2317 display_name: "Static Analysis"
2318 run_on:
2319 - rhel8.7-large
2320 expansions:
2321 GO_DIST: "/opt/golang/go1.20"
2322 tasks:
2323 - name: ".static-analysis"
2324
2325 - name: pull-request-helpers
2326 tags: ["pullrequest"]
2327 display_name: "Pull Request Helpers"
2328 run_on:
2329 - rhel8.7-small
2330 expansions:
2331 GO_DIST: "/opt/golang/go1.20"
2332 tasks:
2333 - name: "pull-request-helpers"
2334
2335 - name: perf
2336 display_name: "Performance"
2337 run_on:
2338 - rhel8.7-large
2339 expansions:
2340 GO_DIST: "/opt/golang/go1.20"
2341 tasks:
2342 - name: ".performance"
2343
2344 - name: build-check
2345 tags: ["pullrequest"]
2346 display_name: "Compile Only Checks"
2347 run_on:
2348 - rhel8.7-large
2349 expansions:
2350 GO_DIST: "/opt/golang/go1.20"
2351 tasks:
2352 - name: ".compile-check"
2353
2354 - name: atlas-test
2355 tags: ["pullrequest"]
2356 display_name: "Atlas test"
2357 run_on:
2358 - rhel8.7-large
2359 expansions:
2360 GO_DIST: "/opt/golang/go1.20"
2361 tasks:
2362 - name: "atlas-test"
2363
2364 - name: atlas-data-lake-test
2365 tags: ["pullrequest"]
2366 display_name: "Atlas Data Lake Test"
2367 run_on:
2368 - ubuntu2004-large
2369 expansions:
2370 GO_DIST: "/opt/golang/go1.20"
2371 tasks:
2372 - name: "test-atlas-data-lake"
2373
2374 - name: docker-runner-test
2375 tags: ["pullrequest"]
2376 display_name: "Docker Runner Test"
2377 run_on:
2378 - ubuntu2204-large
2379 expansions:
2380 GO_DIST: "/opt/golang/go1.20"
2381 tasks:
2382 - name: "test-docker-runner"
2383
2384 - matrix_name: "tests-36-with-zlib-support"
2385 tags: ["pullrequest"]
2386 matrix_spec: { version: ["3.6"], os-ssl-32: ["windows-64-go-1-20", "rhel87-64-go-1-20"] }
2387 display_name: "${version} ${os-ssl-32}"
2388 tasks:
2389 - name: ".test !.enterprise-auth !.snappy !.zstd"
2390
2391 - matrix_name: "tests-40-with-zlib-support"
2392 tags: ["pullrequest"]
2393 matrix_spec: { version: ["4.0"], os-ssl-40: ["windows-64-go-1-20", "rhel87-64-go-1-20"] }
2394 display_name: "${version} ${os-ssl-40}"
2395 tasks:
2396 - name: ".test !.enterprise-auth !.snappy !.zstd"
2397
2398 - matrix_name: "tests-42-plus-zlib-zstd-support"
2399 tags: ["pullrequest"]
2400 matrix_spec: { version: ["4.2", "4.4", "5.0", "6.0", "7.0"], os-ssl-40: ["windows-64-go-1-20", "rhel87-64-go-1-20"] }
2401 display_name: "${version} ${os-ssl-40}"
2402 tasks:
2403 - name: ".test !.enterprise-auth !.snappy"
2404
2405 - matrix_name: "tests-latest-zlib-zstd-support"
2406 matrix_spec: { version: ["latest"], os-ssl-40: ["windows-64-go-1-20", "rhel87-64-go-1-20"] }
2407 display_name: "${version} ${os-ssl-40}"
2408 tasks:
2409 - name: ".test !.enterprise-auth !.snappy"
2410
2411 - matrix_name: "enterprise-auth-tests"
2412 matrix_spec: { os-ssl-32: "*" }
2413 display_name: "Enterprise Auth - ${os-ssl-32}"
2414 tasks:
2415 - name: ".test .enterprise-auth"
2416
2417 - matrix_name: "aws-auth-test"
2418 matrix_spec: { version: ["4.4", "5.0", "6.0", "7.0", "latest"], os-aws-auth: "*" }
2419 display_name: "MONGODB-AWS Auth ${version} ${os-aws-auth}"
2420 tasks:
2421 - name: "aws-auth-test"
2422
2423 - matrix_name: "ocsp-test"
2424 matrix_spec: { version: ["4.4", "5.0", "6.0", "7.0", "latest"], ocsp-rhel-87: ["rhel87-go-1-20"] }
2425 display_name: "OCSP ${version} ${ocsp-rhel-87}"
2426 batchtime: 20160 # Use a batchtime of 14 days as suggested by the OCSP test README
2427 tasks:
2428 - name: ".ocsp"
2429
2430 - matrix_name: "ocsp-test-windows"
2431 matrix_spec: { version: ["4.4", "5.0", "6.0", "7.0", "latest"], os-ssl-40: ["windows-64-go-1-20"] }
2432 display_name: "OCSP ${version} ${os-ssl-40}"
2433 batchtime: 20160 # Use a batchtime of 14 days as suggested by the OCSP test README
2434 tasks:
2435 # Windows MongoDB servers do not staple OCSP responses and only support RSA.
2436 - name: ".ocsp-rsa !.ocsp-staple"
2437
2438 - matrix_name: "ocsp-test-macos"
2439 matrix_spec: { version: ["4.4", "5.0", "6.0", "7.0", "latest"], os-ssl-40: ["macos11-go-1-20"] }
2440 display_name: "OCSP ${version} ${os-ssl-40}"
2441 batchtime: 20160 # Use a batchtime of 14 days as suggested by the OCSP test README
2442 tasks:
2443 # macos MongoDB servers do not staple OCSP responses and only support RSA.
2444 - name: ".ocsp-rsa !.ocsp-staple"
2445
2446 - matrix_name: "race-test"
2447 tags: ["pullrequest"]
2448 matrix_spec: { version: ["7.0"], os-ssl-40: ["rhel87-64-go-1-20"] }
2449 display_name: "Race Detector Test"
2450 tasks:
2451 - name: ".race"
2452
2453 - matrix_name: "versioned-api-test"
2454 tags: ["pullrequest"]
2455 matrix_spec: { version: ["5.0", "6.0", "7.0"], os-ssl-40: ["windows-64-go-1-20", "rhel87-64-go-1-20"] }
2456 display_name: "API Version ${version} ${os-ssl-40}"
2457 tasks:
2458 - name: ".versioned-api"
2459
2460 - matrix_name: "versioned-api-latest-test"
2461 matrix_spec: { version: ["latest"], os-ssl-40: ["windows-64-go-1-20", "rhel87-64-go-1-20"] }
2462 display_name: "API Version ${version} ${os-ssl-40}"
2463 tasks:
2464 - name: ".versioned-api"
2465
2466 - matrix_name: "kms-tls-test"
2467 matrix_spec: { version: ["7.0"], os-ssl-40: ["rhel87-64-go-1-20"] }
2468 display_name: "KMS TLS ${os-ssl-40}"
2469 tasks:
2470 - name: ".kms-tls"
2471
2472 - matrix_name: "load-balancer-test"
2473 tags: ["pullrequest"]
2474 matrix_spec: { version: ["5.0", "6.0", "7.0"], os-ssl-40: ["rhel87-64-go-1-20"] }
2475 display_name: "Load Balancer Support ${version} ${os-ssl-40}"
2476 tasks:
2477 - name: ".load-balancer"
2478
2479 - matrix_name: "load-balancer-latest-test"
2480 matrix_spec: { version: ["latest"], os-ssl-40: ["rhel87-64-go-1-20"] }
2481 display_name: "Load Balancer Support ${version} ${os-ssl-40}"
2482 tasks:
2483 - name: ".load-balancer"
2484
2485 - matrix_name: "serverless"
2486 tags: ["pullrequest"]
2487 matrix_spec: { os-serverless: "*", serverless-type: "original" }
2488 display_name: "${serverless-type} ${os-serverless}"
2489 tasks:
2490 - "serverless_task_group"
2491
2492 - matrix_name: "serverless-proxy"
2493 matrix_spec: { os-serverless: "*", serverless-type: "proxy" }
2494 display_name: "${serverless-type} ${os-serverless}"
2495 tasks:
2496 - "serverless_task_group"
2497
2498 - matrix_name: "kms-kmip-test"
2499 matrix_spec: { version: ["7.0"], os-ssl-40: ["rhel87-64-go-1-20"] }
2500 display_name: "KMS KMIP ${os-ssl-40}"
2501 tasks:
2502 - name: ".kms-kmip"
2503
2504 - matrix_name: "fuzz-test"
2505 matrix_spec: { version: ["5.0"], os-ssl-40: ["rhel87-64-go-1-20"] }
2506 display_name: "Fuzz ${version} ${os-ssl-40}"
2507 tasks:
2508 - name: "test-fuzz"
2509 batchtime: 1440 # Run at most once per 24 hours.
2510
2511 - matrix_name: "faas-test"
2512 matrix_spec: { version: ["7.0"], os-faas-80: ["rhel87-large-go-1-20"] }
2513 display_name: "FaaS ${version} ${os-faas-80}"
2514 tasks:
2515 - test-aws-lambda-task-group
2516
2517 - matrix_name: "searchindex-test"
2518 matrix_spec: { version: ["7.0"], os-faas-80: ["rhel87-large-go-1-20"] }
2519 display_name: "Search Index ${version} ${os-faas-80}"
2520 tasks:
2521 - test-search-index-task-group
2522
2523 - name: testgcpkms-variant
2524 display_name: "GCP KMS"
2525 run_on:
2526 - rhel8.7-small
2527 expansions:
2528 GO_DIST: "/opt/golang/go1.20"
2529 tasks:
2530 - name: testgcpkms_task_group
2531 batchtime: 20160 # Use a batchtime of 14 days as suggested by the CSFLE test README
2532 - testgcpkms-fail-task
2533
2534 - name: testawskms-variant
2535 display_name: "AWS KMS"
2536 run_on:
2537 - rhel8.7-small
2538 expansions:
2539 GO_DIST: "/opt/golang/go1.20"
2540 tasks:
2541 - testawskms-task
2542 - testawskms-fail-task
2543
2544 - name: testazurekms-variant
2545 display_name: "AZURE KMS"
2546 run_on:
2547 - rhel8.7-small
2548 expansions:
2549 GO_DIST: "/opt/golang/go1.20"
2550 tasks:
2551 - name: testazurekms_task_group
2552 batchtime: 20160 # Use a batchtime of 14 days as suggested by the CSFLE test README
2553 - testazurekms-fail-task
View as plain text