...

Text file src/go.mongodb.org/mongo-driver/.evergreen/config.yml

Documentation: go.mongodb.org/mongo-driver/.evergreen

     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