1#####################################################
2#               A note on expansions                #
3#####################################################
4
5# Expansions usually appear in the form ${key|default}
6# If 'key' is found in the executor's map of currently known
7# expansions, the corresponding value is used. If the key can
8# not be found, the default is used.
9#
10# Arbitrary expansions can be specified in the YAML configuration
11# files in the following places:
12# - The 'expansions' field for buildvariants (branch file)
13# - The 'expansions' field for distros (distros file)
14#
15# A number of 'built-in' expansions are also available for use; these include:
16# - environment variables available on the host machine
17# - 'workdir' (references the executor's work directory).
18# - 'task_id' (references the task id of the task the executor is working on).
19# - 'build_variant' (references the executing task's buildvariant).
20# - 'config_root' (references the root directory for the executor's configuration artifacts).
21
22stepback: true
23command_type: system
24
25# Files that match an ignore-list pattern will not trigger a build, if they're the only modified
26# files in the patch.
27ignore:
28  - ".*"
29  - "!.clang-format"
30  - "!.eslintrc.yml"
31  - "*.md"
32  - "*.rst"
33  - "*.txt"
34  - "/distsrc/**"
35  - "/docs/**"
36  - "/etc/*.yml"
37  - "!/etc/evergreen.yml"
38  - "README"
39
40## Some variables for convenience:
41variables:
42
43# Used when the tests it runs depend only on mongod, mongos, the mongo shell and the tools.
44- &task_template
45  name: template
46  depends_on:
47  - name: compile
48  commands:
49  - func: "do setup"
50  - func: "run tests"
51    vars:
52      resmoke_args: --help
53      run_multiple_jobs: false
54      max_jobs: 0  # If set in combination with run_multiple_jobs, will cap the number of jobs used.
55
56# Used for tests that invoke resmoke.py and require no additional setup.
57- &task_depending_on_all_template
58  <<: *task_template
59  depends_on:
60  - name: compile_all
61
62- &benchmark_template
63  name: benchmark_template
64  depends_on:
65  - name: compile_benchmarks
66  commands:
67  - func: "do benchmark setup"
68  - func: "run tests"
69    vars:
70      resmoke_args: --help
71      run_multiple_jobs: false
72  - func: "send benchmark results"
73
74- &generate_compile_expansions
75  command: shell.exec
76  params:
77    working_dir: src
78    script: |
79      set -o errexit
80      set -o verbose
81
82      # We get the raw version string (r1.2.3-45-gabcdef) from git
83      MONGO_VERSION=$(git describe)
84      # If this is a patch build, we add the patch version id to the version string so we know
85      # this build was a patch, and which evergreen task it came from
86      if [ "${is_patch|}" = "true" ]; then
87        MONGO_VERSION="$MONGO_VERSION-patch-${version_id}"
88      fi
89
90      # This script converts the generated version string into a sanitized version string for
91      # use by scons and uploading artifacts as well as information about for the scons cache.
92      ${activate_virtualenv}
93      MONGO_VERSION=$MONGO_VERSION SCONS_CACHE_MODE=${scons_cache_mode|nolinked} USE_SCONS_CACHE=${use_scons_cache|false} $python buildscripts/generate_compile_expansions.py --out compile_expansions.yml
94
95- &apply_compile_expansions
96  command: expansions.update
97  params:
98    file: src/compile_expansions.yml
99
100- &jepsen_config_vars
101  jepsen_key_time_limit: --key-time-limit 15
102  jepsen_protocol_version: --protocol-version 1
103  jepsen_read_concern: ""
104  jepsen_read_with_find_and_modify: ""
105  jepsen_storage_engine: ""
106  jepsen_test_name: ""
107  # Empirically, we've had greater success in reproducing the issues found in MongoDB versions
108  # 3.4.0-rc3 and 3.4.0-rc4 when running Jepsen with at least --time-limit=600.
109  jepsen_time_limit: --time-limit 1200
110  jepsen_write_concern: ""
111
112# Template for running Jepsen tests
113- &run_jepsen_template
114  name: run_jepsen_template
115  depends_on:
116  - name: compile
117  commands:
118  - func: "do setup"
119  - func: "do jepsen setup"
120  - func: "run jepsen test"
121    vars:
122      <<: *jepsen_config_vars
123
124- &jstestfuzz_config_vars
125  resmoke_args: --help # resmoke_args needs to be overridden to specify one of the jstestfuzz suites
126  should_shuffle: false
127  continue_on_failure: false
128
129- &run_jstestfuzz_tests
130  func: "run tests"
131  # Terminate the function when there has been no output to stdout for 30 minutes. E.g. when something is stuck in an infinite loop.
132  # resmoke.py writes the test output to logkeeper and only writes to stdout when starting the next test.
133  # resmoke.py not producing output on stdout means that the test is still running and presumably not going to finish.
134  # Note that timeout_secs is different from exec_timeout_secs, which applies to a task and times out regardless of whether output has been written to stdout.
135  timeout_secs: 1800
136  vars:
137    <<: *jstestfuzz_config_vars
138
139# Used for tests that invoke 'resmoke.py --suites=jstestfuzz*'.
140- &jstestfuzz_template
141  name: jstestfuzz_template
142  exec_timeout_secs: 14400 # Time out the task if it runs for more than 4 hours.
143  depends_on:
144  - name: compile
145  commands:
146  - func: "do setup"
147  - func: "setup jstestfuzz"
148  - func: "run jstestfuzz"
149  - *run_jstestfuzz_tests
150
151# Templates used by powercycle
152- &powercycle_remote_credentials
153  private_key_file: $(${posix_workdir})/powercycle.pem
154  private_key_remote: ${powercycle_private_key}
155  aws_key_remote: ${powercycle_aws_key}
156  aws_secret_remote: ${powercycle_aws_secret}
157
158- &powercycle_ec2_instance
159  aws_ec2_yml: aws_ec2.yml
160  ec2_expire_hours: "24"
161  ec2_monitor_files: proc.json system.json
162  monitor_proc_file: proc.json
163  monitor_system_file: system.json
164  remote_dir: /log/powercycle
165  secret_port: "20001"
166  security_group_ids: ${powercycle_aws_security_group_id}
167  security_groups: mci powercycle_testing
168  subnet_id: ${powercycle_aws_subnet_id}
169  ssh_identity: -i ${private_key_file}
170  ssh_key_id: ${powercycle_ssh_key_id}
171  standard_port: "20000"
172  virtualenv_dir: venv_powercycle
173  windows_crash_cmd: \"notmyfault/notmyfaultc64.exe -accepteula crash 1\"
174  windows_crash_dl: https://download.sysinternals.com/files/NotMyFault.zip
175  windows_crash_dir: notmyfault
176  windows_crash_zip: notmyfault.zip
177
178- &powercycle_expansions
179  params:
180     updates:
181     - key: backup_path_after
182       value: ${remote_dir}/afterrecovery
183     - key: backup_path_before
184       value: ${remote_dir}/beforerecovery
185     - key: backup_artifacts
186       value: ${remote_dir}/afterrecovery* ${remote_dir}/beforerecovery*
187     - key: db_path
188       value: /data/db
189     - key: log_path
190       value: ${remote_dir}/mongod.log
191     - key: exit_file
192       value: powercycle_exit.yml
193
194- &powercycle_test
195  ec2_artifacts: ${log_path} ${db_path} ${backup_artifacts}
196  program_options:  --exitYamlFile=${exit_file} --logLevel=info --backupPathBefore=${backup_path_before} --backupPathAfter=${backup_path_after}
197  connection_options: --sshUserHost=${private_ip_address} --sshConnection=\"${ssh_identity} ${ssh_connection_options}\"
198  test_options: --testLoops=15 --seedDocNum=10000 --rsync --rsyncExcludeFiles=diagnostic.data/metrics.interim* --validate=local --canary=local
199  crash_options: --crashMethod=internal --crashOption=${windows_crash_cmd} --crashWaitTime=45 --jitterForCrashWaitTime=5 --instanceId=${instance_id}
200  client_options: --numCrudClients=20 --numFsmClients=20
201  mongodb_options: --rootDir=${remote_dir}-${task_id} --mongodbBinDir=${remote_dir}
202  mongod_options: --mongodUsablePorts ${standard_port} ${secret_port} --dbPath=${db_path} --logPath=${log_path}
203  mongod_extra_options: --mongodOptions=\"--setParameter enableTestCommands=1\"
204
205#######################################
206#            Functions                #
207#######################################
208
209functions:
210
211  "git get project" : &git_get_project
212    command: git.get_project
213    params:
214      directory: ${git_project_directory|src}
215      revisions: # for each module include revision as <module_name> : ${<module_name>_rev}
216        enterprise: ${enterprise_rev}
217
218  "fetch artifacts" : &fetch_artifacts
219    command: s3.get
220    params:
221      aws_key: ${aws_key}
222      aws_secret: ${aws_secret}
223      remote_file: ${project}/${build_variant}/${revision}/artifacts/${build_id}.tgz
224      bucket: mciuploads
225      extract_to: src
226
227  "fetch binaries" : &fetch_binaries
228    command: s3.get
229    params:
230      aws_key: ${aws_key}
231      aws_secret: ${aws_secret}
232      remote_file: ${project}/${build_variant}/${revision}/binaries/mongo-${build_id}.${ext|tgz}
233      bucket: mciuploads
234      local_file: src/mongo-binaries.tgz
235
236  "extract binaries" : &extract_binaries
237    command: shell.exec
238    params:
239      working_dir: src
240      script: |
241        set -o errexit
242        ${decompress} mongo-binaries.tgz
243        cp mongodb*/bin/* .
244
245  "check binary version" : &check_binary_version
246    command: shell.exec
247    params:
248      working_dir: src
249      script: |
250        set -o errexit
251        mongo_binary=$(find mongodb*/bin -name mongo${exe})
252        # There should only be one mongo shell
253        if [ $(echo $mongo_binary | wc -w) -ne 1 ]; then
254          echo "There is more than 1 extracted mongo binary: $mongo_binary"
255          exit 1
256        fi
257        ${activate_virtualenv}
258        bin_ver=$($python -c "import yaml; print(yaml.safe_load(open('compile_expansions.yml'))['version']);" | tr -d '[ \r\n]')
259        # Due to SERVER-23810, we cannot use $mongo_binary --quiet --nodb --eval "version();"
260        mongo_ver=$($mongo_binary --version | perl -pe '/version v(.*)$/; $_ = $1;' | tr -d '[ \r\n]')
261        # The versions must match
262        if [ "$bin_ver" != "$mongo_ver" ]; then
263          echo "The mongo version is $mongo_ver, expected version is $bin_ver"
264          exit 1
265        fi
266
267  "fetch benchmarks" : &fetch_benchmarks
268    command: s3.get
269    params:
270      aws_key: ${aws_key}
271      aws_secret: ${aws_secret}
272      remote_file: ${project}/${build_variant}/${revision}/benchmarks/${build_id}.tgz
273      bucket: mciuploads
274      extract_to: src
275
276  "get buildnumber" : &get_buildnumber
277    command: keyval.inc
278    params:
279      key: "${build_variant}_v3.6"
280      destination: "builder_num"
281
282  "run diskstats": &run_diskstats
283    command: shell.exec
284    params:
285      background: true
286      system_log: true
287      script: |
288        set -o errexit
289        set -o verbose
290
291        # On Windows we can use typeperf.exe to dump performance counters.
292        if [ "Windows_NT" = "$OS" ]; then
293            typeperf -qx PhysicalDisk | grep Disk | grep -v _Total > disk_counters.txt
294            typeperf -cf disk_counters.txt -si 5 -o mongo-diskstats
295        # Linux: iostat -t option for timestamp.
296        elif iostat -tdmx > /dev/null 2>&1; then
297            iostat -tdmx 5 > mongo-diskstats
298        # OSX: Simulate the iostat timestamp.
299        elif iostat -d > /dev/null 2>&1; then
300            iostat -d -w 5 | while IFS= read -r line; do printf '%s %s\n' "$(date +'%m/%d/%Y %H:%M:%S')" "$line" >> mongo-diskstats; done
301        # Check if vmstat -t is available.
302        elif vmstat -td  > /dev/null 2>&1; then
303            vmstat -td 5 > mongo-diskstats
304        # Check if vmstat -T d is available.
305        elif vmstat -T d > /dev/null 2>&1; then
306            vmstat -T d 5 > mongo-diskstats
307        else
308            printf "Cannot collect mongo-diskstats on this platform\n"
309        fi
310
311  "collect system resource info": &collect_system_resource_info
312    command: shell.exec
313    params:
314      working_dir: src
315      background: true
316      system_log: true
317      script: |
318        ${activate_virtualenv}
319        $python buildscripts/collect_resource_info.py -o system_resource_info.json -i 5
320
321  # Run a monitor process as a background, system task to periodically
322  # display how many threads interesting processes are using.
323  "monitor process threads": &monitor_process_threads
324    command: shell.exec
325    params:
326      background: true
327      system_log: true
328      script: |
329        proc_list="(bsondump|java|lein|mongo|python|_test$|_test\.exe$)"
330        if [ "Windows_NT" = "$OS" ]; then
331          get_pids() {
332            proc_pids=$(tasklist /fo:csv |
333                        awk -F'","' '{x=$1; gsub("\"","",x); print $2, x}' |
334                        grep -i -E $1 |
335                        cut -f1 -d ' ');
336          }
337          get_process_info() {
338            proc_name="";
339            proc_info=$(wmic process where "ProcessId=\"$1\"" get "Name,ProcessId,ThreadCount" /format:csv 2> /dev/null | grep $1);
340            if [ ! -z $proc_info ]; then
341              proc_name=$(echo $proc_info | cut -f2 -d ',');
342              proc_threads=$(echo $proc_info | cut -f4 -d ',');
343            fi;
344          }
345        else
346          get_pids() { proc_pids=$(pgrep $1); }
347          get_process_info() {
348            proc_name=$(ps -p $1 -o comm=);
349            # /proc is available on Linux platforms
350            if [ -f /proc/$1/status ]; then
351              ${set_sudo}
352              proc_threads=$($sudo grep Threads /proc/$1/status | sed "s/\s//g" | cut -f2 -d ":");
353            else
354              proc_threads=$(ps -AM $1 | grep -vc PID);
355            fi;
356          }
357        fi
358        while [ 1 ]
359        do
360          get_pids $proc_list
361          if [ ! -z "$proc_pids" ]; then
362            printf "Running process/thread counter\n"
363            printf "PROCESS\tPID\tTHREADS\n"
364          fi
365          for pid in $proc_pids
366          do
367            get_process_info $pid
368            if [ ! -z "$proc_name" ]; then
369              printf "$proc_name\t$pid\t$proc_threads\n"
370            fi
371          done
372          sleep 60
373        done
374
375  "set up credentials" : &set_up_credentials
376    command: shell.exec
377    params:
378      working_dir: src
379      silent: true
380      script: |
381        cat > mci.buildlogger <<END_OF_CREDS
382        slavename='${slave}'
383        passwd='${passwd}'
384        builder='MCI_${build_variant}'
385        build_num=${builder_num}
386        build_phase='${task_name}_${execution}'
387        END_OF_CREDS
388
389  "set up remote credentials": &set_up_remote_credentials
390    command: shell.exec
391    params:
392      silent: true
393      script: |
394        set -o errexit
395
396        # Since the macros 'private_key_remote' and 'private_key_file' are not always defined
397        # we default to /dev/null to avoid syntax errors of an empty expansion.
398        if [ ! -z "${private_key_remote}" ] && [ ! -z "${private_key_file}" ] ; then
399          mkdir -p ~/.ssh
400          echo -n "${private_key_remote}" > ${private_key_file|/dev/null}
401          chmod 0600 ${private_key_file|/dev/null}
402        fi
403
404        if [ ! -d ~.aws ]; then
405          mkdir -p ~/.aws
406        fi
407
408        # If ${aws_profile_remote} is not specified then the config & credentials are
409        # stored in the 'default' profile.
410        aws_profile="${aws_profile_remote|default}"
411
412        # The profile in the config file is specified as [profile <profile>], except
413        # for [default], see http://boto3.readthedocs.io/en/latest/guide/configuration.html
414        if [ $aws_profile = "default" ] ; then
415          aws_profile_config="[default]"
416        else
417          aws_profile_config="[profile $aws_profile]"
418        fi
419        cat <<EOF >> ~/.aws/config
420        $aws_profile_config
421        region = us-east-1
422        EOF
423
424        # The profile in the credentials file is specified as [<profile>].
425        cat <<EOF >> ~/.aws/credentials
426        [$aws_profile]
427        aws_access_key_id = ${aws_key_remote}
428        aws_secret_access_key = ${aws_secret_remote}
429        EOF
430
431        cat <<EOF > ~/.boto
432        [Boto]
433        https_validate_certificates = False
434        EOF
435
436  "call BF Suggestion service":
437    command: shell.exec
438    params:
439      working_dir: src
440      shell: bash
441      silent: true
442      script: |
443        report_file="report.json"
444        # Check if the report file exists and has failures.
445        if [ -f $report_file ] && grep -Eq "\"failures\": [1-9]" $report_file; then
446          # Calling the BF Suggestion server endpoint to start feature extraction.
447          payload="{\"task_id\": \"${task_id}\", \"execution\": ${execution}}"
448          echo "Sending task info to the BF suggestion service"
449          # The --user option is passed through stdin to avoid showing in process list.
450          user_option="--user ${bfsuggestion_user}:${bfsuggestion_password}"
451          curl --header "Content-Type: application/json" \
452               --data "$payload" \
453               --max-time 10 \
454               --silent \
455               --show-error \
456               --config - \
457               https://bfsuggestion.corp.mongodb.com/tasks <<< $user_option
458          echo "Request to BF Suggestion service status: $?"
459        fi
460
461  "upload debugsymbols" : &upload_debugsymbols
462    command: s3.put
463    params:
464      aws_key: ${aws_key}
465      aws_secret: ${aws_secret}
466      local_file: src/mongo-debugsymbols.tgz
467      remote_file: ${project}/${build_variant}/${revision}/debugsymbols/debugsymbols-${build_id}.${ext|tgz}
468      bucket: mciuploads
469      permissions: public-read
470      content_type: ${content_type|application/x-gzip}
471
472  "fetch debugsymbols archive" : &fetch_debugsymbols_archive
473    command: s3.get
474    params:
475      aws_key: ${aws_key}
476      aws_secret: ${aws_secret}
477      remote_file: ${project}/${build_variant}/${revision}/debugsymbols/debugsymbols-${build_id}.${ext|tgz}
478      bucket: mciuploads
479      local_file: src/mongo-debugsymbols.tgz
480
481  "extract debugsymbols" : &extract_debugsymbols
482    command: shell.exec
483    params:
484      working_dir: src
485      script: |
486        set -o errexit
487        set -o verbose
488        # Debug symbols are not created for every variant
489        if [ ! -f mongo-debugsymbols.tgz ]; then
490          exit
491        fi
492        ${decompress} mongo-debugsymbols.tgz
493        files="mongo mongod mongos"
494        file_exts="debug dSYM pdb"
495        for file_ext in $file_exts
496        do
497            for file in $files
498            do
499                mv mongodb*/$file.$file_ext . 2>/dev/null || true
500            done
501            rm -r mongodb*/*.$file_ext 2>/dev/null || true
502        done
503        rm mongo-debugsymbols.tgz 2>/dev/null || true
504
505  "fetch and build OpenSSL" :
506    command: shell.exec
507    params:
508        working_dir:  src
509        script: |
510            set -o errexit
511            set -o verbose
512            if [ "${build_openssl|}" = "true" ]; then
513                ${activate_virtualenv}
514                bash buildscripts/fetch_and_build_openssl.sh "$python" "${openssl_make_flags|}" "${openssl_config_flags|}"
515            fi
516
517  "build new tools" :
518    command: shell.exec
519    params:
520      working_dir: src/src/mongo/gotools/src/github.com/mongodb/mongo-tools
521      script: |
522        set -o verbose
523        set -o errexit
524
525        # make sure newlines in the scripts are handled correctly by windows
526        if [ "Windows_NT" = "$OS" ]; then
527            set -o igncr
528        fi;
529
530        # set_goenv provides set_goenv(), print_ldflags() and print_tags() used below
531        . ./set_goenv.sh
532        GOROOT="" set_goenv || exit
533        env | grep ^GO
534        go version
535
536        build_tools="bsondump mongostat mongofiles mongoexport mongoimport mongorestore mongodump mongotop"
537
538        if [ "${build_mongoreplay}" = "true" ]; then
539            build_tools="$build_tools mongoreplay"
540        fi
541
542        for i in $build_tools; do
543            go build $(buildflags) -ldflags "$(print_ldflags)" ${args} -tags "$(print_tags ${tooltags})" -o "../../../../../../mongo-tools/$i${exe|}" $i/main/$i.go
544            "../../../../../../mongo-tools/$i${exe|}" --version
545            file "../../../../../../mongo-tools/$i${exe|}"
546        done
547
548        mkdir -p ../../../../../../mongo-tools/distsrc
549        cp THIRD-PARTY-NOTICES ../../../../../../mongo-tools/distsrc/THIRD-PARTY-NOTICES.gotools
550
551  # This function should only be called from patch-build-only tasks.
552  "get added and modified patch files":
553    command: shell.exec
554    params:
555      working_dir: src
556      shell: bash
557      script: |
558        set -o verbose
559        set -o errexit
560        git diff HEAD --name-only --line-prefix="${workdir}/src/" --diff-filter=d >> modified_and_created_patch_files.txt
561        if [ -d src/mongo/db/modules/enterprise ]; then
562          pushd src/mongo/db/modules/enterprise
563          git diff HEAD --name-only --line-prefix="${workdir}/src/src/mongo/db/modules/enterprise/" --diff-filter=d >> ~1/modified_and_created_patch_files.txt
564          popd
565        fi
566
567  "send benchmark results" :
568    command: json.send
569    params:
570      name: perf
571      file: src/perf.json
572
573  "do setup" :
574  - *fetch_artifacts
575  - *fetch_binaries
576  - *extract_binaries
577  - *check_binary_version
578  - *get_buildnumber
579  - *set_up_credentials
580  - *run_diskstats
581  - *monitor_process_threads
582  - *collect_system_resource_info
583
584  "do benchmark setup" :
585  - *git_get_project
586  - *get_buildnumber
587  - *set_up_credentials
588  - *fetch_benchmarks
589
590  "set up virtualenv" :
591    command: shell.exec
592    type: test
593    params:
594        script: |
595          # exit immediately if virtualenv is not found
596          set -o errexit
597          set -o verbose
598
599          python_loc=$(which ${python|/opt/mongodbtoolchain/v2/bin/python2})
600          python3_loc=$(which ${python|/opt/mongodbtoolchain/v2/bin/python3})
601          if [ "Windows_NT" = "$OS" ]; then
602            python_loc=$(cygpath -w $python_loc)
603            python3_loc=$(cygpath -w c:/python/Python36/python.exe)
604          fi
605          # Set up virtualenv in ${workdir}
606          virtualenv --python "$python_loc" --system-site-packages "${workdir}/venv"
607          # Add virtualenv for python3 in ${workdir}
608          virtualenv --python "$python3_loc" --system-site-packages "${workdir}/venv_3"
609
610  "run tests" :
611    - command: expansions.update
612      params:
613        updates:
614        - key: aws_key_remote
615          value: ${mongodatafiles_aws_key}
616        - key: aws_profile_remote
617          value: mongodata_aws
618        - key: aws_secret_remote
619          value: ${mongodatafiles_aws_secret}
620    - *set_up_remote_credentials
621    - command: shell.exec
622      type: test
623      params:
624        working_dir: src
625        shell: bash
626        script: |
627          set -o errexit
628          set -o verbose
629
630          # Set the TMPDIR environment variable to be a directory in the task's working
631          # directory so that temporary files created by processes spawned by resmoke.py get
632          # cleaned up after the task completes. This also ensures the spawned processes
633          # aren't impacted by limited space in the mount point for the /tmp directory.
634          export TMPDIR="${workdir}/tmp"
635          mkdir -p $TMPDIR
636
637          if [ ${disable_unit_tests|false} = "false" ]; then
638
639          # activate the virtualenv if it has been set up
640          ${activate_virtualenv}
641          pip install boto3==1.5.27
642
643          if [ -f /proc/self/coredump_filter ]; then
644            # Set the shell process (and its children processes) to dump ELF headers (bit 4),
645            # anonymous shared mappings (bit 1), and anonymous private mappings (bit 0).
646            echo 0x13 > /proc/self/coredump_filter
647
648            if [ -f /sbin/sysctl ]; then
649              # Check that the core pattern is set explicitly on our distro image instead
650              # of being the OS's default value. This ensures that coredump names are consistent
651              # across distros and can be picked up by Evergreen.
652              core_pattern=$(/sbin/sysctl -n "kernel.core_pattern")
653              if [ "$core_pattern" = "dump_%e.%p.core" ]; then
654                echo "Enabling coredumps"
655                ulimit -c unlimited
656              fi
657            fi
658          fi
659
660          extra_args=""
661          if [ ${run_multiple_jobs|false} = true ]; then
662            processor_architecture=$(uname -m)
663            num_jobs_available=${num_jobs_available|1}
664            # Reduce the number of available jobs by half when running any sharding*, replica_sets*
665            # and select jsCore passthrough tasks on Windows and ARM to avoid overwhelming test hosts.
666            if [ "Windows_NT" = "$OS" ] || [ "aarch64" = $processor_architecture ]; then
667              case "${task_name}" in
668              replica_sets_initsync_jscore_passthrough          \
669              |replica_sets_initsync_static_jscore_passthrough  \
670              |replica_sets_resync_static_jscore_passthrough    \
671              |replica_sets*                           \
672              |sharding*                              \
673              )
674                num_jobs_available=$((${num_jobs_available|2} / 2))
675                echo "Reducing jobs from ${num_jobs_available|1} to $num_jobs_available"
676                ;;
677              esac
678            fi
679
680            # Reduce the number of available jobs by two-thirds when running the
681            # secondary_reads_passthrough task on the Enterprise RHEL 6.2 InMemory build variant.
682            if [[ "${build_variant}" = "enterprise-rhel-62-64-bit-inmem" \
683                  && "${task_name}" = "secondary_reads_passthrough" ]]; then
684              num_jobs_available=$((${num_jobs_available|3} / 3))
685              echo "Reducing jobs from ${num_jobs_available|1} to $num_jobs_available"
686            fi
687
688            if [ ${max_jobs|0} -gt 0 ] && [ ${max_jobs|0} -lt $num_jobs_available ]; then
689              extra_args="$extra_args --jobs=${max_jobs}"
690            else
691              extra_args="$extra_args --jobs=$num_jobs_available"
692            fi
693          fi
694
695          if [ ${should_shuffle|true} = true ]; then
696            extra_args="$extra_args --shuffle"
697          fi
698
699          if [ ${continue_on_failure|true} = true ]; then
700            extra_args="$extra_args --continueOnFailure"
701          fi
702
703          # Default storageEngineCacheSizeGB to 1. Override on individual test config if needed.
704          # resmoke will assign to the appropriate parameter on storage engines that support it.
705          set +o errexit
706          echo "${resmoke_args}" | grep -q storageEngineCacheSizeGB
707          if [ $? -eq 1 ]; then
708            extra_args="$extra_args --storageEngineCacheSizeGB=1"
709          fi
710          set -o errexit
711
712          path_value="$PATH"
713          if [ ${variant_path_suffix} ]; then
714            path_value="$path_value:${variant_path_suffix}"
715          fi
716          if [ ${task_path_suffix} ]; then
717            path_value="$path_value:${task_path_suffix}"
718          fi
719
720          if [ "${is_patch|}" = "true" ]; then
721            extra_args="$extra_args --tagFile=etc/test_lifecycle.yml --patchBuild"
722          else
723            extra_args="$extra_args --tagFile=etc/test_retrial.yml"
724          fi
725
726          # The "resmoke_wrapper" expansion is used by the 'burn_in_tests' task to wrap the resmoke.py
727          # invocation. It doesn't set any environment variables and should therefore come last in
728          # this list of expansions.
729          set +o errexit
730          PATH="$path_value"                              \
731              AWS_PROFILE=${aws_profile_remote}           \
732              ${gcov_environment}                         \
733              ${lang_environment}                         \
734              ${san_options}                              \
735              ${san_symbolizer}                           \
736              ${snmp_config_path}                         \
737              ${resmoke_wrapper}                          \
738              $python buildscripts/evergreen_run_tests.py \
739                  ${resmoke_args}                         \
740                  $extra_args                             \
741                  ${test_flags}                           \
742                  --log=buildlogger                       \
743                  --staggerJobs=on                        \
744                  --taskId=${task_id}                     \
745                  --taskName=${task_name}                 \
746                  --executionNumber=${execution}          \
747                  --projectName=${project}                \
748                  --variantName=${build_variant}          \
749                  --distroId=${distro_id}                 \
750                  --gitRevision=${revision}               \
751                  --archiveFile=archive.json              \
752                  --reportFile=report.json                \
753                  --perfReportFile=perf.json
754          resmoke_exit_code=$?
755          set -o errexit
756
757          # 74 is exit code for IOError on POSIX systems, which is raised when the machine is
758          # shutting down.
759          #
760          # 75 is exit code resmoke.py uses when the log output would be incomplete due to failing
761          # to communicate with logkeeper.
762          if [[ $resmoke_exit_code = 74 || $resmoke_exit_code = 75 ]]; then
763            echo $resmoke_exit_code > run_tests_infrastructure_failure
764            exit 0
765          fi
766          exit $resmoke_exit_code
767          fi # end if ${disable_unit_tests}
768
769      # The existence of the "run_tests_infrastructure_failure" file indicates this failure isn't
770      # directly actionable. We use type=setup rather than type=system or type=test for this command
771      # because we don't intend for any human to look at this failure.
772    - command: shell.exec
773      type: setup
774      params:
775        working_dir: src
776        script: |
777          set -o verbose
778          if [ -f run_tests_infrastructure_failure ]; then
779            exit $(cat run_tests_infrastructure_failure)
780          fi
781
782  "scons compile" :
783    command: shell.exec
784    type: test
785    params:
786      working_dir: src
787      script: |
788        set -o errexit
789        set -o verbose
790
791        rm -rf ${install_directory|/data/mongo-install-directory}
792
793        extra_args=""
794        if [ "${targets}" = "all" ] && [ -n "${num_scons_compile_all_jobs_available|}" ]; then
795          echo "Changing SCons to run with --jobs=${num_scons_compile_all_jobs_available|}"
796          extra_args="$extra_args --jobs=${num_scons_compile_all_jobs_available|}"
797        fi
798
799        ${activate_virtualenv}
800        ${compile_env|} $python ./buildscripts/scons.py ${compile_flags|} ${task_compile_flags|} ${scons_cache_args|} $extra_args ${targets} ${additional_targets|} MONGO_VERSION=${version}
801
802  "generate compile expansions" :
803    command: shell.exec
804    params:
805      working_dir: src
806      script: |
807        set -o errexit
808        set -o verbose
809
810        # We get the raw version string (r1.2.3-45-gabcdef) from git
811        MONGO_VERSION=$(git describe)
812        # If this is a patch build, we add the patch version id to the version string so we know
813        # this build was a patch, and which evergreen task it came from
814        if [ "${is_patch|}" = "true" ]; then
815          MONGO_VERSION="$MONGO_VERSION-patch-${version_id}"
816        fi
817
818        # This script converts the generated version string into a sanitized version string for
819        # use by scons and uploading artifacts as well as information about for the scons cache.
820        ${activate_virtualenv}
821        MONGO_VERSION=$MONGO_VERSION SCONS_CACHE_MODE=${scons_cache_mode|nolinked} USE_SCONS_CACHE=${use_scons_cache|false} $python buildscripts/generate_compile_expansions.py --out compile_expansions.yml
822
823  "apply compile expansions" :
824    command: expansions.update
825    params:
826      file: src/compile_expansions.yml
827
828  "do jepsen setup" :
829    - command: shell.exec
830      params:
831        working_dir: src
832        script: |
833          set -o errexit
834
835          # Build libfaketime. A version of libfaketime at least as new as v0.9.6-9-g75896bd is
836          # required to use the FAKETIME_NO_CACHE and FAKETIME_TIMESTAMP_FILE environment variables.
837          # Additionally, a version of libfaketime containing the changes mentioned in SERVER-29336
838          # is required to avoid needing to use libfaketimeMT.so.1 and serializing all calls to
839          # fake_clock_gettime() with a mutex.
840          git clone --branch=for-jepsen --depth=1 git@github.com:10gen/libfaketime.git
841          cd libfaketime
842          branch=$(git symbolic-ref --short HEAD)
843          commit=$(git show -s --pretty=format:"%h - %an, %ar: %s")
844          echo "Git branch: $branch, commit: $commit"
845          make PREFIX=$(pwd)/build/ LIBDIRNAME='.' install
846    - command: shell.exec
847      params:
848        working_dir: src
849        script: |
850          set -o errexit
851          git clone --branch=jepsen-mongodb-master --depth=1 git@github.com:10gen/jepsen.git jepsen-mongodb
852          cd jepsen-mongodb
853          branch=$(git symbolic-ref --short HEAD)
854          commit=$(git show -s --pretty=format:"%h - %an, %ar: %s")
855          echo "Git branch: $branch, commit: $commit"
856          lein install
857    - command: shell.exec
858      params:
859        working_dir: src
860        script: |
861          set -o errexit
862          ${activate_virtualenv}
863          $python -c 'import socket; num_nodes = 5; print("\n".join(["%s:%d" % (socket.gethostname(), port) for port in range(20000, 20000 + num_nodes)]))' > nodes.txt
864
865  "run jepsen test" :
866    - command: shell.exec
867      type: test
868      timeout_secs: 2700 # Timeout test if there is no output for more than 45 minutes.
869      params:
870        working_dir: src/jepsen-mongodb
871        script: |
872          set -o verbose
873
874          # Set the TMPDIR environment variable to be a directory in the task's working
875          # directory so that temporary files created by processes spawned by jepsen get
876          # cleaned up after the task completes. This also ensures the spawned processes
877          # aren't impacted by limited space in the mount point for the /tmp directory.
878          # We also need to set the _JAVA_OPTIONS environment variable so that lein will
879          # recognize this as the default temp directory.
880          export TMPDIR="${workdir}/tmp"
881          mkdir -p $TMPDIR
882          export _JAVA_OPTIONS=-Djava.io.tmpdir=$TMPDIR
883
884          start_time=$(date +%s)
885          lein run test --test ${jepsen_test_name}                                           \
886                        --mongodb-dir ../                                                    \
887                        --working-dir ${workdir}/src/jepsen-workdir                          \
888                        --clock-skew faketime                                                \
889                        --libfaketime-path ${workdir}/src/libfaketime/build/libfaketime.so.1 \
890                        --virtualization none                                                \
891                        --nodes-file ../nodes.txt                                            \
892                        ${jepsen_key_time_limit}                                             \
893                        ${jepsen_protocol_version}                                           \
894                        ${jepsen_read_concern}                                               \
895                        ${jepsen_read_with_find_and_modify}                                  \
896                        ${jepsen_storage_engine}                                             \
897                        ${jepsen_time_limit}                                                 \
898                        ${jepsen_write_concern}                                              \
899                        2>&1                                                                 \
900          | tee jepsen_${task_name}_${execution}.log
901          end_time=$(date +%s)
902          elapsed_secs=$((end_time-start_time))
903          # Since we cannot use PIPESTATUS to get the exit code from the "lein run ..." pipe in dash shell,
904          # we will check the output for success, failure or set up error. Note that 'grep' returns with exit code
905          # 0 if it finds a match, and exit code 1 if no match is found.
906          grep -q "Everything looks good" jepsen_${task_name}_${execution}.log
907          grep_exit_code=$?
908          if [ $grep_exit_code -eq 0 ]; then
909            status='"pass"'
910            failures=0
911            final_exit_code=0
912          else
913            grep -q "Analysis invalid" jepsen_${task_name}_${execution}.log
914            grep_exit_code=$?
915            if [ $grep_exit_code -eq 0 ]; then
916              status='"fail"'
917              failures=1
918              final_exit_code=1
919            else
920              # If the failure is due to setup, then this is considered a system failure.
921              echo $grep_exit_code > jepsen_system_failure_${task_name}_${execution}
922              exit 0
923            fi
924          fi
925          # Create report.json
926          echo "{\"failures\": $failures, \"results\": [{\"status\": $status, \"exit_code\": $final_exit_code, \"test_file\": \"${task_name}\", \"start\": $start_time, \"end\": $end_time, \"elapsed\": $elapsed_secs}]}" > ../report.json
927          exit $final_exit_code
928    - command: shell.exec
929      params:
930        working_dir: src/jepsen-mongodb
931        script: |
932          set -o verbose
933          # Jepsen system failure if file exists.
934          if [ -f jepsen_system_failure_${task_name}_${execution} ]; then
935            exit $(cat jepsen_system_failure_${task_name}_${execution})
936          fi
937
938  "setup jstestfuzz":
939    - command: shell.exec
940      params:
941        working_dir: src
942        shell: bash
943        script: |
944          set -o errexit
945          set -o verbose
946
947          ${add_nodejs_to_path}
948
949          git clone git@github.com:10gen/jstestfuzz.git
950
951          pushd jstestfuzz
952            npm install
953            npm run prepare
954          popd
955
956  "lint fuzzer sanity patch":
957    - command: shell.exec
958      type: test
959      params:
960        working_dir: src
961        shell: bash
962        script: |
963          set -eo pipefail
964          set -o verbose
965
966          ${add_nodejs_to_path}
967
968          # Run parse-jsfiles on 50 files at a time with 32 processes in parallel.
969          # Grep returns 1 if it fails to find a match.
970          (grep "\.js$" modified_and_created_patch_files.txt || true) | xargs -P 32 -L 50 npm run --prefix jstestfuzz parse-jsfiles --
971
972  "lint fuzzer sanity all":
973    - command: shell.exec
974      type: test
975      params:
976        working_dir: src
977        shell: bash
978        script: |
979          set -eo pipefail
980          set -o verbose
981
982          ${add_nodejs_to_path}
983
984          # Run parse-jsfiles on 50 files at a time with 32 processes in parallel.
985          find "$PWD/jstests" "$PWD/src/mongo/db/modules/enterprise" -name "*.js" -print | xargs -P 32 -L 50 npm run --prefix jstestfuzz parse-jsfiles --
986
987  "run jstestfuzz":
988    - command: shell.exec
989      params:
990        working_dir: src
991        script: |
992          set -o errexit
993          set -o verbose
994
995          cp mongodb*/bin/mongod .
996
997          git clone --depth 1 git@github.com:10gen/mongo-enterprise-modules.git jstests/enterprise_tests
998          git clone --depth 1 git@github.com:10gen/QA.git jstests/qa_tests
999
1000    - command: shell.exec
1001      params:
1002        working_dir: src/jstestfuzz
1003        script: |
1004          set -o errexit
1005          set -o verbose
1006
1007          ${add_nodejs_to_path}
1008
1009          npm run ${npm_command|jstestfuzz} -- ${jstestfuzz_vars} --branch ${branch_name}
1010
1011    - command: archive.targz_pack
1012      params:
1013        target: "jstests.tgz"
1014        source_dir: "src/jstestfuzz"
1015        include:
1016          - "out/*.js"
1017    - command: s3.put
1018      params:
1019        aws_key: ${aws_key}
1020        aws_secret: ${aws_secret}
1021        local_file: jstests.tgz
1022        remote_file: ${project}/${build_variant}/${revision}/jstestfuzz/${task_id}-${execution}.tgz
1023        bucket: mciuploads
1024        permissions: public-read
1025        content_type: ${content_type|application/x-gzip}
1026        display_name: Generated Tests - Execution ${execution}
1027
1028  "run idl tests" :
1029    - command: shell.exec
1030      type: test
1031      params:
1032        working_dir: src
1033        script: |
1034          set -o verbose
1035          set -o errexit
1036
1037          ${activate_virtualenv}
1038          $python buildscripts/idl/run_tests.py
1039
1040  "run powercycle test" :
1041    - command: shell.exec
1042      type: test
1043      params:
1044        working_dir: src
1045        shell: bash
1046        script: |
1047          set -o verbose
1048          set -o errexit
1049
1050          ${activate_virtualenv}
1051
1052          ${set_sudo}
1053          if [ ! -z $sudo ]; then
1054            remote_sudo="--remoteSudo"
1055          fi
1056
1057          # The virtaulenv bin_dir is different for Linux and Windows
1058          bin_dir=$(find $VIRTUAL_ENV -name activate | sed -e "s,$VIRTUAL_ENV,,;s,activate,,;s,/,,g")
1059          cmds="source ${virtualenv_dir|venv}/$bin_dir/activate"
1060          cmds="$cmds; python -u"
1061          # The remote python operates in a virtualenv
1062          remote_python="--remotePython=\"$cmds\""
1063
1064          # Initialize report.json. The report will be finalized by powertest.py.
1065          report_json="report.json"
1066          start_time=$(date +%s)
1067          status="\"fail\""
1068          failures=0
1069          exit_code=1
1070          end_time=$start_time
1071          elapsed_secs=0
1072          echo "{\"failures\": $failures, \"results\": [{\"status\": $status, \"exit_code\": $exit_code, \"test_file\": \"${task_name}\", \"start\": $start_time, \"end\": $end_time, \"elapsed\": $elapsed_secs}]}" > $report_json
1073          generate_report_json="--reportJsonFile=$report_json"
1074
1075          # Windows task overrides:
1076          #   - Execute 10 test loops
1077          #   - Cap the maximum number of clients to 10 each
1078          if [ "Windows_NT" = "$OS" ]; then
1079            test_override=--testLoops=10
1080            max_clients=10
1081            for client in --numCrudClients --numFsmClients
1082            do
1083              override=$(echo ${client_options} | awk "BEGIN {FS=\" |=\"} {for(j=1;j<=NF;j++) if (\$j~/^$client/) {min=(\$(j+1) < $max_clients) ? \$(j+1) : $max_clients; printf \"%s=%d\", \$j,min}}")
1084              client_override="$client_override $override"
1085            done
1086          fi
1087
1088          # Set an exit trap so we can save the real exit status (see SERVER-34033).
1089          trap 'echo $? > error_exit.txt; exit 0' EXIT
1090          config_file=powertest.yml
1091          eval $python pytests/powertest.py \
1092            "--saveConfigOptions=$config_file \
1093            ${connection_options}  \
1094            ${program_options}     \
1095            $generate_report_json  \
1096            $remote_sudo           \
1097            $remote_python         \
1098            ${test_options}        \
1099            $test_override         \
1100            ${crash_options}       \
1101            ${client_options}      \
1102            $client_override       \
1103            ${mongodb_options}     \
1104            ${mongod_options}      \
1105            ${mongod_extra_options}"
1106          set +o errexit
1107          $python -u pytests/powertest.py --configFile=$config_file
1108
1109    - command: expansions.update
1110      params:
1111        ignore_missing_file: true
1112        file: src/${exit_file}
1113
1114    - command: shell.exec
1115      params:
1116        working_dir: src
1117        shell: bash
1118        script: |
1119          # Trigger a system failure if powertest.py failed due to ssh access.
1120          if [ -n "${ec2_ssh_failure}" ]; then
1121            echo "ec2_ssh_failure detected - $(cat ${exit_file})"
1122            exit ${exit_code}
1123          fi
1124
1125    - command: shell.exec
1126      params:
1127        working_dir: src
1128        shell: bash
1129        script: |
1130          if [ ! -f report.json ]; then
1131            exit 0
1132          fi
1133          grep -q "pass" report.json
1134          pass=$?
1135          # On test success, we only archive mongod.log.
1136          if [ $pass -eq 0 ]; then
1137            echo "ec2_artifacts: ${log_path}" > ec2_artifacts.yml
1138          fi
1139
1140    - command: expansions.update
1141      params:
1142        ignore_missing_file: true
1143        file: src/ec2_artifacts.yml
1144
1145    - command: shell.exec
1146      type: test
1147      params:
1148        shell: bash
1149        script: |
1150          # Test exits from here with specified exit_code.
1151          if [ -n "${exit_code}" ]; then
1152            # Python program saved exit_code
1153            exit_code=${exit_code}
1154          elif [ -f error_exit.txt ]; then
1155            # Bash trap exit_code
1156            exit_code=$(cat error_exit.txt)
1157          else
1158            exit_code=0
1159          fi
1160          echo "Exiting powercycle with code $exit_code"
1161          exit $exit_code
1162
1163
1164  "do multiversion setup" :
1165    command: shell.exec
1166    params:
1167      working_dir: src
1168      script: |
1169        set -o errexit
1170        set -o verbose
1171
1172        ${activate_virtualenv}
1173        # The Windows build variants are running python 2.7.3 and require TLS 1.2 from pyOpenSSL
1174        pip install 'pyOpenSSL ; sys_platform == "win32" or sys_platform == "cygwin"'
1175
1176        rm -rf /data/install /data/multiversion
1177        $python buildscripts/setup_multiversion_mongodb.py   \
1178          --installDir /data/install                         \
1179          --linkDir /data/multiversion                       \
1180          --edition ${multiversion_edition|base}             \
1181          --platform ${multiversion_platform|linux}          \
1182          --architecture ${multiversion_architecture|x86_64} \
1183          --useLatest 3.0 3.2 3.4 3.6.14
1184
1185  "do snmp setup" :
1186    command: shell.exec
1187    params:
1188      working_dir: src
1189      script: |
1190        set -o errexit
1191        set -o verbose
1192
1193        mkdir -p snmpconf
1194        cp -f src/mongo/db/modules/enterprise/docs/mongod.conf.master snmpconf/mongod.conf
1195
1196  "do watchdog setup" :
1197    command: shell.exec
1198    params:
1199      working_dir: src
1200      script: |
1201        set -o errexit
1202        set -o verbose
1203
1204        bash src/mongo/db/modules/enterprise/jstests/watchdog/charybdefs_setup.sh
1205
1206  "cleanup environment" :
1207    command: shell.exec
1208    params:
1209      script: |
1210        set -o verbose
1211
1212        rm -rf src /data/db/* mongo-diskstats* mongo-*.tgz ~/.aws ~/.boto venv
1213
1214  "kill processes" :
1215    command: shell.exec
1216    params:
1217      silent: true
1218      script: |
1219        process_kill_list="(^cl\.exe$|bsondump|java|lein|lldb|mongo|python|_test$|_test\.exe$)"
1220        # Exclude Evergreen agent processes and other system daemons
1221        process_exclude_list="(main|tuned|evergreen)"
1222
1223        if [ "Windows_NT" = "$OS" ]; then
1224          # Get the list of Windows tasks (tasklist list format):
1225          # - Transpose the Image Name and PID
1226          # - The first column has the process ID
1227          # - The second column (and beyond) has task name
1228          # - Grep for the task names of interest while ignoring any names that are in the exclude list
1229
1230          processes=$(tasklist /fo:csv | awk -F'","' '{x=$1; gsub("\"","",x); print $2, x}' | grep -i -E "$process_kill_list" | grep -i -v -E "$process_exclude_list")
1231
1232          # Kill the Windows process by process ID with force (/f)
1233          kill_process () { pid=$(echo $1 | cut -f1 -d ' '); echo "Killing process $1"; taskkill /pid "$pid" /f; }
1234        else
1235          # Get the list of Unix tasks (pgrep full & long):
1236          # - Grep for the task names of interest while ignoring any names that are in the exclude list
1237          # - The first column has the process ID
1238          # - The second column (and beyond) has task name
1239
1240          # There are 2 "styles" of grep, figure out which one works
1241          grep=grep
1242          echo "a" | $grep -qE "(a)" > /dev/null 2>&1
1243          if [ $? -ne 0 ]; then
1244            # Extended grep on Solaris is in the following location
1245            grep=/usr/xpg4/bin/grep
1246            if [ ! -f $grep ]; then
1247              echo "Extended $grep does not exist"
1248              return 1
1249            fi
1250          fi
1251
1252          # There are 2 "styles" of pgrep, figure out which one works.
1253          # Due to https://bugs.launchpad.net/ubuntu/+source/procps/+bug/1501916
1254          # we cannot rely on the return status ($?) to detect if the option is supported.
1255          pgrep -f --list-full ".*" 2>&1 | $grep -qE "(illegal|invalid|unrecognized) option"
1256          if [ $? -ne 0 ]; then
1257            pgrep_list=$(pgrep -f --list-full "$process_kill_list")
1258          else
1259            pgrep_list=$(pgrep -f -l "$process_kill_list")
1260          fi
1261
1262          # Since a process name might have a CR or LF in it, we need to delete any lines from
1263          # pgrep which do not start with space(s) and 1 digit and trim any leading spaces.
1264          processes=$(echo "$pgrep_list" | $grep -ivE "$process_exclude_list" | sed -e '/^ *[0-9]/!d; s/^ *//; s/[[:cntrl:]]//g;')
1265
1266          # Kill the Unix process ID with signal KILL (9)
1267          kill_process () { pid=$(echo $1 | cut -f1 -d ' '); echo "Killing process $1"; kill -9 $pid; }
1268        fi
1269        # Since a full process name can have spaces, the IFS (internal field separator)
1270        # should not include a space, just a LF & CR
1271        IFS=$(printf "\n\r")
1272        for process in $processes
1273        do
1274          kill_process "$process"
1275        done
1276
1277  "run kitchen":
1278    command: shell.exec
1279    type: test
1280    params:
1281      shell: bash
1282      working_dir: src/buildscripts/package_test
1283      script: |
1284        set -o errexit
1285
1286        export KITCHEN_ARTIFACTS_URL="https://s3.amazonaws.com/mciuploads/${project}/${build_variant}/${revision}/artifacts/${build_id}-packages.tgz"
1287        export KITCHEN_SECURITY_GROUP="${kitchen_security_group}"
1288        export KITCHEN_SSH_KEY_ID="${kitchen_ssh_key_id}"
1289        export KITCHEN_SUBNET="${kitchen_subnet}"
1290        export KITCHEN_VPC="${kitchen_vpc}"
1291
1292        # set expiration tag 2 hours in the future, since no test should take this long
1293        ${activate_virtualenv}
1294        export KITCHEN_EXPIRE="$($python -c 'import datetime; print((datetime.datetime.utcnow() + datetime.timedelta(hours=2)).strftime("%Y-%m-%d %H:%M:%S"))')"
1295
1296        for i in {1..3}
1297        do
1298          if ! kitchen verify "${packager_distro}"\$; then
1299            verified="false"
1300            kitchen destroy "${packager_distro}"\$ || true
1301            sleep 30
1302          else
1303            verified="true"
1304            break
1305          fi
1306        done
1307
1308        kitchen destroy "${packager_distro}"\$ || true
1309        test "$verified" = "true"
1310
1311  "fetch test_lifecycle.yml":
1312  - command: shell.exec
1313    type: test
1314    params:
1315      working_dir: src
1316      script: |
1317        set -o verbose
1318
1319        ${activate_virtualenv}
1320        $python buildscripts/fetch_test_lifecycle.py \
1321            --metadataRepo git@github.com:mongodb/mongo-test-metadata.git \
1322            --lifecycleFile etc/test_lifecycle.yml \
1323            --referencesFile references.yml \
1324            --destinationFile etc/test_lifecycle.yml \
1325            --revision ${revision} \
1326            ${project}
1327        exit_code=$?
1328        if [ ${fail_task_on_error|false} = true ]; then
1329          exit $exit_code
1330        else
1331          exit 0
1332        fi
1333
1334  "copy ec2 monitor files": &copy_ec2_monitor_files
1335    command: shell.exec
1336    params:
1337      background: true
1338      system_log: true
1339      working_dir: src
1340      silent: false
1341      script: |
1342        while [ 1 ]
1343        do
1344          # Tar/zip monitor files on remote host.
1345          if [ -z "${ec2_monitor_files}" ] || [ -z "${instance_id}" ]; then
1346            exit 0
1347          fi
1348          # Ensure we use the latest private_ip_address, as it could change if the EC2 instance
1349          # has been stopped and started.
1350          ${activate_virtualenv}
1351          # Specify '--mode start' to ensure the remote instance is running.
1352          monitor_ec2_yml=monitor_ec2.yml
1353          $python buildscripts/aws_ec2.py --imageId ${instance_id} --mode start --yamlFile $monitor_ec2_yml
1354          echo "AMI EC2 instance ${instance_id} status: $(cat $monitor_ec2_yml)"
1355          private_ip_address=$($python buildscripts/yaml_key_value.py --yamlFile $monitor_ec2_yml --yamlKey private_ip_address)
1356          if [ -z "$private_ip_address" ]; then
1357            echo "Cannot determine the IP address for the remote monitor."
1358            continue
1359          fi
1360          cmd="${tar|tar} czf ec2_monitor_files.tgz ${ec2_monitor_files}"
1361          ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1362          ssh_connection_options="$ssh_connection_options -o ConnectionAttempts=3"
1363          $python buildscripts/remote_operations.py          \
1364            --verbose                                        \
1365            --userHost $USER@$private_ip_address             \
1366            --sshConnectionOptions "$ssh_connection_options" \
1367            --retries ${ssh_retries|0}                       \
1368            --commands "$cmd"
1369          $python buildscripts/remote_operations.py          \
1370            --verbose                                        \
1371            --userHost $USER@$private_ip_address             \
1372            --operation "copy_from"                          \
1373            --sshConnectionOptions "$ssh_connection_options" \
1374            --retries ${ssh_retries|0}                       \
1375            --file ec2_monitor_files.tgz
1376          sleep 30
1377        done
1378
1379  "set up EC2 instance": &set_up_ec2_instance
1380    - command: shell.exec
1381      params:
1382        working_dir: src
1383        script: |
1384
1385          set -o errexit
1386          ${activate_virtualenv}
1387          pip install -r buildscripts/requirements.txt
1388          pip install -r pytests/requirements.txt
1389
1390          if [ ! -z "${subnet_id}" ]; then
1391            subnet_id="-n ${subnet_id}"
1392          fi
1393
1394          for security_group_id in ${security_group_ids}
1395          do
1396            security_group_ids="$security_group_ids -g $security_group_id"
1397          done
1398
1399          if [ -z "${security_group_ids}" ]; then
1400            for security_group in ${security_groups}
1401            do
1402              security_groups="$security_groups -s $security_group"
1403            done
1404          fi
1405
1406          if [ -n "${ec2_expire_hours}" ]; then
1407            expire_hours="-e ${ec2_expire_hours}"
1408            # Since Windows hosts are expensive to keep running we'll expire it after 3 hours.
1409            if [ "Windows_NT" = "$OS" ]; then
1410              expire_hours="-e 3"
1411            fi
1412          fi
1413
1414          # Clone another instance of this host in EC2.
1415          buildscripts/launch_evergreen_ec2_instance.sh \
1416            $expire_hours                               \
1417            -k ${ssh_key_id}                            \
1418            $security_groups                            \
1419            $security_group_ids                         \
1420            $subnet_id                                  \
1421            -t "AMI Evergreen ${task_id}"               \
1422            -y ${aws_ec2_yml}
1423
1424    - command: expansions.update
1425      params:
1426        file: src/${aws_ec2_yml}
1427
1428    - command: shell.exec
1429      params:
1430        shell: bash
1431        working_dir: src
1432        script: |
1433          set -o errexit
1434          ${activate_virtualenv}
1435          # Copy mount_drives.sh script to remote host.
1436          ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1437          $python buildscripts/remote_operations.py          \
1438            --verbose                                        \
1439            --userHost $USER@${private_ip_address}                   \
1440            --operation "copy_to"                            \
1441            --sshConnectionOptions "$ssh_connection_options" \
1442            --retries ${ssh_retries|0}                       \
1443            --file buildscripts/mount_drives.sh
1444
1445    - command: shell.exec
1446      params:
1447        shell: bash
1448        working_dir: src
1449        script: |
1450          set -o errexit
1451          ${activate_virtualenv}
1452          # Mount /data on the attached drive(s), more than 1 indicates a RAID set.
1453          ${set_sudo}
1454          script_opts="-d '${data_device_names}'"
1455          if [ ! -z "${raid_data_device_name}" ]; then
1456            script_opts="$script_opts -r ${raid_data_device_name}"
1457          fi
1458          if [ ! -z "${fstype}" ]; then
1459            script_opts="$script_opts -t ${fstype}"
1460          fi
1461          if [ ! -z "${fs_options}" ]; then
1462            script_opts="$script_opts -o '${fs_options}'"
1463          fi
1464          # Mount /log on the attached drive.
1465          if [ ! -z "${log_device_name}" ]; then
1466            script_opts="$script_opts -l '${log_device_name}'"
1467            log="/log"
1468          fi
1469          group=$(id -Gn $USER | cut -f1 -d ' ') || true
1470          user_group="$USER:$group"
1471          script_opts="$script_opts -u $user_group"
1472          data_db=/data/db
1473          cmds="$sudo bash mount_drives.sh $script_opts; mount; ls -ld $data_db $log; df"
1474          ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1475          $python buildscripts/remote_operations.py          \
1476            --verbose                                        \
1477            --userHost $USER@${private_ip_address}                   \
1478            --sshConnectionOptions "$ssh_connection_options" \
1479            --retries ${ssh_retries|0}                       \
1480            --commands "$cmds"
1481
1482    - command: shell.exec
1483      params:
1484        shell: bash
1485        working_dir: src
1486        script: |
1487          set -o errexit
1488          ${activate_virtualenv}
1489          # Create remote_dir, if specified as expansion macro and is not '.' (pwd).
1490          if [[ -z "${remote_dir|}" || ${remote_dir} == "." ]]; then
1491            exit 0
1492          fi
1493          ${set_sudo}
1494          ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1495          group=$(id -Gn $USER | cut -f1 -d ' ') || true
1496          user_group="$USER:$group"
1497          set_permission="chmod 777 ${remote_dir}"
1498          if [ "Windows_NT" = "$OS" ]; then
1499            set_permission="setfacl -s user::rwx,group::rwx,other::rwx ${remote_dir}"
1500          fi
1501          cmds="$sudo mkdir -p ${remote_dir}; $sudo chown $user_group ${remote_dir}; $set_permission; ls -ld ${remote_dir}"
1502          $python buildscripts/remote_operations.py          \
1503            --verbose                                        \
1504            --userHost $USER@${private_ip_address}                   \
1505            --sshConnectionOptions "$ssh_connection_options" \
1506            --retries ${ssh_retries|0}                       \
1507            --commands "$cmds"
1508
1509    - command: shell.exec
1510      params:
1511        shell: bash
1512        working_dir: src
1513        script: |
1514          set -o errexit
1515          ${activate_virtualenv}
1516          # Copy buildscripts, pytests and mongoDB executables to the remote host.
1517          file_param="--file buildscripts --file pytests"
1518          mongo_executables="mongo mongod mongos"
1519          for executable in $mongo_executables
1520          do
1521            file_param="$file_param --file $executable${exe}"
1522          done
1523          ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1524          $python buildscripts/remote_operations.py          \
1525            --verbose                                        \
1526            --userHost $USER@${private_ip_address}                   \
1527            --operation "copy_to"                            \
1528            --sshConnectionOptions "$ssh_connection_options" \
1529            --retries ${ssh_retries|0}                       \
1530            $file_param                                      \
1531            --remoteDir ${remote_dir}
1532
1533    - command: shell.exec
1534      params:
1535        shell: bash
1536        working_dir: src
1537        script: |
1538          set -o errexit
1539          ${activate_virtualenv}
1540          # Set up virtualenv on remote.
1541          cmds="python_loc=\$(which \${python|/opt/mongodbtoolchain/v2/bin/python2})"
1542          cmds="$cmds; remote_dir=${remote_dir|.}"
1543          cmds="$cmds; if [ \"Windows_NT\" = \"$OS\" ]; then python_loc=\$(cygpath -w \$python_loc); remote_dir=\$(cygpath -w \$remote_dir); fi"
1544          cmds="$cmds; virtualenv --python \$python_loc --system-site-packages ${virtualenv_dir|venv}"
1545          cmds="$cmds; activate=\$(find ${virtualenv_dir|venv} -name 'activate')"
1546          cmds="$cmds; . \$activate"
1547          cmds="$cmds; pip install -r \$remote_dir/pytests/requirements.txt"
1548          ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1549          $python buildscripts/remote_operations.py          \
1550            --verbose                                        \
1551            --userHost $USER@${private_ip_address}           \
1552            --sshConnectionOptions "$ssh_connection_options" \
1553            --retries ${ssh_retries|0}                       \
1554            --commands "$cmds"
1555
1556    - command: shell.exec
1557      params:
1558        shell: bash
1559        working_dir: src
1560        script: |
1561          if [ "Windows_NT" = "$OS" ]; then
1562            exit 0
1563          fi
1564          # Enable core dumps on non-Windows remote hosts.
1565          # The core pattern must specify a director, since mongod --fork will chdir("/")
1566          # and cannot generate a core dump there (see SERVER-21635).
1567          # We need to reboot the host for the core limits to take effect.
1568          ${set_sudo}
1569          core_pattern=${remote_dir}/dump_%e.%p.core
1570          sysctl_conf=/etc/sysctl.conf
1571          cmds="ulimit -a"
1572          cmds="$cmds; echo \"$USER - core unlimited\" | $sudo tee -a /etc/security/limits.conf"
1573          cmds="$cmds; if [ -f $sysctl_conf ]"
1574          cmds="$cmds; then grep ^kernel.core_pattern $sysctl_conf"
1575          cmds="$cmds;    if [ \$? -eq  0 ]"
1576          cmds="$cmds;    then $sudo sed -i \"s,kernel.core_pattern=.*,kernel.core_pattern=$core_pattern,\" $sysctl_conf"
1577          cmds="$cmds;    else echo \"kernel.core_pattern=$core_pattern\" | $sudo tee -a $sysctl_conf"
1578          cmds="$cmds;    fi"
1579          cmds="$cmds; else echo Cannot change the core pattern and no core dumps will be generated."
1580          cmds="$cmds; fi"
1581          # The following line for restarting the machine is based on
1582          # https://unix.stackexchange.com/a/349558 in order to ensure the ssh client gets a
1583          # response from the remote machine before it restarts.
1584          cmds="$cmds; nohup $sudo reboot &>/dev/null & exit"
1585          ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1586          ${activate_virtualenv}
1587          $python buildscripts/remote_operations.py          \
1588            --verbose                                        \
1589            --userHost $USER@${private_ip_address}           \
1590            --sshConnectionOptions "$ssh_connection_options" \
1591            --retries ${ssh_retries|0}                       \
1592            --commands "$cmds"
1593
1594    - command: shell.exec
1595      params:
1596        shell: bash
1597        working_dir: src
1598        script: |
1599          if [ "Windows_NT" = "$OS" ]; then
1600            exit 0
1601          fi
1602          # Always exit successfully, as this is just informational.
1603          trap 'echo "Trapped exit code $?, exiting with 0"; exit 0' EXIT
1604          # Print the ulimit & kernel.core_pattern
1605          cmds="uptime"
1606          cmds="$cmds; ulimit -a"
1607          cmds="$cmds; if [ -f /sbin/sysctl ]"
1608          cmds="$cmds; then /sbin/sysctl kernel.core_pattern"
1609          cmds="$cmds; fi"
1610          ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1611          ${activate_virtualenv}
1612          $python buildscripts/remote_operations.py          \
1613            --verbose                                        \
1614            --userHost $USER@${private_ip_address}           \
1615            --sshConnectionOptions "$ssh_connection_options" \
1616            --retries ${ssh_retries|3}                       \
1617            --commands "$cmds"
1618
1619    - command: shell.exec
1620      params:
1621        shell: bash
1622        working_dir: src
1623        script: |
1624          set -o errexit
1625          ${activate_virtualenv}
1626          ${set_sudo}
1627          # Set up curator to collect system & process stats on remote.
1628          if [ "Windows_NT" = "$OS" ]; then
1629             variant=windows-64
1630          else
1631             variant=ubuntu1604
1632          fi
1633          # Download stable version of curator
1634          curator_hash=117d1a65256ff78b6d15ab79a1c7088443b936d0
1635          curator_url="https://s3.amazonaws.com/boxes.10gen.com/build/curator/curator-dist-$variant-$curator_hash.tar.gz"
1636          cmds="curl -s $curator_url | tar -xzv"
1637          if [ "Windows_NT" = "$OS" ]; then
1638            # Since curator runs as SYSTEM user, ensure the output files can be accessed.
1639            cmds="$cmds; touch ${monitor_system_file}; chmod 777 ${monitor_system_file}"
1640            cmds="$cmds; cygrunsrv --install curator_sys --path curator --chdir \$HOME --args 'stat system --file ${monitor_system_file}'"
1641            cmds="$cmds; touch ${monitor_proc_file}; chmod 777 ${monitor_proc_file}"
1642            cmds="$cmds; cygrunsrv --install curator_proc --path curator --chdir \$HOME --args 'stat process-all --file ${monitor_proc_file}'"
1643            cmds="$cmds; cygrunsrv --start curator_sys"
1644            cmds="$cmds; cygrunsrv --start curator_proc"
1645          else
1646            cmds="$cmds; cmd=\"@reboot cd \$HOME && ${sudo} ./curator stat system >> ${monitor_system_file}\""
1647            cmds="$cmds; (crontab -l ; echo \"\$cmd\") | crontab -"
1648            cmds="$cmds; cmd=\"@reboot cd \$HOME && ${sudo} ./curator stat process-all >> ${monitor_proc_file}\""
1649            cmds="$cmds; (crontab -l ; echo \"\$cmd\") | crontab -"
1650            cmds="$cmds; crontab -l"
1651            cmds="$cmds; { ${sudo} \$HOME/curator stat system --file ${monitor_system_file} > /dev/null 2>&1 & ${sudo} \$HOME/curator stat process-all --file ${monitor_proc_file} > /dev/null 2>&1 & } & disown"
1652          fi
1653          ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1654          $python buildscripts/remote_operations.py          \
1655            --verbose                                        \
1656            --userHost $USER@${private_ip_address}                   \
1657            --sshConnectionOptions "$ssh_connection_options" \
1658            --retries ${ssh_retries|0}                       \
1659            --commands "$cmds"
1660
1661    - command: shell.exec
1662      params:
1663        shell: bash
1664        working_dir: src
1665        script: |
1666          set -o errexit
1667          ${activate_virtualenv}
1668          ${set_sudo}
1669          # Many systems have the firewall disabled, by default. In case the firewall is
1670          # enabled we add rules for the mongod ports on the remote.
1671          # RHEL 7 firewall rules
1672          if [ ! -z "$(which firewall-cmd 2> /dev/null)" ]; then
1673            cmds="$sudo firewall-cmd --permanent --zone=public --add-port=ssh/tcp"
1674            cmds="$cmds; $sudo firewall-cmd --permanent --zone=public --add-port=${standard_port}/tcp"
1675            cmds="$cmds; $sudo firewall-cmd --permanent --zone=public --add-port=${secret_port}/tcp"
1676            cmds="$cmds; $sudo firewall-cmd --reload"
1677            cmds="$cmds; $sudo firewall-cmd --list-all"
1678          # ArchLinux, Debian, RHEL 6 firewall rules
1679          elif [ ! -z "$($sudo iptables --list 2> /dev/null)" ]; then
1680            cmds="$sudo iptables -I INPUT 1 -p tcp --dport ssh -j ACCEPT"
1681            cmds="$cmds; $sudo iptables -I INPUT 1 -p tcp --dport ${standard_port} -j ACCEPT"
1682            cmds="$cmds; $sudo iptables -I INPUT 1 -p tcp --dport ${secret_port} -j ACCEPT"
1683            if [ -d /etc/iptables ]; then
1684              rules_file=/etc/iptables/iptables.rules
1685            elif [ -f /etc/sysconfig/iptables ]; then
1686              rules_file=/etc/sysconfig/iptables
1687            else
1688              rules_file=/etc/iptables.up.rules
1689            fi
1690            cmds="$cmds; $sudo iptables-save | $sudo tee $rules_file"
1691            cmds="$cmds; $sudo iptables --list-rules"
1692          elif [ ! -z "$($sudo service iptables status 2> /dev/null)" ]; then
1693            cmds="$sudo iptables -I INPUT 1 -p tcp --dport ssh -j ACCEPT"
1694            cmds="$cmds; $sudo iptables -I INPUT 1 -p tcp --dport ${standard_port} -j ACCEPT"
1695            cmds="$cmds; $sudo iptables -I INPUT 1 -p tcp --dport ${secret_port} -j ACCEPT"
1696            cmds="$cmds; $sudo service iptables save"
1697            cmds="$cmds; $sudo service iptables status"
1698          # Ubuntu firewall rules
1699          elif [ ! -z "$($sudo ufw status 2> /dev/null)" ]; then
1700            cmds="$sudo ufw allow ssh/tcp"
1701            cmds="$cmds; $sudo ufw allow ${standard_port}/tcp"
1702            cmds="$cmds; $sudo ufw allow ${secret_port}/tcp"
1703            cmds="$cmds; $sudo ufw reload"
1704            cmds="$cmds; $sudo ufw status"
1705          # SuSE firewall rules
1706          # TODO: Add firewall rules using SuSEfirewall2
1707          elif [ ! -z "$($sudo /sbin/SuSEfirewall2 help 2> /dev/null)" ]; then
1708            cmds="$sudo /sbin/SuSEfirewall2 stop"
1709            cmds="$cmds; $sudo /sbin/SuSEfirewall2 off"
1710          # Windows firewall rules
1711          elif [ ! -z "$(netsh advfirewall show store 2> /dev/null)" ]; then
1712            add_rule="netsh advfirewall firewall add rule"
1713            cmds="$add_rule name='MongoDB port ${standard_port} in' dir=in action=allow protocol=TCP localport=${standard_port}"
1714            cmds="$cmds; $add_rule name='MongoDB port ${standard_port} out' dir=in action=allow protocol=TCP localport=${standard_port}"
1715            cmds="$cmds; $add_rule name='MongoDB port ${secret_port} in' dir=in action=allow protocol=TCP localport=${secret_port}"
1716            cmds="$cmds; $add_rule name='MongoDB port ${secret_port} out' dir=in action=allow protocol=TCP localport=${secret_port}"
1717            cmds="$cmds; netsh advfirewall firewall show rule name=all | grep -A 13 'MongoDB'"
1718          else
1719            echo "Firewall not active or unknown firewall command on this platform"
1720            exit 0
1721          fi
1722          set -o errexit
1723          if [ ! -z "$cmds" ]; then
1724            ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1725            $python buildscripts/remote_operations.py          \
1726              --verbose                                        \
1727              --userHost $USER@${private_ip_address}                   \
1728              --sshConnectionOptions "$ssh_connection_options" \
1729              --retries ${ssh_retries|0}                       \
1730              --commands "$cmds"
1731          fi
1732
1733    - command: shell.exec
1734      params:
1735        shell: bash
1736        working_dir: src
1737        script: |
1738          ${activate_virtualenv}
1739          set -o errexit
1740          if [[ "Windows_NT" != "$OS" || -z "${windows_crash_zip}" ]]; then
1741            exit 0
1742          fi
1743          # Install NotMyFault, used to crash Windows.
1744          cmds="curl -s -o ${windows_crash_zip} ${windows_crash_dl}"
1745          cmds="$cmds; unzip -q ${windows_crash_zip} -d ${windows_crash_dir}"
1746          cmds="$cmds; chmod +x ${windows_crash_dir}/*.exe"
1747          ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1748          $python buildscripts/remote_operations.py          \
1749            --verbose                                        \
1750            --userHost $USER@${private_ip_address}                   \
1751            --sshConnectionOptions "$ssh_connection_options" \
1752            --retries ${ssh_retries|0}                       \
1753            --commands "$cmds"
1754
1755    - *copy_ec2_monitor_files
1756
1757  ### Determine & set remote EC2 IP address ###
1758  "get EC2 address": &get_ec2_address
1759    command: shell.exec
1760    params:
1761      shell: bash
1762      working_dir: src
1763      script: |
1764        if [ -z "${instance_id}" ]; then
1765          exit 0
1766        fi
1767        # Ensure we use the latest private_ip_address, as it could change if the EC2 instance
1768        # has been stopped and started.
1769        ${activate_virtualenv}
1770        # Specify '--mode start' to ensure the remote instance is running.
1771        now=$(date +'%Y%m%d%H%M%S')
1772        aws_ec2_status_yml=aws_ec2_status.yml
1773        $python buildscripts/aws_ec2.py            \
1774          --imageId ${instance_id}                 \
1775          --mode start                             \
1776          --yamlFile $aws_ec2_status_yml           \
1777          --consoleOutputFile ec2_console_$now.log \
1778          --consoleScreenshotFile ec2_console_screen_shot_$now.jpg
1779        private_ip_address=$($python buildscripts/yaml_key_value.py --yamlFile $aws_ec2_status_yml --yamlKey private_ip_address)
1780        echo "private_ip_address: $private_ip_address" > private_ip_address.yml
1781
1782  "update EC2 address": &update_ec2_address
1783    command: expansions.update
1784    params:
1785      file: src/private_ip_address.yml
1786
1787  ### Process & archive remote EC2 artifacts ###
1788  "tar EC2 artifacts": &tar_ec2_artifacts
1789    command: shell.exec
1790    params:
1791      shell: bash
1792      working_dir: src
1793      script: |
1794        ${activate_virtualenv}
1795        # Tar/zip artifacts on remote host.
1796        if [[ -z "${ec2_artifacts}" || -n "${ec2_ssh_failure}" ]]; then
1797          exit 0
1798        fi
1799        cmd="${tar|tar} czf ec2_artifacts.tgz ${ec2_artifacts}"
1800        ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1801        $python buildscripts/remote_operations.py          \
1802          --verbose                                        \
1803          --userHost $USER@${private_ip_address}           \
1804          --sshConnectionOptions "$ssh_connection_options" \
1805          --retries ${ssh_retries|0}                       \
1806          --commands "$cmd"
1807
1808  "copy EC2 artifacts": &copy_ec2_artifacts
1809    command: shell.exec
1810    params:
1811      shell: bash
1812      working_dir: src
1813      script: |
1814        ${activate_virtualenv}
1815        # Copy remote artifacts.
1816        if [[ -z "${ec2_artifacts}" || -n "${ec2_ssh_failure}" ]]; then
1817          exit 0
1818        fi
1819        ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1820        $python buildscripts/remote_operations.py          \
1821          --verbose                                        \
1822          --userHost $USER@${private_ip_address}           \
1823          --operation "copy_from"                          \
1824          --sshConnectionOptions "$ssh_connection_options" \
1825          --retries ${ssh_retries|0}                       \
1826          --file ec2_artifacts.tgz
1827
1828  "cleanup EC2 instance": &cleanup_ec2_instance
1829    command: shell.exec
1830    params:
1831      shell: bash
1832      working_dir: src
1833      script: |
1834        # We do not terminate the EC2 instance if there was an ec2_ssh_failure.
1835        if [[ -z "${ec2_artifacts}" || -n "${ec2_ssh_failure}" ]]; then
1836          exit 0
1837        fi
1838        ${activate_virtualenv}
1839        echo "Terminating $instance_id"
1840        aws_ec2=$($python buildscripts/aws_ec2.py --imageId ${instance_id} --mode terminate)
1841        echo "Terminated AMI EC2 instance: $aws_ec2"
1842
1843  "gather remote mongo coredumps": &gather_remote_mongo_coredumps
1844    command: shell.exec
1845    params:
1846      shell: bash
1847      working_dir: "src"
1848      script: |
1849        if [[ ! -f ${aws_ec2_yml|""} || -n "${ec2_ssh_failure}" ]]; then
1850          exit 0
1851        fi
1852        ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1853        remote_dir=${remote_dir|.}
1854        # Find all core files and move to $remote_dir
1855        cmds="core_files=\$(/usr/bin/find -H . \( -name '*.core' -o -name '*.mdmp' \) 2> /dev/null)"
1856        cmds="$cmds; if [ -z \"\$core_files\" ]; then exit 0; fi"
1857        cmds="$cmds; echo Found remote core files \$core_files, moving to \$(pwd)"
1858        cmds="$cmds; for core_file in \$core_files"
1859        cmds="$cmds; do base_name=\$(echo \$core_file | sed 's/.*\///')"
1860        cmds="$cmds;   if [ ! -f \$base_name ]; then mv \$core_file .; fi"
1861        cmds="$cmds; done"
1862        ${activate_virtualenv}
1863        $python buildscripts/remote_operations.py          \
1864          --verbose                                        \
1865          --userHost $USER@${private_ip_address}           \
1866          --sshConnectionOptions "$ssh_connection_options" \
1867          --retries ${ssh_retries}                         \
1868          --commands "$cmds"                               \
1869          --commandDir $remote_dir
1870
1871  "copy remote mongo coredumps": &copy_remote_mongo_coredumps
1872    command: shell.exec
1873    params:
1874      shell: bash
1875      working_dir: "src"
1876      script: |
1877        if [[ ! -f ${aws_ec2_yml|""} || -n "${ec2_ssh_failure}" ]]; then
1878          exit 0
1879        fi
1880        ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
1881        remote_dir=${remote_dir|.}
1882        ${activate_virtualenv}
1883        $python buildscripts/remote_operations.py          \
1884          --verbose                                        \
1885          --userHost $USER@${private_ip_address}           \
1886          --operation "copy_from"                          \
1887          --sshConnectionOptions "$ssh_connection_options" \
1888          --retries ${ssh_retries}                         \
1889          --file "$remote_dir/*.core"                      \
1890          --file "$remote_dir/*.mdmp"
1891        # Since both type of core files do not exist on the same host, this command
1892        # will always return non-zero. As the core file retrieval is optional, we
1893        # always exit successfully.
1894        exit 0
1895
1896  "archive remote EC2 artifacts": &archive_remote_ec2_artifacts
1897    command: s3.put
1898    params:
1899      aws_key: ${aws_key}
1900      aws_secret: ${aws_secret}
1901      local_file: src/ec2_artifacts.tgz
1902      remote_file: ${project}/${build_variant}/${revision}/remote_ec2/remote_ec2_artifacts-${task_id}-${execution}.tgz
1903      bucket: mciuploads
1904      permissions: public-read
1905      content_type: ${content_type|application/x-gzip}
1906      display_name: Remote EC2 Artifacts - Execution ${execution}
1907      optional: true
1908
1909  "archive remote EC2 monitor files": &archive_remote_ec2_monitor_files
1910    command: s3.put
1911    params:
1912      aws_key: ${aws_key}
1913      aws_secret: ${aws_secret}
1914      local_file: src/ec2_monitor_files.tgz
1915      remote_file: ${project}/${build_variant}/${revision}/remote_ec2/remote_ec2_monitor-${task_id}-${execution}.tgz
1916      bucket: mciuploads
1917      permissions: public-read
1918      content_type: ${content_type|application/x-gzip}
1919      display_name: Remote EC2 Monitor - Execution ${execution}
1920      optional: true
1921
1922  "gather EC2 console artifacts": &gather_ec2_console_artifacts
1923    command: shell.exec
1924    params:
1925      working_dir: src
1926      script: |
1927        ec2_console_files=$(ls ec2_console* 2> /dev/null)
1928        if [ -n "$ec2_console_files" ]; then
1929          ${tar|tar} czf ec2_console_files.tgz $ec2_console_files
1930        fi
1931
1932  "archive EC2 console artifacts": &archive_ec2_console_artifacts
1933    command: s3.put
1934    params:
1935      aws_key: ${aws_key}
1936      aws_secret: ${aws_secret}
1937      local_file: src/ec2_console_files.tgz
1938      remote_file: ${project}/${build_variant}/${revision}/ec2/ec2_console-${task_id}-${execution}.tgz
1939      bucket: mciuploads
1940      permissions: public-read
1941      content_type: ${content_type|application/x-gzip}
1942      display_name: EC2 Console files - Execution ${execution}
1943      optional: true
1944
1945  "save ec2 task artifacts":
1946    - *get_ec2_address
1947    - *update_ec2_address
1948    - *tar_ec2_artifacts
1949    - *copy_ec2_artifacts
1950    - *gather_remote_mongo_coredumps
1951    - *copy_remote_mongo_coredumps
1952    - *gather_ec2_console_artifacts
1953    - *archive_ec2_console_artifacts
1954    - *cleanup_ec2_instance
1955    - *archive_remote_ec2_artifacts
1956    - *archive_remote_ec2_monitor_files
1957
1958  ### Process & archive local client logs ###
1959  "tar local client logs": &tar_local_client_logs
1960    command: shell.exec
1961    params:
1962      working_dir: src
1963      script: |
1964        client_logs=$(ls crud*.log fsm*.log 2> /dev/null)
1965        if [ ! -z "$client_logs" ]; then
1966          ${tar|tar} czf client-logs.tgz $client_logs
1967        fi
1968
1969  "archive local client logs": &archive_local_client_logs
1970    command: s3.put
1971    params:
1972      aws_key: ${aws_key}
1973      aws_secret: ${aws_secret}
1974      local_file: src/client-logs.tgz
1975      remote_file: ${project}/${build_variant}/${revision}/client_logs/mongo-client-logs-${task_id}-${execution}.tgz
1976      bucket: mciuploads
1977      permissions: public-read
1978      content_type: ${content_type|application/x-gzip}
1979      display_name: Client logs - Execution ${execution}
1980      optional: true
1981
1982  "save local client logs":
1983    - *tar_local_client_logs
1984    - *archive_local_client_logs
1985
1986pre:
1987  - func: "kill processes"
1988  - func: "cleanup environment"
1989  - func: "set up virtualenv"
1990  - command: expansions.update
1991    params:
1992       updates:
1993       - key: activate_virtualenv
1994         value: |
1995          # check if virtualenv is set up
1996          if [ -d "${workdir}/venv" ]; then
1997            if [ "Windows_NT" = "$OS" ]; then
1998              # Need to quote the path on Windows to preserve the separator.
1999              . "${workdir}/venv/Scripts/activate" 2> /tmp/activate_error.log
2000            else
2001              . ${workdir}/venv/bin/activate 2> /tmp/activate_error.log
2002            fi
2003            if [ $? -ne 0 ]; then
2004              echo "Failed to activate virtualenv: $(cat /tmp/activate_error.log)"
2005            fi
2006            python=python
2007          else
2008            python=${python|/opt/mongodbtoolchain/v2/bin/python2}
2009          fi
2010          echo "python set to $(which $python)"
2011       - key: activate_virtualenv_3
2012         value: |
2013          # check if virtualenv for python3 is set up
2014          if [ -d "${workdir}/venv_3" ]; then
2015            if [ "Windows_NT" = "$OS" ]; then
2016              # Need to quote the path on Windows to preserve the separator.
2017              . "${workdir}/venv_3/Scripts/activate" 2> /tmp/activate_error.log
2018            else
2019              . ${workdir}/venv_3/bin/activate 2> /tmp/activate_error.log
2020            fi
2021            if [ $? -ne 0 ]; then
2022              echo "Failed to activate virtualenv: $(cat /tmp/activate_error.log)"
2023            fi
2024            python=python
2025          else
2026            if [ "Windows_NT" = "$OS" ]; then
2027              python=/cygdrive/c/python/Python36/python
2028            else
2029              python=${python3|/opt/mongodbtoolchain/v2/bin/python3}
2030            fi
2031          fi
2032          echo "python set to $(which $python)"
2033       - key: add_nodejs_to_path
2034         value: |
2035          # Add node and npm binaries to PATH
2036          if [ "Windows_NT" = "$OS" ]; then
2037            # An "npm" directory might not have been created in %APPDATA% by the Windows installer.
2038            # Work around the issue by specifying a different %APPDATA% path.
2039            # See: https://github.com/nodejs/node-v0.x-archive/issues/8141
2040            export APPDATA=${workdir}/npm-app-data
2041            export PATH="$PATH:/cygdrive/c/Program Files (x86)/nodejs" # Windows location
2042            # TODO: this is to work around BUILD-8652
2043            cd "$(pwd -P | sed 's,cygdrive/c/,cygdrive/z/,')"
2044          else
2045            export PATH="$PATH:/opt/node/bin"
2046          fi
2047       - key: posix_workdir
2048         value: eval 'if [ "Windows_NT" = "$OS" ]; then echo $(cygpath -u "${workdir}"); else echo ${workdir}; fi'
2049       # For ssh disable the options GSSAPIAuthentication, CheckHostIP, StrictHostKeyChecking
2050       # & UserKnownHostsFile, since these are local connections from one AWS instance to another.
2051       - key: ssh_connection_options
2052         value: -o GSSAPIAuthentication=no -o CheckHostIP=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=30 -o ConnectionAttempts=20
2053       - key: ssh_retries
2054         value: "10"
2055       - key: set_sudo
2056         value: |
2057          set -o > /tmp/settings.log
2058          set +o errexit
2059          grep errexit /tmp/settings.log | grep on
2060          errexit_on=$?
2061          # Set errexit "off".
2062          set +o errexit
2063          sudo=
2064          # Use sudo, if it is supported.
2065          sudo date > /dev/null 2>&1
2066          if [ $? -eq 0 ]; then
2067            sudo=sudo
2068          fi
2069          # Set errexit "on", if previously enabled.
2070          if [ $errexit_on -eq 0 ]; then
2071            set -o errexit
2072          fi
2073  - command: shell.exec
2074    params:
2075      system_log: true
2076      script: |
2077
2078        ulimit -a
2079        # Clear the dmesg ring buffer. The "post" phase will check dmesg for OOM messages.
2080        ${set_sudo}
2081        $sudo dmesg -c > /dev/null 2>&1
2082        if [ $? -eq 0 ]; then
2083          echo "Cleared the dmesg ring buffer"
2084        else
2085          echo "Could not clear the dmesg ring buffer"
2086        fi
2087
2088
2089post:
2090  - command: attach.results
2091    params:
2092      file_location: src/report.json
2093  - command: attach.artifacts
2094    params:
2095      ignore_artifacts_for_spawn: false
2096      files:
2097        - src/archive.json
2098
2099  - func: "save ec2 task artifacts"
2100  - func: "call BF Suggestion service"
2101  - func: "kill processes"
2102  - func: "save local client logs"
2103  # Print out any Out of Memory killed process messages.
2104  - command: shell.exec
2105    params:
2106      system_log: true
2107      working_dir: src # Temporary files created in src will be cleaned up in "pre".
2108      script: |
2109        ${set_sudo}
2110        # Use dmesg -T option, if supported, to display timestamps.
2111        dmesg=dmesg
2112        $sudo dmesg -T > /dev/null 2>&1
2113        if [ $? -eq 0 ]; then
2114          dmesg="dmesg -T"
2115        fi
2116        $sudo $dmesg 2> /dev/null > dmesg.txt
2117        if [ $? -ne 0 ]; then
2118          echo "Cannot check for OOM (Out of memory) killed processes on this platform"
2119          exit 0
2120        fi
2121        egrep -i '(Out of memory|OOM[- ]killer|Killed process)' dmesg.txt > oom.txt
2122        if [ -s oom.txt ]; then
2123          echo "OOM (Out of memory) killed processes detected"
2124          cat oom.txt
2125        else
2126          echo "No OOM (Out of memory) killed processes detected"
2127        fi
2128
2129  # Cleanup after the watchdog FUSE testing
2130  - command: shell.exec
2131    params:
2132      working_dir: src
2133      script: |
2134        if [ -d /data/thrift ]; then
2135          rm -rf /data/thrift
2136        fi
2137
2138        if [ -d /data/charybdefs ]; then
2139          rm -rf /data/charybdefs
2140        fi
2141
2142  # Attach scons config log
2143  - command: s3.put
2144    params:
2145      optional: true
2146      aws_key: ${aws_key}
2147      aws_secret: ${aws_secret}
2148      local_file: src/build/scons/config.log
2149      remote_file: ${project}/${build_variant}/${revision}/artifacts/config-${build_id}.log
2150      bucket: mciuploads
2151      permissions: public-read
2152      content_type: text/plain
2153      display_name: config.log
2154
2155  # Process and save coverage data.
2156  - command: shell.exec
2157    params:
2158      working_dir: src
2159      script: |
2160        set +o errexit
2161        if [ -d "./build" ]; then
2162          file_list=$(find ./build -type f -name "*.gcda")
2163          if [ -n "$file_list" ]; then
2164            for gcda_file in $file_list; do
2165              echo "Processing file $gcda_file"
2166              /opt/mongodbtoolchain/v2/bin/gcov -i $gcda_file
2167              base_name=$(echo $gcda_file | rev | cut -f1 -d '/' | cut -f2 -d '.' | rev)
2168              gcov_file=$base_name.gcda.gcov
2169              if [ -f "$gcov_file" ]; then
2170                # Add a prefix to the intermediate file, since it does not have a unique name.
2171                # Convert the '/' to '#' in the file path.
2172                file_prefix=$(echo $gcda_file | sed -e 's,^\./,,' | rev | cut -f2- -d '/' | rev | tr -s '/' '#')
2173                new_gcov_file=$file_prefix#$base_name.gcda.gcov
2174                if [ ! -f $new_gcov_file ]; then
2175                  echo "Renaming gcov intermediate file $gcov_file to $new_gcov_file"
2176                  mv $gcov_file $new_gcov_file
2177                else
2178                  # We treat this as a fatal condition and remove all of the coverage files.
2179                  echo "Not renaming $gcov_file as $new_gcov_file already exists!"
2180                  rm -f *.gcda.gcov
2181                  exit 1
2182                fi
2183              fi
2184            done
2185          fi
2186        fi
2187  - command: archive.targz_pack
2188    params:
2189      target: "src/gcov-intermediate-files.tgz"
2190      source_dir: "src"
2191      include:
2192        - "*.gcda.gcov"
2193  - command: s3.put
2194    params:
2195      aws_key: ${aws_key}
2196      aws_secret: ${aws_secret}
2197      local_file: "src/gcov-intermediate-files.tgz"
2198      remote_file: ${project}/${build_variant}/${revision}/gcov/gcov-intermediate-files-${task_id}-${execution}.tgz
2199      bucket: mciuploads
2200      permissions: public-read
2201      content_type: ${content_type|application/x-gzip}
2202      display_name: gcov intermediate files - Execution ${execution}
2203      optional: true
2204
2205  - command: archive.targz_pack
2206    params:
2207      target: "src/jepsen-mongod-logs.tgz"
2208      source_dir: "${workdir}/src/jepsen-workdir"
2209      include:
2210        - "./**.log"
2211
2212  - command: s3.put
2213    params:
2214      aws_key: ${aws_key}
2215      aws_secret: ${aws_secret}
2216      local_file: src/jepsen-mongod-logs.tgz
2217      remote_file: ${project}/${build_variant}/${revision}/jepsen/jepsen-mongod-logs-${task_id}-${execution}.tgz
2218      bucket: mciuploads
2219      permissions: public-read
2220      content_type: ${content_type|application/x-gzip}
2221      display_name: Jepsen mongod Logs - ${execution}
2222      optional: true
2223
2224  # Gather and archive the Jepsen results.
2225  - command: archive.targz_pack
2226    params:
2227      target: "src/jepsen-results.tgz"
2228      source_dir: "src/jepsen-mongodb/store"
2229      include:
2230        - "./**"
2231  - command: s3.put
2232    params:
2233      aws_key: ${aws_key}
2234      aws_secret: ${aws_secret}
2235      local_file: src/jepsen-results.tgz
2236      remote_file: ${project}/${build_variant}/${revision}/jepsen/jepsen-results-${task_id}-${execution}.tgz
2237      bucket: mciuploads
2238      permissions: public-read
2239      content_type: ${content_type|application/x-gzip}
2240      display_name: Jepsen Test Results - ${execution}
2241      optional: true
2242
2243  # Gather and archive mongo coredumps.
2244  - command: shell.exec
2245    params:
2246      working_dir: "src"
2247      script: |
2248        # Find all core files and move to src
2249        core_files=$(/usr/bin/find -H .. \( -name "*.core" -o -name "*.mdmp" \) 2> /dev/null)
2250        for core_file in $core_files
2251        do
2252          base_name=$(echo $core_file | sed "s/.*\///")
2253          # Move file if it does not already exist
2254          if [ ! -f $base_name ]; then
2255            mv $core_file .
2256          fi
2257        done
2258  - command: archive.targz_pack
2259    params:
2260      target: "mongo-coredumps.tgz"
2261      source_dir: "src"
2262      include:
2263        - "./**.core"
2264        - "./**.mdmp" # Windows: minidumps
2265  - command: s3.put
2266    params:
2267      aws_key: ${aws_key}
2268      aws_secret: ${aws_secret}
2269      local_file: mongo-coredumps.tgz
2270      remote_file: ${project}/${build_variant}/${revision}/coredumps/mongo-coredumps-${build_id}-${task_name}-${execution}.tgz
2271      bucket: mciuploads
2272      permissions: public-read
2273      content_type: ${content_type|application/x-gzip}
2274      display_name: Core Dumps - Execution ${execution}
2275      optional: true
2276
2277  # Gather and archive failed unit test binaries.
2278  - command: shell.exec
2279    params:
2280      working_dir: "src"
2281      script: |
2282        mkdir unittest_binaries
2283        # Find all core files
2284        core_files=$(/usr/bin/find -H . \( -name "dump_*.core" -o -name "*.mdmp" \) 2> /dev/null)
2285        for core_file in $core_files
2286        do
2287          # A core file name does not always have the executable name that generated it.
2288          # See http://stackoverflow.com/questions/34801353/core-dump-filename-gets-thread-name-instead-of-executable-name-with-core-pattern
2289          # On platforms with GDB, we get the binary name from core file
2290          gdb=/opt/mongodbtoolchain/gdb/bin/gdb
2291          if [ -f $gdb ]; then
2292            binary_file=$($gdb -batch --quiet -ex "core $core_file" 2> /dev/null | grep "Core was generated" | cut -f2 -d "\`" | cut -f1 -d "'" | cut -f1 -d " ")
2293            binary_file_locations=$binary_file
2294          else
2295            # Find the base file name from the core file name, note it may be truncated.
2296            # Remove leading 'dump_' and trailing '.<pid>.core' or '.<pid or time>.mdmp'
2297            binary_file=$(echo $core_file | sed "s/.*\///;s/dump_//;s/\..*\.core//;s/\..*\.mdmp//")
2298            # Locate the binary file. Since the base file name might be truncated, the find
2299            # may return more than 1 file.
2300            binary_file_locations=$(/usr/bin/find -H . -name "$binary_file*${exe}" 2> /dev/null)
2301          fi
2302          if [ -z "$binary_file_locations" ]; then
2303            echo "Cannot locate the unittest binary file ($binary_file) that generated the core file $core_file"
2304          fi
2305          for binary_file_location in $binary_file_locations
2306          do
2307            new_binary_file=unittest_binaries/$(echo $binary_file_location | sed "s/.*\///")
2308            if [ ! -f $new_binary_file ]; then
2309              mv $binary_file_location $new_binary_file
2310            fi
2311            # On Windows if a .pdb symbol file exists, include it in the archive.
2312            pdb_file=$(echo $binary_file_location | sed "s/\.exe/.pdb/")
2313            if [ -f $pdb_file ]; then
2314              new_pdb_file=unittest_binaries/$(echo $pdb_file | sed "s/.*\///")
2315              mv $pdb_file $new_pdb_file
2316            fi
2317          done
2318        done
2319  - command: archive.targz_pack
2320    params:
2321      target: "mongo-unittests.tgz"
2322      source_dir: "src/unittest_binaries"
2323      include:
2324        - "./*_test${exe}"
2325  - command: s3.put
2326    params:
2327      aws_key: ${aws_key}
2328      aws_secret: ${aws_secret}
2329      local_file: mongo-unittests.tgz
2330      remote_file: ${project}/${build_variant}/${revision}/unittests/mongo-unittests-${build_id}-${task_name}-${execution}.tgz
2331      bucket: mciuploads
2332      permissions: public-read
2333      content_type: ${content_type|application/x-gzip}
2334      display_name: Unit tests - Execution ${execution}
2335      optional: true
2336
2337  # Gather and archive hang_analyzer debugger files.
2338  - command: archive.targz_pack
2339    params:
2340      target: "src/mongo-hanganalyzer.tgz"
2341      source_dir: "src"
2342      include:
2343        - "./debugger*.*"
2344  - command: s3.put
2345    params:
2346      aws_key: ${aws_key}
2347      aws_secret: ${aws_secret}
2348      local_file: src/mongo-hanganalyzer.tgz
2349      remote_file: ${project}/${build_variant}/${revision}/hanganalyzer/mongo-hanganalyzer-${build_id}-${task_name}-${execution}.tgz
2350      bucket: mciuploads
2351      permissions: public-read
2352      content_type: ${content_type|application/x-gzip}
2353      display_name: Hang Analyzer Output - Execution ${execution}
2354      optional: true
2355
2356  # Gather and archive disk statistics.
2357  - command: archive.targz_pack
2358    params:
2359      target: "diskstats.tgz"
2360      source_dir: "./"
2361      include:
2362        - "./mongo-diskstats*"
2363        - "./mongo-diskstats*.csv"
2364  - command: s3.put
2365    params:
2366      aws_key: ${aws_key}
2367      aws_secret: ${aws_secret}
2368      local_file: diskstats.tgz
2369      remote_file: ${project}/${build_variant}/${revision}/diskstats/mongo-diskstats-${task_id}-${execution}.tgz
2370      bucket: mciuploads
2371      permissions: public-read
2372      content_type: ${content_type|application/x-gzip}
2373      display_name: Disk Stats - Execution ${execution}
2374      optional: true
2375
2376  # Gather and archive system resource information.
2377  - command: archive.targz_pack
2378    params:
2379      target: "system-resource-info.tgz"
2380      source_dir: src
2381      include:
2382        - "./system_resource_info*"
2383  - command: s3.put
2384    params:
2385      aws_key: ${aws_key}
2386      aws_secret: ${aws_secret}
2387      local_file: system-resource-info.tgz
2388      remote_file: ${project}/${build_variant}/${revision}/systemresourceinfo/mongo-system-resource-info-${task_id}-${execution}.tgz
2389      bucket: mciuploads
2390      permissions: public-read
2391      content_type: ${content_type|application/x-gzip}
2392      display_name: System Resource Info - Execution ${execution}
2393      optional: true
2394
2395  # Cleanup steps.
2396  - command: shell.exec
2397    params:
2398      working_dir: src
2399      script: |
2400        # removes files from the (local) scons cache when it's over a
2401        # threshold, to the $prune_ratio percentage. Ideally override
2402        # these default values in the distro config in evergreen.
2403
2404        ${activate_virtualenv}
2405        if [ -d "${scons_cache_path}" ]; then
2406            $python buildscripts/scons_cache_prune.py --cache-dir '${scons_cache_path}' --cache-size ${scons_cache_size|200} --prune-ratio ${scons_prune_ratio|0.8}
2407        fi
2408  - func: "cleanup environment"
2409
2410timeout:
2411  - func: "fetch debugsymbols archive"
2412  - func: "extract debugsymbols"
2413  - func: "get EC2 address"
2414  - func: "update EC2 address"
2415  - command: shell.exec
2416    params:
2417      working_dir: src
2418      script: |
2419        set -o verbose
2420
2421        ${activate_virtualenv}
2422        hang_analyzer_option="-o file -o stdout -p ${hang_analyzer_processes|dbtest,java,mongo,mongod,mongos,python,_test} -g bsondump,mongodump,mongoexport,mongofiles,mongoimport,mongoreplay,mongorestore,mongostat,mongotop"
2423
2424        if [ ${hang_analyzer_dump_core|true} = true ]; then
2425          hang_analyzer_option="-c $hang_analyzer_option"
2426        fi
2427
2428        echo "Calling the hang analyzer: PATH=\"/opt/mongodbtoolchain/gdb/bin:$PATH\" $python buildscripts/hang_analyzer.py $hang_analyzer_option"
2429        PATH="/opt/mongodbtoolchain/gdb/bin:$PATH" $python buildscripts/hang_analyzer.py $hang_analyzer_option
2430
2431        # Call hang_analyzer.py script for tasks that are running remote mongo processes
2432        # Any task which uses remote processes will have previously loaded this file to set these
2433        # expansion macros.
2434        if [ -n "${private_ip_address}" ]; then
2435          core_ext=core
2436          if [ "Windows_NT" = "$OS" ]; then
2437            core_ext=mdmp
2438          fi
2439          ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
2440          # buildscripts must be installed in ${remote_dir} on the remote host.
2441          remote_dir=${remote_dir|.}
2442
2443          # Copy mongoDB debug symbols to the remote host.
2444          debug_files=$(ls *.debug *.dSYM *.pdb 2> /dev/null)
2445          for debug_file in $debug_files
2446          do
2447            file_param="$file_param --file $debug_file"
2448          done
2449          if [ ! -z "$file_param" ]; then
2450            $python buildscripts/remote_operations.py          \
2451              --verbose                                        \
2452              --userHost $USER@${private_ip_address}                   \
2453              --operation "copy_to"                            \
2454              --sshConnectionOptions "$ssh_connection_options" \
2455              --retries ${ssh_retries}                         \
2456              $file_param                                      \
2457              --remoteDir $remote_dir
2458          fi
2459
2460          cmds="PATH=\"/opt/mongodbtoolchain/gdb/bin:\$PATH\" $python buildscripts/hang_analyzer.py $hang_analyzer_option"
2461          $python buildscripts/remote_operations.py          \
2462            --verbose                                        \
2463            --userHost $USER@${private_ip_address}                   \
2464            --sshConnectionOptions "$ssh_connection_options" \
2465            --retries ${ssh_retries}                         \
2466            --commands "$cmds"                               \
2467            --commandDir $remote_dir
2468          $python buildscripts/remote_operations.py          \
2469            --verbose                                        \
2470            --userHost $USER@${private_ip_address}                   \
2471            --operation "copy_from"                          \
2472            --sshConnectionOptions "$ssh_connection_options" \
2473            --retries ${ssh_retries}                         \
2474            --file "$remote_dir/debugger*.*"                 \
2475            --file "$remote_dir/*.$core_ext"
2476        fi
2477
2478#######################################
2479#               Tasks                 #
2480#######################################
2481
2482## The test_lifecycle_excluded_tasks are a list of tasks names which include:
2483##   - Non jstests, i.e., compile, unittests
2484##   - Non standard jstests, i.e., jstestfuzz
2485## Note that the task name supports glob patterns.
2486test_lifecycle_excluded_tasks:
2487- burn_in_tests
2488- compile*
2489- dbtest*
2490- idl_tests
2491- integration*
2492- jepsen*
2493- jstestfuzz*
2494- lint
2495- mongos*
2496- package
2497- push
2498- rollback_fuzzer*
2499- unittests*
2500- update_fuzzer*
2501
2502tasks:
2503
2504## compile - build all scons targets except unittests ##
2505- name: compile
2506  depends_on: []
2507  commands:
2508    - command: manifest.load
2509    - func: "git get project"
2510    - func: "get buildnumber"
2511    - func: "set up credentials"
2512    - func: "fetch and build OpenSSL"
2513    - func: "build new tools" # noop if ${newtools} is not "true"
2514    - func: "generate compile expansions"
2515    # Then we load the generated version data into the agent so we can use it in task definitions
2516    - func: "apply compile expansions"
2517    - func: "scons compile"
2518      vars:
2519        targets: core tools dbtest integration_tests dist dist-debugsymbols distsrc-${ext|tgz} ${msi_target|}
2520        task_compile_flags: >-
2521          --use-new-tools
2522          --build-mongoreplay="${build_mongoreplay}"
2523          --detect-odr-violations
2524
2525    - command: shell.exec
2526      type: test
2527      params:
2528        working_dir: src
2529        script: |
2530          set -o errexit
2531          set -o verbose
2532
2533          mv mongodb-src-*.${ext|tgz} distsrc.${ext|tgz}
2534          mv mongodb-*-debugsymbols.${ext|tgz} mongo-debugsymbols.tgz || true
2535          mv mongodb-*.${ext|tgz} mongodb-binaries.tgz
2536
2537          # If strip is on the path (everywhere except windows) then we should strip the test binaries
2538          # before tarring them up
2539          if [ -x ${strip_path|/usr/bin/strip} ]; then
2540            cat build/integration_tests.txt | xargs ${strip_command|/usr/bin/strip}
2541            ${strip_command|/usr/bin/strip} dbtest
2542            ${strip_command|/usr/bin/strip} mongobridge
2543          fi
2544
2545    - command: shell.exec
2546      params:
2547        working_dir: src
2548        script: |
2549          set -o errexit
2550          set -o verbose
2551
2552          ${activate_virtualenv}
2553          if [ "${has_packages|}" = "true" ] ; then
2554            cd buildscripts
2555            $python ${packager_script} --prefix `pwd`/.. --distros ${packager_distro} --tarball `pwd`/../mongodb-binaries.tgz -s ${version} -m HEAD -a ${packager_arch}
2556            cd ..
2557          fi
2558
2559          # Create separate shell archive
2560          mkdir -p shell-archive/build
2561          cd shell-archive
2562          ${platform_decompress|tar xzvf} ../mongodb-binaries.tgz
2563          find . -mindepth 3 ! -name "mongo${exe}" -type f -exec rm {} \; # delete bin/* except bin/mongo
2564          $python ../buildscripts/make_archive.py -o mongodb-shell.${ext|tgz} $(find mongodb-* -type f)
2565          cd ..
2566
2567  # Test lifecycle is temporarily disabled to reduce load on Evergreen API.
2568  # - func: "fetch test_lifecycle.yml"
2569  #   vars:
2570  #     # Do not fail the task if we fail to fetch the test_lifecycle.yml file
2571  #     fail_task_on_error: false
2572
2573    - command: archive.targz_pack
2574      params:
2575        target: "artifacts.tgz"
2576        source_dir: "src"
2577        include:
2578          - "src/mongo/db/modules/enterprise/jstests/**"
2579          - "compile_expansions.yml"
2580          - "src/mongo/db/modules/subscription/jstests/**"
2581          - "src/mongo/db/modules/enterprise/docs/**"
2582          - "*.exe"
2583          - "jstests/**"
2584          - "pytests/**"
2585          - "./test*"
2586          - "./dbtest*"
2587          - "./mongobridge*"
2588          - "buildscripts/**"
2589          - "*Example"
2590          - "*Test"
2591          - "./**.pdb"
2592          - "./**.msi"
2593          - "./etc/*san.suppressions"
2594          - "./etc/repo_config.yaml"
2595          - "./etc/test_lifecycle.yml"
2596          - "./etc/test_retrial.yml"
2597          - "./build/integration_tests/**"
2598          - "./build/integration_tests.txt"
2599          - "./build/**.gcno"
2600          - "repo/**"
2601          - "src/mongo/util/options_parser/test_config_files/**"
2602          - "library_dependency_graph.json"
2603          - "src/third_party/JSON-Schema-Test-Suite/tests/draft4/**"
2604        exclude_files:
2605          - "*_test.pdb"
2606    - command: archive.targz_pack
2607      params:
2608        target: "packages.tgz"
2609        source_dir: "src"
2610        include:
2611          - "repo/**"
2612          - "./**.msi"
2613    - command: s3.put
2614      params:
2615        optional: true
2616        aws_key: ${aws_key}
2617        aws_secret: ${aws_secret}
2618        local_file: packages.tgz
2619        remote_file: ${project}/${build_variant}/${revision}/artifacts/${build_id}-packages.tgz
2620        bucket: mciuploads
2621        permissions: public-read
2622        content_type: application/tar
2623        display_name: Packages
2624    - func: "upload debugsymbols"
2625    - command: s3.put
2626      params:
2627        aws_key: ${aws_key}
2628        aws_secret: ${aws_secret}
2629        local_file: src/mongodb-binaries.tgz
2630        remote_file: ${project}/${build_variant}/${revision}/binaries/mongo-${build_id}.${ext|tgz}
2631        bucket: mciuploads
2632        permissions: public-read
2633        content_type: ${content_type|application/x-gzip}
2634        display_name: Binaries
2635    - command: s3.put
2636      params:
2637        aws_key: ${aws_key}
2638        aws_secret: ${aws_secret}
2639        local_file: src/shell-archive/mongodb-shell.${ext|tgz}
2640        remote_file: ${project}/${build_variant}/${revision}/binaries/mongo-shell-${build_id}.${ext|tgz}
2641        bucket: mciuploads
2642        permissions: public-read
2643        content_type: ${content_type|application/x-gzip}
2644        display_name: Shell
2645    - command: s3.put
2646      params:
2647        aws_key: ${aws_key}
2648        aws_secret: ${aws_secret}
2649        local_file: artifacts.tgz
2650        remote_file: ${project}/${build_variant}/${revision}/artifacts/${build_id}.tgz
2651        bucket: mciuploads
2652        permissions: public-read
2653        content_type: application/tar
2654        display_name: Artifacts
2655    - command: s3.put
2656      params:
2657        aws_key: ${aws_key}
2658        aws_secret: ${aws_secret}
2659        local_file: src/distsrc.${ext|tgz}
2660        remote_file: ${project}/${build_variant}/${revision}/sources/mongo-src-${build_id}.${ext|tgz}
2661        bucket: mciuploads
2662        permissions: public-read
2663        content_type: ${content_type|application/x-gzip}
2664        display_name: Source tarball
2665        # We only need to upload the source tarball from one of the build variants
2666        # because it should be the same everywhere, so just use linux-64/windows-64-2k8.
2667        build_variants: [ linux-64, windows-64-2k8-ssl ]
2668
2669## compile_all - build all scons targets including unittests ##
2670- name: compile_all
2671  commands:
2672    - command: manifest.load
2673    - func: "git get project"
2674    - func: "get buildnumber"
2675    - func: "set up credentials"
2676    - func: "fetch and build OpenSSL"
2677    - func: "build new tools" # noop if ${newtools} is not "true"
2678    - func: "generate compile expansions"
2679    # Then we load the generated version data into the agent so we can use it in task definitions.
2680    - func: "apply compile expansions"
2681    - func: "scons compile"
2682      vars:
2683        targets: all
2684        task_compile_flags: >-
2685          --use-new-tools
2686          --build-mongoreplay="${build_mongoreplay}"
2687          --detect-odr-violations
2688    - command: s3.put
2689      params:
2690        aws_key: ${aws_key}
2691        aws_secret: ${aws_secret}
2692        local_file: src/library_dependency_graph.json
2693        remote_file: ${project}/${build_variant}/${revision}/library_dependency_graph.${build_id}.json
2694        bucket: mciuploads
2695        permissions: public-read
2696        content_type: application/json
2697        display_name: Library Dependency Graph (library_dependency_graph.json)
2698        build_variants: [enterprise-ubuntu1604-64]
2699
2700    # Run the C++ unittests as part of compile_all. The compiled binaries are automatically
2701    # installed into the top-level directory by SCons.
2702    # noop if ${disable_unit_tests} is "true"
2703    - func: "run tests"
2704      vars:
2705        resmoke_args: --suites=unittests
2706        run_multiple_jobs: true
2707
2708- name: compile_benchmarks
2709  depends_on: []
2710  commands:
2711    - command: manifest.load
2712    - func: "git get project"
2713    - func: "get buildnumber"
2714    - func: "set up credentials"
2715    - func: "fetch and build OpenSSL"
2716    - func: "generate compile expansions"
2717    # Then we load the generated version data into the agent so we can use it in task definitions
2718    - func: "apply compile expansions"
2719    - func: "scons compile"
2720      vars:
2721        targets: benchmarks
2722    - command: archive.targz_pack
2723      params:
2724        target: "benchmarks.tgz"
2725        source_dir: "src"
2726        include:
2727          - "./build/benchmarks.txt"
2728          - "./build/**_bm"
2729          - "./build/**_bm.gcno"
2730          - "./build/**_bm.exe"
2731          - "./build/**_bm.pdb"
2732    - command: s3.put
2733      params:
2734        aws_key: ${aws_key}
2735        aws_secret: ${aws_secret}
2736        local_file: benchmarks.tgz
2737        remote_file: ${project}/${build_variant}/${revision}/benchmarks/${build_id}.tgz
2738        bucket: mciuploads
2739        permissions: public-read
2740        content_type: application/tar
2741        display_name: Benchmarks
2742
2743## lint ##
2744- name: lint
2745  depends_on: []
2746  commands:
2747    - command: manifest.load
2748    - func: "git get project"
2749    - command: shell.exec
2750      type: test
2751      params:
2752        working_dir: src
2753        script: |
2754          set -o errexit
2755          set -o verbose
2756
2757          # Since mypy requires python3, we need to activate the venv_3
2758          ${activate_virtualenv_3}
2759          pip install -r buildscripts/requirements.txt
2760          updated_mypy=$(PATH=$PATH:/opt/mongodbtoolchain/v2/bin which mypy)
2761          deactivate
2762          ###
2763          ${activate_virtualenv}
2764          pip install -r buildscripts/requirements.txt
2765          MYPY=$updated_mypy ${compile_env|} $python ./buildscripts/scons.py ${compile_flags|} --stack-size=1024 lint
2766
2767- <<: *task_template
2768  name: burn_in_tests
2769  depends_on:
2770  - name: compile
2771  commands:
2772  - func: "git get project"
2773    # The repository is cloned in a directory distinct from src for the modified test detection
2774    # because the extraction of the artifacts performed in the 'do setup' causes
2775    # 'git diff --name-only' to see all tests as modified on Windows (git 1.9.5). See SERVER-30634.
2776    vars:
2777      git_project_directory: burn_in_tests_clonedir
2778  - func: "do setup"
2779  - command: shell.exec
2780    params:
2781      working_dir: burn_in_tests_clonedir
2782      script: |
2783        set -o errexit
2784        set -o verbose
2785        # If this is a scheduled build, we check for changes against the last scheduled commit.
2786        if [ "${is_patch}" != "true" ]; then
2787          burn_in_args="--checkEvergreen"
2788        fi
2789        # Copy the dbtest executable from the src dir because burn_in_tests.py calls it to get the
2790        # list of dbtest suites.
2791        cp ../src/dbtest${exe} .
2792        # Capture a list of new and modified tests.
2793        ${activate_virtualenv}
2794        $python buildscripts/burn_in_tests.py --branch=${branch_name} --buildVariant=${build_variant} --testListOutfile=jstests/new_tests.json --noExec $burn_in_args
2795        # Copy the results to the src dir.
2796        cp jstests/new_tests.json ../src/jstests/new_tests.json
2797  - func: "do multiversion setup"
2798  - func: "run tests"
2799    vars:
2800      task_path_suffix: /data/multiversion
2801      resmoke_wrapper: $python buildscripts/burn_in_tests.py --testListFile=jstests/new_tests.json
2802      resmoke_args: --repeat=2
2803      run_multiple_jobs: true
2804
2805- <<: *benchmark_template
2806  name: benchmarks_orphaned
2807  commands:
2808  - func: "do benchmark setup"
2809  - func: "run tests"
2810    vars:
2811      resmoke_args: --suites=benchmarks
2812      run_multiple_jobs: false
2813  - func: "send benchmark results"
2814
2815- <<: *benchmark_template
2816  name: benchmarks_sharding
2817  commands:
2818  - func: "do benchmark setup"
2819  - func: "run tests"
2820    vars:
2821      resmoke_args: --suites=benchmarks_sharding
2822      run_multiple_jobs: false
2823  - func: "send benchmark results"
2824
2825- <<: *run_jepsen_template
2826  name: jepsen_register_findAndModify_WT
2827  commands:
2828  - func: "do setup"
2829  - func: "do jepsen setup"
2830  - func: "run jepsen test"
2831    vars:
2832      <<: *jepsen_config_vars
2833      jepsen_read_with_find_and_modify: --read-with-find-and-modify
2834      jepsen_storage_engine: --storage-engine wiredTiger
2835      jepsen_test_name: register
2836
2837- <<: *run_jepsen_template
2838  name: jepsen_register_linearizableRead
2839  commands:
2840  - func: "do setup"
2841  - func: "do jepsen setup"
2842  - func: "run jepsen test"
2843    vars:
2844      <<: *jepsen_config_vars
2845      jepsen_read_concern: --read-concern linearizable
2846      jepsen_storage_engine: --storage-engine mmapv1
2847      jepsen_test_name: register
2848      # Running Jepsen when using the MMAPv1 storage engine for longer periods of time can lead to
2849      # out of memory issues and task timeouts during the analysis phase.
2850      jepsen_time_limit: --time-limit 300
2851
2852- <<: *run_jepsen_template
2853  name: jepsen_register_linearizableRead_WT
2854  commands:
2855  - func: "do setup"
2856  - func: "do jepsen setup"
2857  - func: "run jepsen test"
2858    vars:
2859      <<: *jepsen_config_vars
2860      jepsen_read_concern: --read-concern linearizable
2861      jepsen_storage_engine: --storage-engine wiredTiger
2862      jepsen_test_name: register
2863
2864- <<: *run_jepsen_template
2865  name: jepsen_set_linearizableRead
2866  commands:
2867  - func: "do setup"
2868  - func: "do jepsen setup"
2869  - func: "run jepsen test"
2870    vars:
2871      <<: *jepsen_config_vars
2872      jepsen_read_concern: --read-concern linearizable
2873      jepsen_storage_engine: --storage-engine mmapv1
2874      jepsen_test_name: set
2875      # Running Jepsen when using the MMAPv1 storage engine for longer periods of time can lead to
2876      # out of memory issues and task timeouts during the analysis phase.
2877      jepsen_time_limit: --time-limit 300
2878
2879- <<: *run_jepsen_template
2880  name: jepsen_set_linearizableRead_WT
2881  commands:
2882  - func: "do setup"
2883  - func: "do jepsen setup"
2884  - func: "run jepsen test"
2885    vars:
2886      <<: *jepsen_config_vars
2887      jepsen_read_concern: --read-concern linearizable
2888      jepsen_storage_engine: --storage-engine wiredTiger
2889      jepsen_test_name: set
2890
2891- <<: *run_jepsen_template
2892  # We only run this test on wiredTiger since MMAPv1 doesn't support majority read concern.
2893  name: jepsen_read-concern-majority_WT
2894  commands:
2895  - func: "do setup"
2896  - func: "do jepsen setup"
2897  - func: "run jepsen test"
2898    vars:
2899      <<: *jepsen_config_vars
2900      jepsen_storage_engine: --storage-engine wiredTiger
2901      jepsen_test_name: read-concern-majority
2902
2903- <<: *run_jepsen_template
2904  # We only run this test on wiredTiger since MMAPv1 doesn't support majority read concern.
2905  name: jepsen_read-concern-majority_w1_WT
2906  commands:
2907  - func: "do setup"
2908  - func: "do jepsen setup"
2909  - func: "run jepsen test"
2910    vars:
2911      <<: *jepsen_config_vars
2912      jepsen_storage_engine: --storage-engine wiredTiger
2913      jepsen_test_name: read-concern-majority
2914      jepsen_write_concern: --write-concern w1
2915
2916## jstestfuzz standalone update generational fuzzer mmapv1 ##
2917- <<: *jstestfuzz_template
2918  name: update_fuzzer
2919  commands:
2920  - func: "do setup"
2921  - func: "do multiversion setup"
2922  - func: "setup jstestfuzz"
2923  - func: "run jstestfuzz"
2924    vars:
2925      npm_command: update-fuzzer
2926  - <<: *run_jstestfuzz_tests
2927    vars:
2928      <<: *jstestfuzz_config_vars
2929      task_path_suffix: /data/multiversion
2930      resmoke_args: --suites=generational_fuzzer --storageEngine=mmapv1
2931
2932## jstestfuzz replication update generational fuzzer mmapv1 ##
2933- <<: *jstestfuzz_template
2934  name: update_fuzzer_replication
2935  commands:
2936  - func: "do setup"
2937  - func: "do multiversion setup"
2938  - func: "setup jstestfuzz"
2939  - func: "run jstestfuzz"
2940    vars:
2941      npm_command: update-fuzzer
2942  - <<: *run_jstestfuzz_tests
2943    vars:
2944      <<: *jstestfuzz_config_vars
2945      task_path_suffix: /data/multiversion
2946      resmoke_args: --suites=generational_fuzzer_replication --storageEngine=mmapv1
2947
2948## jstestfuzz standalone update generational fuzzer WT ##
2949- <<: *jstestfuzz_template
2950  name: update_fuzzer_WT
2951  commands:
2952  - func: "do setup"
2953  - func: "do multiversion setup"
2954  - func: "setup jstestfuzz"
2955  - func: "run jstestfuzz"
2956    vars:
2957      npm_command: update-fuzzer
2958  - <<: *run_jstestfuzz_tests
2959    vars:
2960      <<: *jstestfuzz_config_vars
2961      task_path_suffix: /data/multiversion
2962      resmoke_args: --suites=generational_fuzzer --storageEngine=wiredTiger
2963
2964## jstestfuzz replication update generational fuzzer WT ##
2965- <<: *jstestfuzz_template
2966  name: update_fuzzer_replication_WT
2967  commands:
2968  - func: "do setup"
2969  - func: "do multiversion setup"
2970  - func: "setup jstestfuzz"
2971  - func: "run jstestfuzz"
2972    vars:
2973      npm_command: update-fuzzer
2974  - <<: *run_jstestfuzz_tests
2975    vars:
2976      <<: *jstestfuzz_config_vars
2977      task_path_suffix: /data/multiversion
2978      resmoke_args: --suites=generational_fuzzer_replication --storageEngine=wiredTiger
2979
2980## rollback generational fuzzer mmapv1 ##
2981- <<: *jstestfuzz_template
2982  name: rollback_fuzzer
2983  commands:
2984  - func: "do setup"
2985  - func: "setup jstestfuzz"
2986  - func: "run jstestfuzz"
2987    vars:
2988      jstestfuzz_vars: --numGeneratedFiles 15
2989      npm_command: rollback-fuzzer
2990  - <<: *run_jstestfuzz_tests
2991    vars:
2992      <<: *jstestfuzz_config_vars
2993      resmoke_args: --suites=rollback_fuzzer --storageEngine=mmapv1
2994
2995## rollback generational fuzzer WT ##
2996- <<: *jstestfuzz_template
2997  name: rollback_fuzzer_WT
2998  commands:
2999  - func: "do setup"
3000  - func: "setup jstestfuzz"
3001  - func: "run jstestfuzz"
3002    vars:
3003      jstestfuzz_vars: --numGeneratedFiles 15
3004      npm_command: rollback-fuzzer
3005  - <<: *run_jstestfuzz_tests
3006    vars:
3007      <<: *jstestfuzz_config_vars
3008      resmoke_args: --suites=rollback_fuzzer --storageEngine=wiredTiger
3009
3010## jstestfuzz mmapv1 ##
3011- <<: *jstestfuzz_template
3012  name: jstestfuzz
3013  commands:
3014  - func: "do setup"
3015  - func: "setup jstestfuzz"
3016  - func: "run jstestfuzz"
3017    vars:
3018      jstestfuzz_vars: --jsTestsDir ../jstests
3019  - <<: *run_jstestfuzz_tests
3020    vars:
3021      <<: *jstestfuzz_config_vars
3022      resmoke_args: --suites=jstestfuzz --storageEngine=mmapv1
3023
3024## jstestfuzz WT ##
3025- <<: *jstestfuzz_template
3026  name: jstestfuzz_WT
3027  commands:
3028  - func: "do setup"
3029  - func: "setup jstestfuzz"
3030  - func: "run jstestfuzz"
3031    vars:
3032      jstestfuzz_vars: --jsTestsDir ../jstests
3033  - <<: *run_jstestfuzz_tests
3034    vars:
3035      <<: *jstestfuzz_config_vars
3036      resmoke_args: --suites=jstestfuzz --storageEngine=wiredTiger
3037
3038## jstestfuzz concurrent mmapv1 ##
3039- <<: *jstestfuzz_template
3040  name: jstestfuzz_concurrent
3041  commands:
3042  - func: "do setup"
3043  - func: "setup jstestfuzz"
3044  - func: "run jstestfuzz"
3045    vars:
3046      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3047  - <<: *run_jstestfuzz_tests
3048    vars:
3049      <<: *jstestfuzz_config_vars
3050      resmoke_args: --suites=jstestfuzz --storageEngine=mmapv1 --numClientsPerFixture=10
3051
3052## jstestfuzz concurrent WT ##
3053- <<: *jstestfuzz_template
3054  name: jstestfuzz_concurrent_WT
3055  commands:
3056  - func: "do setup"
3057  - func: "setup jstestfuzz"
3058  - func: "run jstestfuzz"
3059    vars:
3060      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3061  - <<: *run_jstestfuzz_tests
3062    vars:
3063      <<: *jstestfuzz_config_vars
3064      resmoke_args: --suites=jstestfuzz --storageEngine=wiredTiger --numClientsPerFixture=10
3065
3066## jstestfuzz concurrent replica set mmapv1 ##
3067- <<: *jstestfuzz_template
3068  name: jstestfuzz_concurrent_replication
3069  commands:
3070  - func: "do setup"
3071  - func: "setup jstestfuzz"
3072  - func: "run jstestfuzz"
3073    vars:
3074      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3075  - <<: *run_jstestfuzz_tests
3076    vars:
3077      <<: *jstestfuzz_config_vars
3078      resmoke_args: --suites=jstestfuzz_replication --storageEngine=mmapv1 --numClientsPerFixture=10
3079
3080## jstestfuzz concurrent replica set WT ##
3081- <<: *jstestfuzz_template
3082  name: jstestfuzz_concurrent_replication_WT
3083  commands:
3084  - func: "do setup"
3085  - func: "setup jstestfuzz"
3086  - func: "run jstestfuzz"
3087    vars:
3088      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3089  - <<: *run_jstestfuzz_tests
3090    vars:
3091      <<: *jstestfuzz_config_vars
3092      resmoke_args: --suites=jstestfuzz_replication --storageEngine=wiredTiger --numClientsPerFixture=10
3093
3094## jstestfuzz concurrent replica set with logical session mmapv1 ##
3095- <<: *jstestfuzz_template
3096  name: jstestfuzz_concurrent_replication_session
3097  commands:
3098  - func: "do setup"
3099  - func: "setup jstestfuzz"
3100  - func: "run jstestfuzz"
3101    vars:
3102      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3103  - <<: *run_jstestfuzz_tests
3104    vars:
3105      <<: *jstestfuzz_config_vars
3106      resmoke_args: --suites=jstestfuzz_replication_session --storageEngine=mmapv1 --numClientsPerFixture=10
3107
3108## jstestfuzz concurrent replica set with logical session WT ##
3109- <<: *jstestfuzz_template
3110  name: jstestfuzz_concurrent_replication_session_WT
3111  commands:
3112  - func: "do setup"
3113  - func: "setup jstestfuzz"
3114  - func: "run jstestfuzz"
3115    vars:
3116      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3117  - <<: *run_jstestfuzz_tests
3118    vars:
3119      <<: *jstestfuzz_config_vars
3120      resmoke_args: --suites=jstestfuzz_replication_session --storageEngine=wiredTiger --numClientsPerFixture=10
3121
3122## jstestfuzz concurrent sharded cluster mmapv1 ##
3123- <<: *jstestfuzz_template
3124  name: jstestfuzz_concurrent_sharded
3125  commands:
3126  - func: "do setup"
3127  - func: "setup jstestfuzz"
3128  - func: "run jstestfuzz"
3129    vars:
3130      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3131  - <<: *run_jstestfuzz_tests
3132    vars:
3133      <<: *jstestfuzz_config_vars
3134      resmoke_args: --suites=jstestfuzz_sharded --storageEngine=mmapv1 --numClientsPerFixture=10
3135
3136## jstestfuzz concurrent sharded cluster WT ##
3137- <<: *jstestfuzz_template
3138  name: jstestfuzz_concurrent_sharded_WT
3139  commands:
3140  - func: "do setup"
3141  - func: "setup jstestfuzz"
3142  - func: "run jstestfuzz"
3143    vars:
3144      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3145  - <<: *run_jstestfuzz_tests
3146    vars:
3147      <<: *jstestfuzz_config_vars
3148      resmoke_args: --suites=jstestfuzz_sharded --storageEngine=wiredTiger --numClientsPerFixture=10
3149
3150## jstestfuzz concurrent sharded cluster causal consistency mmapv1 ##
3151- <<: *jstestfuzz_template
3152  name: jstestfuzz_concurrent_sharded_causal_consistency
3153  commands:
3154  - func: "do setup"
3155  - func: "setup jstestfuzz"
3156  - func: "run jstestfuzz"
3157    vars:
3158      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3159  - <<: *run_jstestfuzz_tests
3160    vars:
3161      <<: *jstestfuzz_config_vars
3162      resmoke_args: --suites=jstestfuzz_sharded_causal_consistency --storageEngine=mmapv1 --numClientsPerFixture=10
3163
3164## jstestfuzz concurrent sharded cluster causal consistency WT ##
3165- <<: *jstestfuzz_template
3166  name: jstestfuzz_concurrent_sharded_causal_consistency_WT
3167  commands:
3168  - func: "do setup"
3169  - func: "setup jstestfuzz"
3170  - func: "run jstestfuzz"
3171    vars:
3172      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3173  - <<: *run_jstestfuzz_tests
3174    vars:
3175      <<: *jstestfuzz_config_vars
3176      resmoke_args: --suites=jstestfuzz_sharded_causal_consistency --storageEngine=wiredTiger --numClientsPerFixture=10
3177
3178## jstestfuzz concurrent sharded cluster continuous stepdown ##
3179- <<: *jstestfuzz_template
3180  name: jstestfuzz_concurrent_sharded_continuous_stepdown
3181  commands:
3182  - func: "do setup"
3183  - func: "setup jstestfuzz"
3184  - func: "run jstestfuzz"
3185    vars:
3186      jstestfuzz_vars: --numGeneratedFiles 25 --jsTestsDir ../jstests
3187  - <<: *run_jstestfuzz_tests
3188    vars:
3189      <<: *jstestfuzz_config_vars
3190      resmoke_args: --suites=jstestfuzz_sharded_continuous_stepdown --storageEngine=wiredTiger --numClientsPerFixture=10
3191
3192## jstestfuzz concurrent sharded cluster with logical session mmapv1 ##
3193- <<: *jstestfuzz_template
3194  name: jstestfuzz_concurrent_sharded_session
3195  commands:
3196  - func: "do setup"
3197  - func: "setup jstestfuzz"
3198  - func: "run jstestfuzz"
3199    vars:
3200      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3201  - <<: *run_jstestfuzz_tests
3202    vars:
3203      <<: *jstestfuzz_config_vars
3204      resmoke_args: --suites=jstestfuzz_sharded_session --storageEngine=mmapv1 --numClientsPerFixture=10
3205
3206## jstestfuzz concurrent sharded cluster with logical session WT ##
3207- <<: *jstestfuzz_template
3208  name: jstestfuzz_concurrent_sharded_session_WT
3209  commands:
3210  - func: "do setup"
3211  - func: "setup jstestfuzz"
3212  - func: "run jstestfuzz"
3213    vars:
3214      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3215  - <<: *run_jstestfuzz_tests
3216    vars:
3217      <<: *jstestfuzz_config_vars
3218      resmoke_args: --suites=jstestfuzz_sharded_session --storageEngine=wiredTiger --numClientsPerFixture=10
3219
3220## jstestfuzz replica set mmapv1 ##
3221- <<: *jstestfuzz_template
3222  name: jstestfuzz_replication
3223  commands:
3224  - func: "do setup"
3225  - func: "setup jstestfuzz"
3226  - func: "run jstestfuzz"
3227    vars:
3228      jstestfuzz_vars: --jsTestsDir ../jstests
3229  - <<: *run_jstestfuzz_tests
3230    vars:
3231      <<: *jstestfuzz_config_vars
3232      resmoke_args: --suites=jstestfuzz_replication --storageEngine=mmapv1
3233
3234## jstestfuzz replica set WT ##
3235- <<: *jstestfuzz_template
3236  name: jstestfuzz_replication_WT
3237  commands:
3238  - func: "do setup"
3239  - func: "setup jstestfuzz"
3240  - func: "run jstestfuzz"
3241    vars:
3242      jstestfuzz_vars: --jsTestsDir ../jstests
3243  - <<: *run_jstestfuzz_tests
3244    vars:
3245      <<: *jstestfuzz_config_vars
3246      resmoke_args: --suites=jstestfuzz_replication --storageEngine=wiredTiger
3247
3248## jstestfuzz initial sync replica set mmapv1 ##
3249- <<: *jstestfuzz_template
3250  name: jstestfuzz_replication_initsync
3251  commands:
3252  - func: "do setup"
3253  - func: "setup jstestfuzz"
3254  - func: "run jstestfuzz"
3255    vars:
3256      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3257  - <<: *run_jstestfuzz_tests
3258    vars:
3259      <<: *jstestfuzz_config_vars
3260      resmoke_args: --suites=jstestfuzz_replication_initsync --storageEngine=mmapv1
3261
3262## jstestfuzz initial sync replica set WT ##
3263- <<: *jstestfuzz_template
3264  name: jstestfuzz_replication_initsync_WT
3265  commands:
3266  - func: "do setup"
3267  - func: "setup jstestfuzz"
3268  - func: "run jstestfuzz"
3269    vars:
3270      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3271  - <<: *run_jstestfuzz_tests
3272    vars:
3273      <<: *jstestfuzz_config_vars
3274      resmoke_args: --suites=jstestfuzz_replication_initsync --storageEngine=wiredTiger
3275
3276## jstestfuzz initial sync replica set mmapv1 ##
3277- <<: *jstestfuzz_template
3278  name: jstestfuzz_replication_resync
3279  commands:
3280  - func: "do setup"
3281  - func: "setup jstestfuzz"
3282  - func: "run jstestfuzz"
3283    vars:
3284      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3285  - <<: *run_jstestfuzz_tests
3286    vars:
3287      <<: *jstestfuzz_config_vars
3288      resmoke_args: --suites=jstestfuzz_replication_resync --storageEngine=mmapv1
3289
3290## jstestfuzz initial sync replica set WT ##
3291- <<: *jstestfuzz_template
3292  name: jstestfuzz_replication_resync_WT
3293  commands:
3294  - func: "do setup"
3295  - func: "setup jstestfuzz"
3296  - func: "run jstestfuzz"
3297    vars:
3298      jstestfuzz_vars: --numGeneratedFiles 75 --jsTestsDir ../jstests
3299  - <<: *run_jstestfuzz_tests
3300    vars:
3301      <<: *jstestfuzz_config_vars
3302      resmoke_args: --suites=jstestfuzz_replication_resync --storageEngine=wiredTiger
3303
3304## jstestfuzz replica set with logical session mmapv1 ##
3305- <<: *jstestfuzz_template
3306  name: jstestfuzz_replication_session
3307  commands:
3308  - func: "do setup"
3309  - func: "setup jstestfuzz"
3310  - func: "run jstestfuzz"
3311    vars:
3312      jstestfuzz_vars: --jsTestsDir ../jstests
3313  - <<: *run_jstestfuzz_tests
3314    vars:
3315      <<: *jstestfuzz_config_vars
3316      resmoke_args: --suites=jstestfuzz_replication_session --storageEngine=mmapv1
3317
3318## jstestfuzz replica set with logical session WT ##
3319- <<: *jstestfuzz_template
3320  name: jstestfuzz_replication_session_WT
3321  commands:
3322  - func: "do setup"
3323  - func: "setup jstestfuzz"
3324  - func: "run jstestfuzz"
3325    vars:
3326      jstestfuzz_vars: --jsTestsDir ../jstests
3327  - <<: *run_jstestfuzz_tests
3328    vars:
3329      <<: *jstestfuzz_config_vars
3330      resmoke_args: --suites=jstestfuzz_replication_session --storageEngine=wiredTiger
3331
3332## jstestfuzz sharded cluster mmapv1 ##
3333- <<: *jstestfuzz_template
3334  name: jstestfuzz_sharded
3335  commands:
3336  - func: "do setup"
3337  - func: "setup jstestfuzz"
3338  - func: "run jstestfuzz"
3339    vars:
3340      jstestfuzz_vars: --jsTestsDir ../jstests
3341  - <<: *run_jstestfuzz_tests
3342    vars:
3343      <<: *jstestfuzz_config_vars
3344      resmoke_args: --suites=jstestfuzz_sharded --storageEngine=mmapv1
3345
3346## jstestfuzz sharded cluster WT ##
3347- <<: *jstestfuzz_template
3348  name: jstestfuzz_sharded_WT
3349  commands:
3350  - func: "do setup"
3351  - func: "setup jstestfuzz"
3352  - func: "run jstestfuzz"
3353    vars:
3354      jstestfuzz_vars: --jsTestsDir ../jstests
3355  - <<: *run_jstestfuzz_tests
3356    vars:
3357      <<: *jstestfuzz_config_vars
3358      resmoke_args: --suites=jstestfuzz_sharded --storageEngine=wiredTiger
3359
3360## jstestfuzz sharded cluster causal consistency mmapv1 ##
3361- <<: *jstestfuzz_template
3362  name: jstestfuzz_sharded_causal_consistency
3363  commands:
3364  - func: "do setup"
3365  - func: "setup jstestfuzz"
3366  - func: "run jstestfuzz"
3367    vars:
3368      jstestfuzz_vars: --jsTestsDir ../jstests
3369  - <<: *run_jstestfuzz_tests
3370    vars:
3371      <<: *jstestfuzz_config_vars
3372      resmoke_args: --suites=jstestfuzz_sharded_causal_consistency --storageEngine=mmapv1
3373
3374## jstestfuzz sharded cluster causal consistency WT ##
3375- <<: *jstestfuzz_template
3376  name: jstestfuzz_sharded_causal_consistency_WT
3377  commands:
3378  - func: "do setup"
3379  - func: "setup jstestfuzz"
3380  - func: "run jstestfuzz"
3381    vars:
3382      jstestfuzz_vars: --jsTestsDir ../jstests
3383  - <<: *run_jstestfuzz_tests
3384    vars:
3385      <<: *jstestfuzz_config_vars
3386      resmoke_args: --suites=jstestfuzz_sharded_causal_consistency --storageEngine=wiredTiger
3387
3388## jstestfuzz sharded cluster continuous stepdown ##
3389- <<: *jstestfuzz_template
3390  name: jstestfuzz_sharded_continuous_stepdown
3391  commands:
3392  - func: "do setup"
3393  - func: "setup jstestfuzz"
3394  - func: "run jstestfuzz"
3395    vars:
3396      jstestfuzz_vars: --numGeneratedFiles 50 --jsTestsDir ../jstests
3397  - <<: *run_jstestfuzz_tests
3398    vars:
3399      <<: *jstestfuzz_config_vars
3400      resmoke_args: --suites=jstestfuzz_sharded_continuous_stepdown --storageEngine=wiredTiger
3401
3402## jstestfuzz sharded cluster with logical session mmapv1 ##
3403- <<: *jstestfuzz_template
3404  name: jstestfuzz_sharded_session
3405  commands:
3406  - func: "do setup"
3407  - func: "setup jstestfuzz"
3408  - func: "run jstestfuzz"
3409    vars:
3410      jstestfuzz_vars: --jsTestsDir ../jstests
3411  - <<: *run_jstestfuzz_tests
3412    vars:
3413      <<: *jstestfuzz_config_vars
3414      resmoke_args: --suites=jstestfuzz_sharded_session --storageEngine=mmapv1
3415
3416## jstestfuzz sharded cluster with logical session WT ##
3417- <<: *jstestfuzz_template
3418  name: jstestfuzz_sharded_session_WT
3419  commands:
3420  - func: "do setup"
3421  - func: "setup jstestfuzz"
3422  - func: "run jstestfuzz"
3423    vars:
3424      jstestfuzz_vars: --jsTestsDir ../jstests
3425  - <<: *run_jstestfuzz_tests
3426    vars:
3427      <<: *jstestfuzz_config_vars
3428      resmoke_args: --suites=jstestfuzz_sharded_session --storageEngine=wiredTiger
3429
3430# Check that the mutational fuzzer can parse JS files modified in a patch build.
3431- name: lint_fuzzer_sanity_patch
3432  patch_only: true
3433  commands:
3434  - command: manifest.load
3435  - func: "git get project"
3436  - func: "get added and modified patch files"
3437  - func: "setup jstestfuzz"
3438  - func: "lint fuzzer sanity patch"
3439
3440# Check that the mutational fuzzer can parse all JS filess.
3441- name: lint_fuzzer_sanity_all
3442  commands:
3443  - command: manifest.load
3444  - func: "git get project"
3445  - func: "setup jstestfuzz"
3446  - func: "lint fuzzer sanity all"
3447
3448## integration test suites ##
3449
3450- <<: *task_template
3451  name: aggregation
3452  commands:
3453  - func: "do setup"
3454  - func: "run tests"
3455    vars:
3456      resmoke_args: --suites=aggregation --storageEngine=mmapv1
3457      run_multiple_jobs: true
3458
3459- <<: *task_template
3460  name: aggregation_WT
3461  commands:
3462  - func: "do setup"
3463  - func: "run tests"
3464    vars:
3465      resmoke_args: --suites=aggregation --storageEngine=wiredTiger
3466      run_multiple_jobs: true
3467
3468- <<: *task_template
3469  name: aggregation_WT_ese
3470  depends_on:
3471  - name: jsCore_WT
3472  commands:
3473  - func: "do setup"
3474  - func: "run tests"
3475    vars:
3476      resmoke_args: --suites=aggregation_ese --storageEngine=wiredTiger
3477      run_multiple_jobs: true
3478
3479- <<: *task_template
3480  name: aggregation_auth
3481  depends_on:
3482  - name: aggregation_WT
3483  commands:
3484  - func: "do setup"
3485  - func: "run tests"
3486    vars:
3487      resmoke_args: --suites=aggregation_auth
3488      run_multiple_jobs: true
3489
3490- <<: *task_template
3491  name: aggregation_facet_unwind_passthrough_WT
3492  depends_on:
3493  - name: aggregation_WT
3494  commands:
3495  - func: "do setup"
3496  - func: "run tests"
3497    vars:
3498      resmoke_args: --suites=aggregation_facet_unwind_passthrough --storageEngine=wiredTiger
3499      run_multiple_jobs: true
3500
3501- <<: *task_template
3502  name: aggregation_read_concern_majority_passthrough_WT
3503  depends_on:
3504  - name: aggregation_WT
3505  commands:
3506  - func: "do setup"
3507  - func: "run tests"
3508    vars:
3509      resmoke_args: --suites=aggregation_read_concern_majority_passthrough --storageEngine=wiredTiger
3510      run_multiple_jobs: true
3511
3512- <<: *task_template
3513  name: aggregation_sharded_collections_passthrough_WT
3514  depends_on:
3515  - name: aggregation_WT
3516  commands:
3517  - func: "do setup"
3518  - func: "run tests"
3519    vars:
3520      resmoke_args: --suites=aggregation_sharded_collections_passthrough --storageEngine=wiredTiger
3521      run_multiple_jobs: true
3522
3523- <<: *task_template
3524  name: audit
3525  commands:
3526  - func: "do setup"
3527  - func: "run tests"
3528    vars:
3529      resmoke_args: --suites=audit --storageEngine=mmapv1
3530      run_multiple_jobs: true
3531
3532- <<: *task_template
3533  name: audit_WT
3534  commands:
3535  - func: "do setup"
3536  - func: "run tests"
3537    vars:
3538      resmoke_args: --suites=audit --storageEngine=wiredTiger
3539      run_multiple_jobs: true
3540
3541- <<: *task_template
3542  name: auth
3543  commands:
3544  - func: "do setup"
3545  - func: "run tests"
3546    vars:
3547      resmoke_args: --suites=auth --storageEngine=mmapv1
3548      run_multiple_jobs: true
3549
3550- <<: *task_template
3551  name: auth_WT
3552  commands:
3553  - func: "do setup"
3554  - func: "run tests"
3555    vars:
3556      resmoke_args: --suites=auth --storageEngine=wiredTiger
3557      run_multiple_jobs: true
3558
3559- <<: *task_template
3560  name: auth_audit
3561  commands:
3562  - func: "do setup"
3563  - func: "run tests"
3564    vars:
3565      resmoke_args: --suites=auth_audit --storageEngine=mmapv1
3566      run_multiple_jobs: true
3567
3568- <<: *task_template
3569  name: auth_audit_WT
3570  commands:
3571  - func: "do setup"
3572  - func: "run tests"
3573    vars:
3574      resmoke_args: --suites=auth_audit --storageEngine=wiredTiger
3575      run_multiple_jobs: true
3576
3577- <<: *task_template
3578  name: change_streams_WT
3579  commands:
3580  - func: "do setup"
3581  - func: "run tests"
3582    vars:
3583      resmoke_args: --suites=change_streams --storageEngine=wiredTiger
3584      run_multiple_jobs: true
3585
3586- <<: *task_template
3587  name: change_streams_mongos_sessions_passthrough_WT
3588  depends_on:
3589  - name: change_streams_WT
3590  commands:
3591  - func: "do setup"
3592  - func: "run tests"
3593    vars:
3594      resmoke_args: --suites=change_streams_mongos_sessions_passthrough --storageEngine=wiredTiger
3595      run_multiple_jobs: true
3596
3597- <<: *task_template
3598  name: change_streams_mongos_passthrough_WT
3599  depends_on:
3600  - name: change_streams_WT
3601  commands:
3602  - func: "do setup"
3603  - func: "run tests"
3604    vars:
3605      resmoke_args: --suites=change_streams_mongos_passthrough --storageEngine=wiredTiger
3606      run_multiple_jobs: true
3607
3608- <<: *task_template
3609  name: change_streams_secondary_reads_WT
3610  depends_on:
3611  - name: change_streams_WT
3612  commands:
3613  - func: "do setup"
3614  - func: "run tests"
3615    vars:
3616      resmoke_args: --suites=change_streams_secondary_reads --storageEngine=wiredTiger
3617      run_multiple_jobs: true
3618
3619- <<: *task_template
3620  name: change_streams_sharded_collections_passthrough_WT
3621  depends_on:
3622  - name: change_streams_WT
3623  commands:
3624  - func: "do setup"
3625  - func: "run tests"
3626    vars:
3627      resmoke_args: --suites=change_streams_sharded_collections_passthrough --storageEngine=wiredTiger
3628      run_multiple_jobs: true
3629
3630- <<: *task_template
3631  name: dbtest
3632  commands:
3633  - func: "do setup"
3634  - func: "run tests"
3635    vars:
3636      resmoke_args: --suites=dbtest --storageEngine=mmapv1
3637      run_multiple_jobs: true
3638
3639- <<: *task_template
3640  name: dbtest_WT
3641  commands:
3642  - func: "do setup"
3643  - func: "run tests"
3644    vars:
3645      resmoke_args: --suites=dbtest --storageEngine=wiredTiger
3646      run_multiple_jobs: true
3647
3648- <<: *task_template
3649  name: disk
3650  commands:
3651  - func: "do setup"
3652  - func: "run tests"
3653    vars:
3654      resmoke_args: --suites=disk_mmapv1
3655      run_multiple_jobs: false
3656
3657- <<: *task_template
3658  name: disk_WT
3659  commands:
3660  - func: "do setup"
3661  - func: "run tests"
3662    vars:
3663      resmoke_args: --suites=disk_wiredtiger --excludeWithAnyTags=requires_mmapv1
3664      run_multiple_jobs: false
3665
3666- <<: *task_template
3667  name: durability
3668  commands:
3669  - func: "do setup"
3670  - func: "run tests"
3671    vars:
3672      resmoke_args: --suites=durability
3673      run_multiple_jobs: true
3674
3675- <<: *task_template
3676  name: dur_jscore_passthrough
3677  depends_on:
3678  - name: jsCore
3679  commands:
3680  - func: "do setup"
3681  - func: "run tests"
3682    vars:
3683      resmoke_args: --suites=dur_jscore_passthrough
3684      run_multiple_jobs: true
3685
3686- <<: *task_template
3687  name: ese_WT
3688  commands:
3689  - func: "do setup"
3690  - command: shell.exec
3691    type: test
3692    params:
3693      working_dir: src
3694      script: |
3695        set -o errexit
3696        set -o verbose
3697
3698        ${activate_virtualenv}
3699        $python -m pip install -r src/mongo/db/modules/enterprise/jstests/encryptdb/libs/requirements.txt
3700  - func: "run tests"
3701    vars:
3702      resmoke_args: --suites=ese --storageEngine=wiredTiger
3703      run_multiple_jobs: true
3704
3705- <<: *task_template
3706  name: failpoints
3707  commands:
3708  - func: "do setup"
3709  - func: "run tests"
3710    vars:
3711      resmoke_args: --suites=failpoints
3712      run_multiple_jobs: true
3713
3714- <<: *task_template
3715  name: failpoints_auth
3716  commands:
3717  - func: "do setup"
3718  - func: "run tests"
3719    vars:
3720      resmoke_args: --suites=failpoints_auth
3721      run_multiple_jobs: true
3722
3723- <<: *task_template
3724  name: gle_auth
3725  commands:
3726  - func: "do setup"
3727  - func: "run tests"
3728    vars:
3729      resmoke_args: --suites=gle_auth --shellWriteMode=legacy --shellReadMode=legacy --storageEngine=mmapv1 --excludeWithAnyTags=requires_find_command
3730      run_multiple_jobs: true
3731
3732- <<: *task_template
3733  name: gle_auth_WT
3734  commands:
3735  - func: "do setup"
3736  - func: "run tests"
3737    vars:
3738      resmoke_args: --suites=gle_auth --shellWriteMode=legacy --shellReadMode=legacy --storageEngine=wiredTiger --excludeWithAnyTags=requires_find_command
3739      run_multiple_jobs: true
3740
3741- <<: *task_template
3742  name: gle_auth_write_cmd
3743  commands:
3744  - func: "do setup"
3745  - func: "run tests"
3746    vars:
3747      resmoke_args:  --suites=gle_auth --shellWriteMode=commands --storageEngine=mmapv1
3748      run_multiple_jobs: true
3749
3750- <<: *task_template
3751  name: gle_auth_write_cmd_WT
3752  commands:
3753  - func: "do setup"
3754  - func: "run tests"
3755    vars:
3756      resmoke_args: --suites=gle_auth --shellWriteMode=commands --storageEngine=wiredTiger
3757      run_multiple_jobs: true
3758
3759- <<: *task_template
3760  name: gle_auth_basics_passthrough
3761  commands:
3762  - func: "do setup"
3763  - func: "run tests"
3764    vars:
3765      resmoke_args: --suites=gle_auth_basics_passthrough --shellWriteMode=legacy --shellReadMode=legacy --storageEngine=mmapv1 --excludeWithAnyTags=requires_find_command
3766      run_multiple_jobs: true
3767
3768- <<: *task_template
3769  name: gle_auth_basics_passthrough_WT
3770  commands:
3771  - func: "do setup"
3772  - func: "run tests"
3773    vars:
3774      resmoke_args: --suites=gle_auth_basics_passthrough --shellWriteMode=legacy --shellReadMode=legacy --storageEngine=wiredTiger --excludeWithAnyTags=requires_find_command
3775      run_multiple_jobs: true
3776
3777- <<: *task_template
3778  name: gle_auth_basics_passthrough_write_cmd
3779  commands:
3780  - func: "do setup"
3781  - func: "run tests"
3782    vars:
3783      resmoke_args: --suites=gle_auth_basics_passthrough --shellWriteMode=commands --storageEngine=mmapv1
3784      run_multiple_jobs: true
3785
3786- <<: *task_template
3787  name: gle_auth_basics_passthrough_write_cmd_WT
3788  commands:
3789  - func: "do setup"
3790  - func: "run tests"
3791    vars:
3792      resmoke_args: --suites=gle_auth_basics_passthrough --shellWriteMode=commands --storageEngine=wiredTiger
3793      run_multiple_jobs: true
3794
3795- <<: *task_template
3796  name: integration_tests_standalone
3797  commands:
3798  - func: "do setup"
3799  - func: "run tests"
3800    vars:
3801      resmoke_args: --suites=integration_tests_standalone
3802      run_multiple_jobs: true
3803
3804- <<: *task_template
3805  name: integration_tests_replset
3806  commands:
3807  - func: "do setup"
3808  - func: "run tests"
3809    vars:
3810      resmoke_args: --suites=integration_tests_replset
3811      run_multiple_jobs: true
3812
3813- <<: *task_template
3814  name: integration_tests_sharded
3815  commands:
3816  - func: "do setup"
3817  - func: "run tests"
3818    vars:
3819      resmoke_args: --suites=integration_tests_sharded
3820      run_multiple_jobs: true
3821
3822- <<: *task_template
3823  name: external_auth_WT
3824  commands:
3825  - func: "do setup"
3826  - command: shell.exec
3827    type: test
3828    params:
3829      working_dir: src
3830      script: |
3831        set -o errexit
3832        set -o verbose
3833
3834        ${activate_virtualenv}
3835        $python -m pip install -r src/mongo/db/modules/enterprise/jstests/external_auth/lib/external-auth-requirements.txt
3836  - func: "run tests"
3837    vars:
3838      resmoke_args: --suites=external_auth --storageEngine=wiredTiger
3839      run_multiple_jobs: true
3840
3841- <<: *task_template
3842  name: sharding_gle_auth_basics_passthrough
3843  depends_on:
3844  - name: gle_auth_basics_passthrough
3845  commands:
3846  - func: "do setup"
3847  - func: "run tests"
3848    vars:
3849      resmoke_args: --suites=sharding_gle_auth_basics_passthrough --shellWriteMode=legacy --shellReadMode=legacy --storageEngine=mmapv1 --excludeWithAnyTags=requires_find_command
3850      run_multiple_jobs: true
3851
3852- <<: *task_template
3853  name: sharding_gle_auth_basics_passthrough_WT
3854  depends_on:
3855  - name: gle_auth_basics_passthrough_WT
3856  commands:
3857  - func: "do setup"
3858  - func: "run tests"
3859    vars:
3860      resmoke_args: --suites=sharding_gle_auth_basics_passthrough --shellWriteMode=legacy --shellReadMode=legacy --storageEngine=wiredTiger --excludeWithAnyTags=requires_find_command
3861      run_multiple_jobs: true
3862
3863- <<: *task_template
3864  name: sharding_gle_auth_basics_passthrough_write_cmd
3865  depends_on:
3866  - name: gle_auth_basics_passthrough_write_cmd
3867  commands:
3868  - func: "do setup"
3869  - func: "run tests"
3870    vars:
3871      resmoke_args: --suites=sharding_gle_auth_basics_passthrough --shellWriteMode=commands --storageEngine=mmapv1
3872      run_multiple_jobs: true
3873
3874- <<: *task_template
3875  name: sharding_gle_auth_basics_passthrough_write_cmd_WT
3876  depends_on:
3877  - name: gle_auth_basics_passthrough_write_cmd_WT
3878  commands:
3879  - func: "do setup"
3880  - func: "run tests"
3881    vars:
3882      resmoke_args: --suites=sharding_gle_auth_basics_passthrough --shellWriteMode=commands --storageEngine=wiredTiger
3883      run_multiple_jobs: true
3884
3885- <<: *task_template
3886  name: jsCore
3887  commands:
3888  - func: "do setup"
3889  - func: "run tests"
3890    vars:
3891      resmoke_args: --suites=core --storageEngine=mmapv1
3892      run_multiple_jobs: true
3893
3894- <<: *task_template
3895  name: jsCore_inMem
3896  commands:
3897  - func: "do setup"
3898  - func: "run tests"
3899    vars:
3900      resmoke_args: --suites=core --storageEngine=inMemory
3901      run_multiple_jobs: true
3902
3903- <<: *task_template
3904  name: jsCore_WT
3905  commands:
3906  - func: "do setup"
3907  - func: "run tests"
3908    vars:
3909      resmoke_args: --suites=core --storageEngine=wiredTiger
3910      run_multiple_jobs: true
3911
3912- <<: *task_template
3913  name: jsCore_WT_ese
3914  depends_on:
3915  - name: jsCore_WT
3916  commands:
3917  - func: "do setup"
3918  - func: "run tests"
3919    vars:
3920      resmoke_args: --suites=core_ese --storageEngine=wiredTiger
3921      run_multiple_jobs: true
3922
3923- <<: *task_template
3924  name: jsCore_compatibility
3925  depends_on:
3926  - name: jsCore
3927  commands:
3928  - func: "do setup"
3929  - func: "run tests"
3930    vars:
3931      resmoke_args: --suites=core --shellReadMode=legacy --shellWriteMode=compatibility --storageEngine=mmapv1 --excludeWithAnyTags=requires_find_command
3932      run_multiple_jobs: true
3933
3934- <<: *task_template
3935  name: jsCore_compatibility_WT
3936  depends_on:
3937  - name: jsCore_WT
3938  commands:
3939  - func: "do setup"
3940  - func: "run tests"
3941    vars:
3942      resmoke_args: --suites=core --shellReadMode=legacy --shellWriteMode=compatibility --storageEngine=wiredTiger --excludeWithAnyTags=requires_find_command
3943      run_multiple_jobs: true
3944
3945- <<: *task_template
3946  name: jsCore_auth
3947  depends_on:
3948  - name: jsCore
3949  commands:
3950  - func: "do setup"
3951  - func: "run tests"
3952    vars:
3953      resmoke_args: --suites=core_auth
3954      run_multiple_jobs: true
3955
3956- <<: *task_template
3957  name: jsCore_minimum_batch_size_WT
3958  depends_on:
3959  - name: jsCore_WT
3960  commands:
3961  - func: "do setup"
3962  - func: "run tests"
3963    vars:
3964      resmoke_args: --suites=core_minimum_batch_size --storageEngine=wiredTiger
3965      run_multiple_jobs: true
3966
3967- <<: *task_template
3968  name: jsCore_op_query
3969  depends_on:
3970  - name: jsCore
3971  commands:
3972  - func: "do setup"
3973  - func: "run tests"
3974    vars:
3975      resmoke_args: --suites=core_op_query --storageEngine=mmapv1
3976      run_multiple_jobs: true
3977
3978- <<: *task_template
3979  name: jsCore_op_query_WT
3980  depends_on:
3981  - name: jsCore_WT
3982  commands:
3983  - func: "do setup"
3984  - func: "run tests"
3985    vars:
3986      resmoke_args: --suites=core_op_query --storageEngine=wiredTiger
3987      run_multiple_jobs: true
3988
3989- <<: *task_template
3990  name: master_slave_jscore_passthrough
3991  depends_on:
3992  - name: jsCore
3993  commands:
3994  - func: "do setup"
3995  - func: "run tests"
3996    vars:
3997      resmoke_args: --suites=master_slave_jscore_passthrough --storageEngine=mmapv1
3998      run_multiple_jobs: true
3999
4000- <<: *task_template
4001  name: master_slave_jscore_passthrough_WT
4002  depends_on:
4003  - name: jsCore_WT
4004  commands:
4005  - func: "do setup"
4006  - func: "run tests"
4007    vars:
4008      resmoke_args: --suites=master_slave_jscore_passthrough --storageEngine=wiredTiger
4009      run_multiple_jobs: true
4010
4011- <<: *task_template
4012  name: replica_sets_jscore_passthrough
4013  depends_on:
4014  - name: jsCore
4015  commands:
4016  - func: "do setup"
4017  - func: "run tests"
4018    vars:
4019      resmoke_args: --suites=replica_sets_jscore_passthrough --storageEngine=mmapv1
4020      run_multiple_jobs: true
4021
4022- <<: *task_template
4023  name: replica_sets_jscore_passthrough_WT
4024  depends_on:
4025  - name: jsCore_WT
4026  commands:
4027  - func: "do setup"
4028  - func: "run tests"
4029    vars:
4030      resmoke_args: --suites=replica_sets_jscore_passthrough --storageEngine=wiredTiger
4031      run_multiple_jobs: true
4032
4033- <<: *task_template
4034  name: replica_sets_initsync_jscore_passthrough
4035  depends_on:
4036  - name: jsCore
4037  commands:
4038  - func: "do setup"
4039  - func: "run tests"
4040    vars:
4041      resmoke_args: --suites=replica_sets_initsync_jscore_passthrough --storageEngine=mmapv1
4042      run_multiple_jobs: true
4043
4044- <<: *task_template
4045  name: replica_sets_initsync_jscore_passthrough_WT
4046  depends_on:
4047  - name: jsCore_WT
4048  commands:
4049  - func: "do setup"
4050  - func: "run tests"
4051    vars:
4052      resmoke_args: --suites=replica_sets_initsync_jscore_passthrough --storageEngine=wiredTiger
4053      run_multiple_jobs: true
4054
4055- <<: *task_template
4056  name: replica_sets_initsync_static_jscore_passthrough
4057  depends_on:
4058  - name: jsCore
4059  commands:
4060  - func: "do setup"
4061  - func: "run tests"
4062    vars:
4063      resmoke_args: --suites=replica_sets_initsync_static_jscore_passthrough --storageEngine=mmapv1
4064      run_multiple_jobs: true
4065
4066- <<: *task_template
4067  name: replica_sets_initsync_static_jscore_passthrough_WT
4068  depends_on:
4069  - name: jsCore_WT
4070  commands:
4071  - func: "do setup"
4072  - func: "run tests"
4073    vars:
4074      resmoke_args: --suites=replica_sets_initsync_static_jscore_passthrough --storageEngine=wiredTiger
4075      run_multiple_jobs: true
4076
4077- <<: *task_template
4078  name: replica_sets_resync_static_jscore_passthrough
4079  depends_on:
4080  - name: jsCore
4081  commands:
4082  - func: "do setup"
4083  - func: "run tests"
4084    vars:
4085      resmoke_args: --suites=replica_sets_resync_static_jscore_passthrough --storageEngine=mmapv1
4086      run_multiple_jobs: true
4087
4088- <<: *task_template
4089  name: replica_sets_resync_static_jscore_passthrough_WT
4090  depends_on:
4091  - name: jsCore_WT
4092  commands:
4093  - func: "do setup"
4094  - func: "run tests"
4095    vars:
4096      resmoke_args: --suites=replica_sets_resync_static_jscore_passthrough --storageEngine=wiredTiger
4097      run_multiple_jobs: true
4098
4099- <<: *task_template
4100  name: replica_sets_kill_primary_jscore_passthrough_WT
4101  depends_on:
4102  - name: jsCore_WT
4103  commands:
4104  - func: "do setup"
4105  - func: "run tests"
4106    vars:
4107      resmoke_args: --suites=replica_sets_kill_primary_jscore_passthrough --storageEngine=wiredTiger
4108      run_multiple_jobs: true
4109
4110- <<: *task_template
4111  name: replica_sets_kill_secondaries_jscore_passthrough_WT
4112  depends_on:
4113  - name: jsCore_WT
4114  commands:
4115  - func: "do setup"
4116  - func: "run tests"
4117    vars:
4118      resmoke_args: --suites=replica_sets_kill_secondaries_jscore_passthrough --storageEngine=wiredTiger
4119      run_multiple_jobs: true
4120
4121- <<: *task_template
4122  name: replica_sets_jscore_fcv34_passthrough
4123  depends_on:
4124  - name: jsCore
4125  commands:
4126  - func: "do setup"
4127  - func: "run tests"
4128    vars:
4129      resmoke_args: --suites=replica_sets_jscore_fcv34_passthrough --storageEngine=mmapv1
4130      run_multiple_jobs: true
4131
4132- <<: *task_template
4133  name: replica_sets_jscore_fcv34_passthrough_WT
4134  depends_on:
4135  - name: jsCore_WT
4136  commands:
4137  - func: "do setup"
4138  - func: "run tests"
4139    vars:
4140      resmoke_args: --suites=replica_sets_jscore_fcv34_passthrough --storageEngine=wiredTiger
4141      run_multiple_jobs: true
4142
4143- <<: *task_template
4144  name: mongosTest
4145  commands:
4146  - func: "do setup"
4147  - func: "run tests"
4148    vars:
4149      resmoke_args: --suites=mongos_test
4150      run_multiple_jobs: true
4151
4152- <<: *task_template
4153  name: mmap
4154  commands:
4155  - func: "do setup"
4156  - func: "run tests"
4157    vars:
4158      resmoke_args: --suites=mmap
4159      run_multiple_jobs: true
4160
4161- <<: *task_template
4162  name: multiversion
4163  commands:
4164  - func: "do setup"
4165  - func: "do multiversion setup"
4166  - func: "run tests"
4167    vars:
4168      task_path_suffix: /data/multiversion
4169      resmoke_args: --suites=multiversion --storageEngine=mmapv1 --excludeWithAnyTags=requires_wiredtiger
4170      run_multiple_jobs: true
4171
4172- <<: *task_template
4173  name: multiversion_auth
4174  commands:
4175  - func: "do setup"
4176  - func: "do multiversion setup"
4177  - func: "run tests"
4178    vars:
4179      task_path_suffix: /data/multiversion
4180      resmoke_args: --suites=multiversion_auth --storageEngine=mmapv1 --excludeWithAnyTags=requires_wiredtiger
4181      run_multiple_jobs: true
4182
4183- <<: *task_template
4184  name: multiversion_WT
4185  commands:
4186  - func: "do setup"
4187  - func: "do multiversion setup"
4188  - func: "run tests"
4189    vars:
4190      task_path_suffix: /data/multiversion
4191      resmoke_args: --suites=multiversion --storageEngine=wiredTiger --excludeWithAnyTags=requires_mmapv1
4192      run_multiple_jobs: true
4193
4194- <<: *task_template
4195  name: multiversion_multistorage_engine
4196  commands:
4197  - func: "do setup"
4198  - func: "do multiversion setup"
4199  - func: "run tests"
4200    vars:
4201      task_path_suffix: /data/multiversion
4202      resmoke_args: --suites=multiversion_multistorage_engine
4203      run_multiple_jobs: true
4204
4205- <<: *task_template
4206  name: noPassthrough
4207  commands:
4208  - func: "do setup"
4209  - func: "run tests"
4210    vars:
4211      resmoke_args: --suites=no_passthrough --storageEngine=mmapv1
4212      run_multiple_jobs: true
4213
4214- <<: *task_template
4215  name: noPassthrough_WT
4216  commands:
4217  - func: "do setup"
4218  - func: "run tests"
4219    vars:
4220      resmoke_args: --suites=no_passthrough --storageEngine=wiredTiger
4221      run_multiple_jobs: true
4222
4223- <<: *task_template
4224  name: noPassthroughWithMongod
4225  commands:
4226  - func: "do setup"
4227  - func: "run tests"
4228    vars:
4229      resmoke_args: --suites=no_passthrough_with_mongod --storageEngine=mmapv1
4230      run_multiple_jobs: true
4231
4232- <<: *task_template
4233  name: noPassthroughWithMongod_WT
4234  commands:
4235  - func: "do setup"
4236  - func: "run tests"
4237    vars:
4238      resmoke_args: --suites=no_passthrough_with_mongod --storageEngine=wiredTiger
4239      run_multiple_jobs: true
4240
4241- <<: *task_template
4242  name: bulk_gle_passthrough
4243  commands:
4244  - func: "do setup"
4245  - func: "run tests"
4246    vars:
4247      resmoke_args: --suites=bulk_gle_passthrough --storageEngine=mmapv1
4248      run_multiple_jobs: true
4249
4250- <<: *task_template
4251  name: bulk_gle_passthrough_WT
4252  commands:
4253  - func: "do setup"
4254  - func: "run tests"
4255    vars:
4256      resmoke_args: --suites=bulk_gle_passthrough --storageEngine=wiredTiger
4257      run_multiple_jobs: true
4258
4259- <<: *task_template
4260  name: slow1
4261  commands:
4262  - func: "do setup"
4263  - func: "run tests"
4264    vars:
4265      resmoke_args: --suites=slow1 --storageEngine=mmapv1
4266      run_multiple_jobs: false
4267
4268- <<: *task_template
4269  name: slow1_WT
4270  commands:
4271  - func: "do setup"
4272  - func: "run tests"
4273    vars:
4274      resmoke_args: --suites=slow1 --storageEngine=wiredTiger
4275      run_multiple_jobs: false
4276
4277- <<: *task_template
4278  name: serial_run
4279  commands:
4280  - func: "do setup"
4281  - func: "run tests"
4282    vars:
4283      resmoke_args: --suites=serial_run --storageEngine=mmapv1
4284      run_multiple_jobs: false
4285
4286- <<: *task_template
4287  name: serial_run_WT
4288  commands:
4289  - func: "do setup"
4290  - func: "run tests"
4291    vars:
4292      resmoke_args: --suites=serial_run --storageEngine=wiredTiger
4293      run_multiple_jobs: false
4294
4295- <<: *task_template
4296  name: sharded_collections_jscore_passthrough
4297  depends_on:
4298  - name: jsCore
4299  commands:
4300  - func: "do setup"
4301  - func: "run tests"
4302    vars:
4303      resmoke_args: --suites=sharded_collections_jscore_passthrough --storageEngine=mmapv1
4304      run_multiple_jobs: true
4305
4306- <<: *task_template
4307  name: sharded_collections_jscore_passthrough_WT
4308  depends_on:
4309  - name: jsCore_WT
4310  commands:
4311  - func: "do setup"
4312  - func: "run tests"
4313    vars:
4314      resmoke_args: --suites=sharded_collections_jscore_passthrough --storageEngine=wiredTiger
4315      run_multiple_jobs: true
4316
4317- <<: *task_template
4318  name: sharding_jscore_passthrough
4319  depends_on:
4320  - name: jsCore
4321  commands:
4322  - func: "do setup"
4323  - func: "run tests"
4324    vars:
4325      resmoke_args: --suites=sharding_jscore_passthrough --storageEngine=mmapv1
4326      run_multiple_jobs: true
4327
4328- <<: *task_template
4329  name: sharding_jscore_passthrough_WT
4330  depends_on:
4331  - name: jsCore_WT
4332  commands:
4333  - func: "do setup"
4334  - func: "run tests"
4335    vars:
4336      resmoke_args: --suites=sharding_jscore_passthrough --storageEngine=wiredTiger
4337      run_multiple_jobs: true
4338
4339- <<: *task_template
4340  name: secondary_reads_passthrough
4341  depends_on:
4342  - name: jsCore_WT
4343  commands:
4344  - func: "do setup"
4345  - func: "run tests"
4346    vars:
4347      resmoke_args: --suites=secondary_reads_passthrough --storageEngine=wiredTiger
4348      run_multiple_jobs: true
4349
4350- <<: *task_template
4351  name: sharding_jscore_op_query_passthrough_WT
4352  depends_on:
4353  - name: jsCore_WT
4354  commands:
4355  - func: "do setup"
4356  - func: "run tests"
4357    vars:
4358      resmoke_args: --suites=sharding_jscore_op_query_passthrough --storageEngine=wiredTiger
4359      run_multiple_jobs: true
4360
4361- <<: *task_template
4362  name: sharding_jscore_passthrough_wire_ops_WT
4363  depends_on:
4364  - name: jsCore_WT
4365  commands:
4366  - func: "do setup"
4367  - func: "run tests"
4368    vars:
4369      resmoke_args: --suites=sharding_jscore_passthrough --storageEngine=wiredTiger --shellReadMode=legacy --shellWriteMode=compatibility --excludeWithAnyTags=requires_find_command
4370      run_multiple_jobs: true
4371
4372- <<: *task_template
4373  name: parallel
4374  depends_on:
4375  - name: jsCore
4376  commands:
4377  - func: "do setup"
4378  - func: "run tests"
4379    vars:
4380      resmoke_args: --suites=parallel --storageEngine=mmapv1
4381
4382- <<: *task_template
4383  name: parallel_WT
4384  depends_on:
4385  - name: jsCore_WT
4386  commands:
4387  - func: "do setup"
4388  - func: "run tests"
4389    vars:
4390      resmoke_args: --suites=parallel --storageEngine=wiredTiger
4391
4392- <<: *task_template
4393  name: parallel_compatibility
4394  depends_on:
4395  - name: jsCore_compatibility
4396  commands:
4397  - func: "do setup"
4398  - func: "run tests"
4399    vars:
4400      resmoke_args: --suites=parallel --shellReadMode=legacy --shellWriteMode=compatibility --storageEngine=mmapv1 --excludeWithAnyTags=requires_find_command
4401
4402- <<: *task_template
4403  name: parallel_compatibility_WT
4404  depends_on:
4405  - name: jsCore_compatibility_WT
4406  commands:
4407  - func: "do setup"
4408  - func: "run tests"
4409    vars:
4410      resmoke_args: --suites=parallel --shellReadMode=legacy --shellWriteMode=compatibility --storageEngine=wiredTiger --excludeWithAnyTags=requires_find_command
4411
4412- <<: *task_template
4413  name: concurrency
4414  commands:
4415  - func: "do setup"
4416  - func: "run tests"
4417    timeout_secs: 21600 # 6 hour timeout
4418    vars:
4419      resmoke_args: --suites=concurrency --storageEngine=mmapv1
4420
4421- <<: *task_template
4422  name: concurrency_WT
4423  commands:
4424  - func: "do setup"
4425  - func: "run tests"
4426    timeout_secs: 21600 # 6 hour timeout
4427    vars:
4428      resmoke_args: --suites=concurrency --storageEngine=wiredTiger
4429
4430- <<: *task_template
4431  name: concurrency_replication
4432  commands:
4433  - func: "do setup"
4434  - func: "run tests"
4435    timeout_secs: 21600 # 6 hour timeout
4436    vars:
4437      resmoke_args: --suites=concurrency_replication --storageEngine=mmapv1
4438
4439- <<: *task_template
4440  name: concurrency_replication_WT
4441  commands:
4442  - func: "do setup"
4443  - func: "run tests"
4444    timeout_secs: 21600 # 6 hour timeout
4445    vars:
4446      resmoke_args: --suites=concurrency_replication --storageEngine=wiredTiger
4447
4448- <<: *task_template
4449  name: concurrency_sharded
4450  exec_timeout_secs: 43200 # 12 hour timeout for the task overall
4451  commands:
4452  - func: "do setup"
4453  - func: "run tests"
4454    timeout_secs: 21600 # 6 hour timeout for each test
4455    vars:
4456      resmoke_args: --suites=concurrency_sharded --storageEngine=mmapv1
4457
4458- <<: *task_template
4459  name: concurrency_sharded_WT
4460  exec_timeout_secs: 43200 # 12 hour timeout for the task overall
4461  commands:
4462  - func: "do setup"
4463  - func: "run tests"
4464    timeout_secs: 21600 # 6 hour timeout for each test
4465    vars:
4466      resmoke_args: --suites=concurrency_sharded --storageEngine=wiredTiger
4467
4468- <<: *task_template
4469  name: concurrency_sharded_causal_consistency
4470  commands:
4471  - func: "do setup"
4472  - func: "run tests"
4473    timeout_secs: 21600 # 6 hour timeout for each test
4474    vars:
4475      resmoke_args: --suites=concurrency_sharded_causal_consistency --storageEngine=mmapv1
4476
4477- <<: *task_template
4478  name: concurrency_sharded_causal_consistency_WT
4479  commands:
4480  - func: "do setup"
4481  - func: "run tests"
4482    timeout_secs: 21600 # 6 hour timeout for each test
4483    vars:
4484      resmoke_args: --suites=concurrency_sharded_causal_consistency --storageEngine=wiredTiger
4485
4486- <<: *task_template
4487  name: concurrency_sharded_causal_consistency_and_balancer
4488  commands:
4489  - func: "do setup"
4490  - func: "run tests"
4491    timeout_secs: 21600 # 6 hour timeout for each test
4492    vars:
4493      resmoke_args: --suites=concurrency_sharded_causal_consistency_and_balancer --storageEngine=mmapv1
4494
4495- <<: *task_template
4496  name: concurrency_sharded_causal_consistency_and_balancer_WT
4497  commands:
4498  - func: "do setup"
4499  - func: "run tests"
4500    timeout_secs: 21600 # 6 hour timeout for each test
4501    vars:
4502      resmoke_args: --suites=concurrency_sharded_causal_consistency_and_balancer --storageEngine=wiredTiger
4503
4504- <<: *task_template
4505  name: concurrency_sharded_with_stepdowns_WT
4506  commands:
4507  - func: "do setup"
4508  - func: "run tests"
4509    timeout_secs: 21600 # 6 hour timeout for each test
4510    vars:
4511      resmoke_args: --suites=concurrency_sharded_with_stepdowns --storageEngine=wiredTiger
4512
4513- <<: *task_template
4514  name: concurrency_sharded_with_stepdowns_and_balancer_WT
4515  commands:
4516  - func: "do setup"
4517  - func: "run tests"
4518    timeout_secs: 21600 # 6 hour timeout for each test
4519    vars:
4520      resmoke_args: --suites=concurrency_sharded_with_stepdowns_and_balancer --storageEngine=wiredTiger
4521
4522- <<: *task_template
4523  name: concurrency_simultaneous
4524  commands:
4525  - func: "do setup"
4526  - func: "run tests"
4527    timeout_secs: 21600 # 6 hour timeout
4528    vars:
4529      resmoke_args: --suites=concurrency jstests/concurrency/fsm_all_simultaneous.js --storageEngine=mmapv1
4530
4531- <<: *task_template
4532  name: concurrency_simultaneous_WT
4533  commands:
4534  - func: "do setup"
4535  - func: "run tests"
4536    timeout_secs: 21600 # 6 hour timeout
4537    vars:
4538      resmoke_args: --suites=concurrency jstests/concurrency/fsm_all_simultaneous.js --storageEngine=wiredTiger
4539
4540- <<: *task_template
4541  name: read_concern_linearizable_passthrough
4542  depends_on:
4543  - name: jsCore
4544  commands:
4545  - func: "do setup"
4546  - func: "run tests"
4547    vars:
4548      resmoke_args: --suites=read_concern_linearizable_passthrough --storageEngine=mmapv1
4549      run_multiple_jobs: true
4550
4551- <<: *task_template
4552  name: read_concern_linearizable_passthrough_WT
4553  depends_on:
4554  - name: jsCore_WT
4555  commands:
4556  - func: "do setup"
4557  - func: "run tests"
4558    vars:
4559      resmoke_args: --suites=read_concern_linearizable_passthrough --storageEngine=wiredTiger
4560      run_multiple_jobs: true
4561
4562- <<: *task_template
4563  name: read_concern_majority_passthrough_WT
4564  depends_on:
4565  - name: jsCore_WT
4566  commands:
4567  - func: "do setup"
4568  - func: "run tests"
4569    vars:
4570      resmoke_args: --suites=read_concern_majority_passthrough --storageEngine=wiredTiger
4571      run_multiple_jobs: true
4572
4573- <<: *task_template
4574  name: write_concern_majority_passthrough_WT
4575  depends_on:
4576  - name: jsCore_WT
4577  commands:
4578  - func: "do setup"
4579  - func: "run tests"
4580    vars:
4581      resmoke_args: --suites=write_concern_majority_passthrough --storageEngine=wiredTiger
4582      run_multiple_jobs: true
4583
4584- <<: *task_template
4585  name: replica_sets
4586  commands:
4587  - func: "do setup"
4588  - func: "run tests"
4589    vars:
4590      resmoke_args: --suites=replica_sets --storageEngine=mmapv1
4591      run_multiple_jobs: true
4592
4593- <<: *task_template
4594  name: replica_sets_WT
4595  commands:
4596  - func: "do setup"
4597  - func: "run tests"
4598    vars:
4599      resmoke_args: --suites=replica_sets --storageEngine=wiredTiger
4600      run_multiple_jobs: true
4601
4602- <<: *task_template
4603  name: replica_sets_WT_ese
4604  commands:
4605  - func: "do setup"
4606  - func: "run tests"
4607    vars:
4608      resmoke_args: --suites=replica_sets_ese --storageEngine=wiredTiger
4609      run_multiple_jobs: true
4610
4611- <<: *task_template
4612  name: replica_sets_auth
4613  commands:
4614  - func: "do setup"
4615  - func: "run tests"
4616    vars:
4617      resmoke_args: --suites=replica_sets_auth
4618      run_multiple_jobs: true
4619
4620- <<: *task_template
4621  name: replica_sets_pv0
4622  commands:
4623  - func: "do setup"
4624  - func: "run tests"
4625    vars:
4626      resmoke_args: --suites=replica_sets_pv0
4627      run_multiple_jobs: true
4628
4629- <<: *task_template
4630  name: replica_sets_rollback_refetch_no_uuid
4631  commands:
4632  - func: "do setup"
4633  - func: "run tests"
4634    vars:
4635      resmoke_args: --suites=replica_sets_rollback_refetch_no_uuid
4636      run_multiple_jobs: true
4637
4638- <<: *task_template
4639  name: master_slave
4640  commands:
4641  - func: "do setup"
4642  - func: "run tests"
4643    vars:
4644      resmoke_args: --suites=master_slave --storageEngine=mmapv1
4645      run_multiple_jobs: true
4646
4647- <<: *task_template
4648  name: master_slave_WT
4649  commands:
4650  - func: "do setup"
4651  - func: "run tests"
4652    vars:
4653      resmoke_args: --suites=master_slave --storageEngine=wiredTiger
4654      run_multiple_jobs: true
4655
4656- <<: *task_template
4657  name: master_slave_auth
4658  depends_on:
4659  - name: master_slave_WT
4660  commands:
4661  - func: "do setup"
4662  - func: "run tests"
4663    vars:
4664      resmoke_args: --suites=master_slave_auth
4665      run_multiple_jobs: true
4666
4667- <<: *task_template
4668  name: sasl
4669  commands:
4670  - func: "do setup"
4671  - func: "run tests"
4672    vars:
4673      resmoke_args: --suites=sasl
4674      run_multiple_jobs: true
4675
4676- <<: *task_template
4677  name: sharding
4678  commands:
4679  - func: "do setup"
4680  - func: "run tests"
4681    vars:
4682      resmoke_args: --suites=sharding --storageEngine=mmapv1
4683      run_multiple_jobs: true
4684
4685- <<: *task_template
4686  name: sharding_WT
4687  commands:
4688  - func: "do setup"
4689  - func: "run tests"
4690    vars:
4691      resmoke_args: --suites=sharding --storageEngine=wiredTiger
4692      run_multiple_jobs: true
4693
4694- <<: *task_template
4695  name: sharding_csrs_continuous_config_stepdown_WT
4696  commands:
4697  - func: "do setup"
4698  - func: "run tests"
4699    vars:
4700      resmoke_args: --suites=sharding_continuous_config_stepdown --storageEngine=wiredTiger
4701      run_multiple_jobs: true
4702
4703- <<: *task_template
4704  name: sharding_WT_ese
4705  commands:
4706  - func: "do setup"
4707  - func: "run tests"
4708    vars:
4709      resmoke_args: --suites=sharding_ese --storageEngine=wiredTiger
4710      run_multiple_jobs: true
4711
4712- <<: *task_template
4713  name: sharding_op_query_WT
4714  commands:
4715  - func: "do setup"
4716  - func: "run tests"
4717    vars:
4718      resmoke_args: --suites=sharding --shellReadMode=legacy --storageEngine=wiredTiger --excludeWithAnyTags=requires_find_command
4719      run_multiple_jobs: true
4720
4721- <<: *task_template
4722  name: sharding_auth
4723  commands:
4724  - func: "do setup"
4725  - func: "run tests"
4726    vars:
4727      resmoke_args: --suites=sharding_auth
4728      run_multiple_jobs: true
4729
4730- <<: *task_template
4731  name: sharding_auth_audit_WT
4732  depends_on:
4733  - name: sharding_auth
4734  commands:
4735  - func: "do setup"
4736  - func: "run tests"
4737    vars:
4738      resmoke_args: --suites=sharding_auth_audit --storageEngine=wiredTiger
4739      run_multiple_jobs: true
4740
4741- <<: *task_template
4742  name: sharding_last_stable_mongos_and_mixed_shards
4743  commands:
4744  - func: "do setup"
4745  - func: "do multiversion setup"
4746  - func: "run tests"
4747    vars:
4748      task_path_suffix: /data/multiversion
4749      resmoke_args: --suites=sharding_last_stable_mongos_and_mixed_shards
4750      run_multiple_jobs: true
4751
4752- <<: *task_template
4753  name: snmp
4754  commands:
4755  - func: "do setup"
4756  - func: "do snmp setup"
4757  - func: "run tests"
4758    vars:
4759      snmp_config_path: SNMPCONFPATH=snmpconf
4760      resmoke_args: --suites=snmp --storageEngine=mmapv1
4761      run_multiple_jobs: true
4762
4763- <<: *task_template
4764  name: snmp_WT
4765  commands:
4766  - func: "do setup"
4767  - func: "do snmp setup"
4768  - func: "run tests"
4769    vars:
4770      snmp_config_path: SNMPCONFPATH=snmpconf
4771      resmoke_args: --suites=snmp --storageEngine=wiredTiger
4772      run_multiple_jobs: true
4773
4774- <<: *task_template
4775  name: ssl
4776  commands:
4777  - func: "do setup"
4778  - func: "run tests"
4779    vars:
4780      resmoke_args: --suites=ssl
4781      run_multiple_jobs: true
4782
4783- <<: *task_template
4784  name: sslSpecial
4785  commands:
4786  - func: "do setup"
4787  - func: "run tests"
4788    vars:
4789      resmoke_args: --suites=ssl_special
4790      run_multiple_jobs: true
4791
4792- <<: *task_template
4793  name: tool
4794  commands:
4795  - func: "do setup"
4796  - func: "run tests"
4797    vars:
4798      resmoke_args: --suites=tool --storageEngine=mmapv1
4799      run_multiple_jobs: true
4800
4801- <<: *task_template
4802  name: tool_WT
4803  commands:
4804  - func: "do setup"
4805  - func: "run tests"
4806    vars:
4807      resmoke_args: --suites=tool --storageEngine=wiredTiger
4808      run_multiple_jobs: true
4809
4810- <<: *task_template
4811  name: jsCore_decimal
4812  commands:
4813  - func: "do setup"
4814  - func: "run tests"
4815    vars:
4816      resmoke_args: --suites=decimal --storageEngine=mmapv1
4817      run_multiple_jobs: true
4818
4819- <<: *task_template
4820  name: jsCore_decimal_WT
4821  commands:
4822  - func: "do setup"
4823  - func: "run tests"
4824    vars:
4825      resmoke_args: --suites=decimal --storageEngine=wiredTiger
4826      run_multiple_jobs: true
4827
4828- <<: *task_template
4829  name: read_only
4830  commands:
4831  - func: "do setup"
4832  - func: "run tests"
4833    vars:
4834      resmoke_args: --suites=read_only --storageEngine=mmapv1
4835      run_multiple_jobs: true
4836
4837- <<: *task_template
4838  name: read_only_WT
4839  commands:
4840  - func: "do setup"
4841  - func: "run tests"
4842    vars:
4843      resmoke_args: --suites=read_only --storageEngine=wiredTiger
4844      run_multiple_jobs: true
4845
4846- <<: *task_template
4847  name: read_only_sharded
4848  commands:
4849  - func: "do setup"
4850  - func: "run tests"
4851    vars:
4852      resmoke_args: --suites=read_only_sharded --storageEngine=mmapv1
4853      run_multiple_jobs: true
4854
4855- <<: *task_template
4856  name: read_only_sharded_WT
4857  commands:
4858  - func: "do setup"
4859  - func: "run tests"
4860    vars:
4861      resmoke_args: --suites=read_only_sharded --storageEngine=wiredTiger
4862      run_multiple_jobs: true
4863
4864- <<: *task_template
4865  name: session_jscore_passthrough_WT
4866  depends_on:
4867  - name: jsCore_WT
4868  commands:
4869  - func: "do setup"
4870  - func: "run tests"
4871    vars:
4872      resmoke_args: --suites=session_jscore_passthrough --storageEngine=wiredTiger
4873      run_multiple_jobs: true
4874
4875- <<: *task_template
4876  name: causally_consistent_jscore_passthrough_WT
4877  depends_on:
4878  - name: jsCore_WT
4879  commands:
4880  - func: "do setup"
4881  - func: "run tests"
4882    vars:
4883      resmoke_args: --suites=causally_consistent_jscore_passthrough --storageEngine=wiredTiger
4884      run_multiple_jobs: true
4885
4886- <<: *task_template
4887  name: causally_consistent_jscore_passthrough_auth_WT
4888  depends_on:
4889  - name: jsCore_WT
4890  commands:
4891  - func: "do setup"
4892  - func: "run tests"
4893    vars:
4894      resmoke_args: --suites=causally_consistent_jscore_passthrough_auth --storageEngine=wiredTiger
4895      run_multiple_jobs: true
4896
4897- <<: *task_template
4898  name: sharded_causally_consistent_jscore_passthrough_WT
4899  depends_on:
4900  - name: jsCore_WT
4901  commands:
4902  - func: "do setup"
4903  - func: "run tests"
4904    vars:
4905      resmoke_args: --suites=sharded_causally_consistent_jscore_passthrough --storageEngine=wiredTiger
4906      run_multiple_jobs: true
4907
4908- <<: *task_template
4909  name: retryable_writes_jscore_passthrough_WT
4910  depends_on:
4911  - name: jsCore_WT
4912  commands:
4913  - func: "do setup"
4914  - func: "run tests"
4915    vars:
4916      resmoke_args: --suites=retryable_writes_jscore_passthrough --storageEngine=wiredTiger
4917      run_multiple_jobs: true
4918
4919- <<: *task_template
4920  name: logical_session_cache_replication_default_refresh_jscore_passthrough
4921  depends_on:
4922  - name: jsCore
4923  commands:
4924  - func: "do setup"
4925  - func: "run tests"
4926    vars:
4927      resmoke_args: --suites=logical_session_cache_replication_default_refresh_jscore_passthrough --storageEngine=mmapv1
4928      run_multiple_jobs: true
4929
4930- <<: *task_template
4931  name: logical_session_cache_replication_default_refresh_jscore_passthrough_WT
4932  depends_on:
4933  - name: jsCore_WT
4934  commands:
4935  - func: "do setup"
4936  - func: "run tests"
4937    vars:
4938      resmoke_args: --suites=logical_session_cache_replication_default_refresh_jscore_passthrough --storageEngine=wiredTiger
4939      run_multiple_jobs: true
4940
4941- <<: *task_template
4942  name: logical_session_cache_replication_100ms_refresh_jscore_passthrough
4943  depends_on:
4944  - name: jsCore
4945  commands:
4946  - func: "do setup"
4947  - func: "run tests"
4948    vars:
4949      resmoke_args: --suites=logical_session_cache_replication_100ms_refresh_jscore_passthrough --storageEngine=mmapv1
4950      run_multiple_jobs: true
4951
4952- <<: *task_template
4953  name: logical_session_cache_replication_100ms_refresh_jscore_passthrough_WT
4954  depends_on:
4955  - name: jsCore_WT
4956  commands:
4957  - func: "do setup"
4958  - func: "run tests"
4959    vars:
4960      resmoke_args: --suites=logical_session_cache_replication_100ms_refresh_jscore_passthrough --storageEngine=wiredTiger
4961      run_multiple_jobs: true
4962
4963- <<: *task_template
4964  name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
4965  depends_on:
4966  - name: jsCore
4967  commands:
4968  - func: "do setup"
4969  - func: "run tests"
4970    vars:
4971      resmoke_args: --suites=logical_session_cache_replication_1sec_refresh_jscore_passthrough --storageEngine=mmapv1
4972      run_multiple_jobs: true
4973
4974- <<: *task_template
4975  name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
4976  depends_on:
4977  - name: jsCore_WT
4978  commands:
4979  - func: "do setup"
4980  - func: "run tests"
4981    vars:
4982      resmoke_args: --suites=logical_session_cache_replication_1sec_refresh_jscore_passthrough --storageEngine=wiredTiger
4983      run_multiple_jobs: true
4984
4985- <<: *task_template
4986  name: logical_session_cache_replication_10sec_refresh_jscore_passthrough
4987  depends_on:
4988  - name: jsCore
4989  commands:
4990  - func: "do setup"
4991  - func: "run tests"
4992    vars:
4993      resmoke_args: --suites=logical_session_cache_replication_10sec_refresh_jscore_passthrough --storageEngine=mmapv1
4994      run_multiple_jobs: true
4995
4996- <<: *task_template
4997  name: logical_session_cache_replication_10sec_refresh_jscore_passthrough_WT
4998  depends_on:
4999  - name: jsCore_WT
5000  commands:
5001  - func: "do setup"
5002  - func: "run tests"
5003    vars:
5004      resmoke_args: --suites=logical_session_cache_replication_10sec_refresh_jscore_passthrough --storageEngine=wiredTiger
5005      run_multiple_jobs: true
5006
5007- <<: *task_template
5008  name: logical_session_cache_sharding_default_refresh_jscore_passthrough
5009  depends_on:
5010  - name: jsCore
5011  commands:
5012  - func: "do setup"
5013  - func: "run tests"
5014    vars:
5015      resmoke_args: --suites=logical_session_cache_sharding_default_refresh_jscore_passthrough --storageEngine=mmapv1
5016      run_multiple_jobs: true
5017
5018- <<: *task_template
5019  name: logical_session_cache_sharding_default_refresh_jscore_passthrough_WT
5020  depends_on:
5021  - name: jsCore_WT
5022  commands:
5023  - func: "do setup"
5024  - func: "run tests"
5025    vars:
5026      resmoke_args: --suites=logical_session_cache_sharding_default_refresh_jscore_passthrough --storageEngine=wiredTiger
5027      run_multiple_jobs: true
5028
5029- <<: *task_template
5030  name: logical_session_cache_sharding_100ms_refresh_jscore_passthrough
5031  depends_on:
5032  - name: jsCore
5033  commands:
5034  - func: "do setup"
5035  - func: "run tests"
5036    vars:
5037      resmoke_args: --suites=logical_session_cache_sharding_100ms_refresh_jscore_passthrough --storageEngine=mmapv1
5038      run_multiple_jobs: true
5039
5040- <<: *task_template
5041  name: logical_session_cache_sharding_100ms_refresh_jscore_passthrough_WT
5042  depends_on:
5043  - name: jsCore_WT
5044  commands:
5045  - func: "do setup"
5046  - func: "run tests"
5047    vars:
5048      resmoke_args: --suites=logical_session_cache_sharding_100ms_refresh_jscore_passthrough --storageEngine=wiredTiger
5049      run_multiple_jobs: true
5050
5051- <<: *task_template
5052  name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
5053  depends_on:
5054  - name: jsCore
5055  commands:
5056  - func: "do setup"
5057  - func: "run tests"
5058    vars:
5059      resmoke_args: --suites=logical_session_cache_sharding_1sec_refresh_jscore_passthrough --storageEngine=mmapv1
5060      run_multiple_jobs: true
5061
5062- <<: *task_template
5063  name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
5064  depends_on:
5065  - name: jsCore_WT
5066  commands:
5067  - func: "do setup"
5068  - func: "run tests"
5069    vars:
5070      resmoke_args: --suites=logical_session_cache_sharding_1sec_refresh_jscore_passthrough --storageEngine=wiredTiger
5071      run_multiple_jobs: true
5072
5073- <<: *task_template
5074  name: logical_session_cache_sharding_10sec_refresh_jscore_passthrough
5075  depends_on:
5076  - name: jsCore
5077  commands:
5078  - func: "do setup"
5079  - func: "run tests"
5080    vars:
5081      resmoke_args: --suites=logical_session_cache_sharding_10sec_refresh_jscore_passthrough --storageEngine=mmapv1
5082      run_multiple_jobs: true
5083
5084- <<: *task_template
5085  name: logical_session_cache_sharding_10sec_refresh_jscore_passthrough_WT
5086  depends_on:
5087  - name: jsCore_WT
5088  commands:
5089  - func: "do setup"
5090  - func: "run tests"
5091    vars:
5092      resmoke_args: --suites=logical_session_cache_sharding_10sec_refresh_jscore_passthrough --storageEngine=wiredTiger
5093      run_multiple_jobs: true
5094
5095- <<: *task_template
5096  name: logical_session_cache_standalone_default_refresh_jscore_passthrough
5097  depends_on:
5098  - name: jsCore
5099  commands:
5100  - func: "do setup"
5101  - func: "run tests"
5102    vars:
5103      resmoke_args: --suites=logical_session_cache_standalone_default_refresh_jscore_passthrough --storageEngine=mmapv1
5104      run_multiple_jobs: true
5105
5106- <<: *task_template
5107  name: logical_session_cache_standalone_default_refresh_jscore_passthrough_WT
5108  depends_on:
5109  - name: jsCore_WT
5110  commands:
5111  - func: "do setup"
5112  - func: "run tests"
5113    vars:
5114      resmoke_args: --suites=logical_session_cache_standalone_default_refresh_jscore_passthrough --storageEngine=wiredTiger
5115      run_multiple_jobs: true
5116
5117- <<: *task_template
5118  name: logical_session_cache_standalone_100ms_refresh_jscore_passthrough
5119  depends_on:
5120  - name: jsCore
5121  commands:
5122  - func: "do setup"
5123  - func: "run tests"
5124    vars:
5125      resmoke_args: --suites=logical_session_cache_standalone_100ms_refresh_jscore_passthrough --storageEngine=mmapv1
5126      run_multiple_jobs: true
5127
5128- <<: *task_template
5129  name: logical_session_cache_standalone_100ms_refresh_jscore_passthrough_WT
5130  depends_on:
5131  - name: jsCore_WT
5132  commands:
5133  - func: "do setup"
5134  - func: "run tests"
5135    vars:
5136      resmoke_args: --suites=logical_session_cache_standalone_100ms_refresh_jscore_passthrough --storageEngine=wiredTiger
5137      run_multiple_jobs: true
5138
5139- <<: *task_template
5140  name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
5141  depends_on:
5142  - name: jsCore
5143  commands:
5144  - func: "do setup"
5145  - func: "run tests"
5146    vars:
5147      resmoke_args: --suites=logical_session_cache_standalone_1sec_refresh_jscore_passthrough --storageEngine=mmapv1
5148      run_multiple_jobs: true
5149
5150- <<: *task_template
5151  name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
5152  depends_on:
5153  - name: jsCore_WT
5154  commands:
5155  - func: "do setup"
5156  - func: "run tests"
5157    vars:
5158      resmoke_args: --suites=logical_session_cache_standalone_1sec_refresh_jscore_passthrough --storageEngine=wiredTiger
5159      run_multiple_jobs: true
5160
5161- <<: *task_template
5162  name: logical_session_cache_standalone_10sec_refresh_jscore_passthrough
5163  depends_on:
5164  - name: jsCore
5165  commands:
5166  - func: "do setup"
5167  - func: "run tests"
5168    vars:
5169      resmoke_args: --suites=logical_session_cache_standalone_10sec_refresh_jscore_passthrough --storageEngine=mmapv1
5170      run_multiple_jobs: true
5171
5172- <<: *task_template
5173  name: logical_session_cache_standalone_10sec_refresh_jscore_passthrough_WT
5174  depends_on:
5175  - name: jsCore_WT
5176  commands:
5177  - func: "do setup"
5178  - func: "run tests"
5179    vars:
5180      resmoke_args: --suites=logical_session_cache_standalone_10sec_refresh_jscore_passthrough --storageEngine=wiredTiger
5181      run_multiple_jobs: true
5182
5183- <<: *task_template
5184  name: retryable_writes_jscore_stepdown_passthrough_WT
5185  depends_on:
5186  - name: jsCore_WT
5187  commands:
5188  - func: "do setup"
5189  - func: "run tests"
5190    vars:
5191      resmoke_args: --suites=retryable_writes_jscore_stepdown_passthrough --storageEngine=wiredTiger
5192      run_multiple_jobs: true
5193
5194- <<: *task_template
5195  name: watchdog
5196  commands:
5197  - func: "do setup"
5198  - func: "do watchdog setup"
5199  - func: "run tests"
5200    vars:
5201      resmoke_args: --suites=watchdog --storageEngine=mmapv1
5202      run_multiple_jobs: false
5203
5204- <<: *task_template
5205  name: watchdog_WT
5206  commands:
5207  - func: "do setup"
5208  - func: "do watchdog setup"
5209  - func: "run tests"
5210    vars:
5211      resmoke_args: --suites=watchdog --storageEngine=wiredTiger
5212      run_multiple_jobs: false
5213
5214- <<: *task_template
5215  name: watchdog_inmemory
5216  commands:
5217  - func: "do setup"
5218  - func: "do watchdog setup"
5219  - func: "run tests"
5220    vars:
5221      resmoke_args: --suites=watchdog --storageEngine=inMemory
5222      run_multiple_jobs: false
5223
5224- <<: *task_template
5225  name: jsonSchema
5226  commands:
5227  - func: "do setup"
5228  - func: "run tests"
5229    vars:
5230      resmoke_args: --suites=json_schema --storageEngine=wiredTiger
5231      run_multiple_jobs: false
5232
5233- name: powercycle_WT
5234  exec_timeout_secs: 7200 # 2 hour timeout for the task overall
5235  depends_on:
5236  - name: compile
5237  commands:
5238  - func: "do setup"
5239  - func: "set up remote credentials"
5240    vars:
5241      <<: *powercycle_remote_credentials
5242  - func: "set up EC2 instance"
5243    vars:
5244      <<: *powercycle_ec2_instance
5245  - command: expansions.update
5246    <<: *powercycle_expansions
5247  - func: "run powercycle test"
5248    timeout_secs: 1800 # 30 minute timeout for no output
5249    vars:
5250      <<: *powercycle_test
5251      mongod_extra_options: --mongodOptions=\"--setParameter enableTestCommands=1 --storageEngine wiredTiger\"
5252
5253- name: powercycle_fcv3.4_WT
5254  exec_timeout_secs: 7200 # 2 hour timeout for the task overall
5255  depends_on:
5256  - name: compile
5257  commands:
5258  - func: "do setup"
5259  - func: "set up remote credentials"
5260    vars:
5261      <<: *powercycle_remote_credentials
5262  - func: "set up EC2 instance"
5263    vars:
5264      <<: *powercycle_ec2_instance
5265  - command: expansions.update
5266    <<: *powercycle_expansions
5267  - func: "run powercycle test"
5268    timeout_secs: 1800 # 30 minute timeout for no output
5269    vars:
5270      <<: *powercycle_test
5271      client_options: --numCrudClients=20 --numFsmClients=20 --fsmWorkloadBlacklistFiles=toggle_feature_compatibility.js
5272      mongod_options: --mongodUsablePorts ${standard_port} ${secret_port} --dbPath=${db_path} --logPath=${log_path} --fcv=3.4
5273      mongod_extra_options: --mongodOptions=\"--setParameter enableTestCommands=1 --storageEngine wiredTiger\"
5274
5275- name: powercycle_kill_mongod
5276  exec_timeout_secs: 7200 # 2 hour timeout for the task overall
5277  depends_on:
5278  - name: compile
5279  commands:
5280  - func: "do setup"
5281  - func: "set up remote credentials"
5282    vars:
5283      <<: *powercycle_remote_credentials
5284  - func: "set up EC2 instance"
5285    vars:
5286      <<: *powercycle_ec2_instance
5287  - command: expansions.update
5288    <<: *powercycle_expansions
5289  - func: "run powercycle test"
5290    timeout_secs: 1800 # 30 minute timeout for no output
5291    vars:
5292      <<: *powercycle_test
5293      crash_options: --crashMethod=kill --crashWaitTime=45 --jitterForCrashWaitTime=5 --instanceId=${instance_id}
5294      mongod_extra_options: --mongodOptions=\"--setParameter enableTestCommands=1 --storageEngine wiredTiger\"
5295
5296- name: powercycle_replication_WT
5297  exec_timeout_secs: 7200 # 2 hour timeout for the task overall
5298  depends_on:
5299  - name: compile
5300  commands:
5301  - func: "do setup"
5302  - func: "set up remote credentials"
5303    vars:
5304      <<: *powercycle_remote_credentials
5305  - func: "set up EC2 instance"
5306    vars:
5307      <<: *powercycle_ec2_instance
5308  - command: expansions.update
5309    <<: *powercycle_expansions
5310  - func: "run powercycle test"
5311    timeout_secs: 1800 # 30 minute timeout for no output
5312    vars:
5313      <<: *powercycle_test
5314      mongod_extra_options: --replSet=powercycle --mongodOptions=\"--setParameter enableTestCommands=1 --storageEngine wiredTiger\"
5315
5316- name: powercycle_replication_smalloplog_WT
5317  exec_timeout_secs: 7200 # 2 hour timeout for the task overall
5318  depends_on:
5319  - name: compile
5320  commands:
5321  - func: "do setup"
5322  - func: "set up remote credentials"
5323    vars:
5324      <<: *powercycle_remote_credentials
5325  - func: "set up EC2 instance"
5326    vars:
5327      <<: *powercycle_ec2_instance
5328  - command: expansions.update
5329    <<: *powercycle_expansions
5330  - func: "run powercycle test"
5331    timeout_secs: 1800 # 30 minute timeout for no output
5332    vars:
5333      <<: *powercycle_test
5334      mongod_extra_options: --replSet=powercycle --mongodOptions=\"--setParameter enableTestCommands=1 --oplogSize 20 --storageEngine wiredTiger\"
5335
5336- name: powercycle_syncdelay_WT
5337  exec_timeout_secs: 7200 # 2 hour timeout for the task overall
5338  depends_on:
5339  - name: compile
5340  commands:
5341  - func: "do setup"
5342  - func: "set up remote credentials"
5343    vars:
5344      <<: *powercycle_remote_credentials
5345  - func: "set up EC2 instance"
5346    vars:
5347      <<: *powercycle_ec2_instance
5348  - command: expansions.update
5349    <<: *powercycle_expansions
5350  - func: "run powercycle test"
5351    timeout_secs: 1800 # 30 minute timeout for no output
5352    vars:
5353      <<: *powercycle_test
5354      mongod_extra_options: --mongodOptions=\"--setParameter enableTestCommands=1 --syncdelay 10 --storageEngine wiredTiger\"
5355
5356- name: powercycle_write_concern_majority_WT
5357  exec_timeout_secs: 7200 # 2 hour timeout for the task overall
5358  depends_on:
5359  - name: compile
5360  commands:
5361  - func: "do setup"
5362  - func: "set up remote credentials"
5363    vars:
5364      <<: *powercycle_remote_credentials
5365  - func: "set up EC2 instance"
5366    vars:
5367      <<: *powercycle_ec2_instance
5368  - command: expansions.update
5369    <<: *powercycle_expansions
5370  - func: "run powercycle test"
5371    timeout_secs: 1800 # 30 minute timeout for no output
5372    vars:
5373      <<: *powercycle_test
5374      client_options: "--numCrudClients=20 --numFsmClients=20 --writeConcern='{\"w\": \"majority\"}'"
5375      mongod_extra_options: --mongodOptions \"--setParameter enableTestCommands=1 --storageEngine wiredTiger\"
5376
5377- name: idl_tests
5378  depends_on:
5379  - name: compile
5380  commands:
5381  - func: "do setup"
5382  - func: "run idl tests"
5383
5384- name: package
5385  depends_on:
5386  - name: compile
5387  commands:
5388    - func: "fetch artifacts"
5389    - func: "set up remote credentials"
5390      vars:
5391        private_key_file: ~/.ssh/kitchen.pem
5392        private_key_remote: ${kitchen_private_key}
5393        aws_key_remote: ${kitchen_aws_key}
5394        aws_secret_remote: ${kitchen_aws_secret}
5395    - func: "run kitchen"
5396
5397- name: push
5398  patchable: false
5399  depends_on:
5400  - name: "*"
5401  stepback: false
5402  commands:
5403    - func: "fetch artifacts"
5404    - func: "fetch binaries"
5405    - command: s3.get
5406      params:
5407        aws_key: ${aws_key}
5408        aws_secret: ${aws_secret}
5409        remote_file: ${project}/${build_variant}/${revision}/binaries/mongo-shell-${build_id}.${ext|tgz}
5410        bucket: mciuploads
5411        local_file: src/mongo-shell.tgz
5412    - command: s3.get
5413      params:
5414        aws_key: ${aws_key}
5415        aws_secret: ${aws_secret}
5416        remote_file: ${project}/${build_variant}/${revision}/sources/mongo-src-${build_id}.${ext|tgz}
5417        bucket: mciuploads
5418        local_file: src/distsrc.${ext|tgz}
5419        build_variants: [ linux-64, windows-64-2k8-ssl ]
5420    - *apply_compile_expansions
5421    - func: "fetch debugsymbols archive"
5422    - func: "set up remote credentials"
5423      vars:
5424        aws_key_remote: ${repo_aws_key}
5425        aws_secret_remote: ${repo_aws_secret}
5426    - command: shell.exec
5427      params:
5428        working_dir: src
5429        silent: true
5430        script: |
5431          set -o errexit
5432
5433          cat <<EOF > notary_env.sh
5434          export NOTARY_TOKEN=${signing_auth_token_36}
5435          export BARQUE_USERNAME=${barque_user}
5436          export BARQUE_API_KEY=${barque_api_key}
5437          EOF
5438
5439          echo "${signing_auth_token_36}" > signing_auth_token
5440
5441    - command: shell.exec
5442      params:
5443        working_dir: src
5444        script: |
5445          . ./notary_env.sh
5446
5447          set -o errexit
5448          set -o verbose
5449
5450          mv mongo-binaries.tgz mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz}
5451          mv mongo-shell.tgz mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz}
5452          mv mongo-debugsymbols.tgz mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz} || true
5453          mv distsrc.${ext|tgz} mongodb-src-${src_suffix}.${ext|tar.gz} || true
5454          /usr/bin/find build/ -type f | grep msi$ | xargs -I original_filename cp original_filename mongodb-win32-${push_arch}-${suffix}.msi || true
5455
5456          /usr/local/bin/notary-client.py --key-name "server-3.6" --auth-token-file ${workdir}/src/signing_auth_token --comment "Evergreen Automatic Signing ${revision} - ${build_variant} - ${branch_name}" --notary-url http://notary-service.build.10gen.cc:5000 --skip-missing mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz} mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz} mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz} mongodb-win32-${push_arch}-${suffix}.msi mongodb-src-${src_suffix}.${ext|tar.gz}
5457
5458          if [ "${has_packages|}" = "true" ]; then
5459             CURATOR_RELEASE=${curator_release|"latest"}
5460             curl -L -O http://boxes.10gen.com/build/curator/curator-dist-rhel70-$CURATOR_RELEASE.tar.gz
5461             tar -zxvf curator-dist-rhel70-$CURATOR_RELEASE.tar.gz
5462            ./curator repo submit --service ${barque_url} --config ./etc/repo_config.yaml --distro ${packager_distro} --edition ${repo_edition} --version ${version} --arch ${packager_arch} --packages https://s3.amazonaws.com/mciuploads/${project}/${build_variant}/${revision}/artifacts/${build_id}-packages.tgz
5463          fi
5464
5465    # Put the binaries tarball/zipfile
5466    - command: s3.put
5467      params:
5468        aws_secret: ${aws_secret}
5469        local_file: src/mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz}
5470        aws_key: ${aws_key}
5471        bucket: build-push-testing
5472        permissions: public-read
5473        content_type: ${content_type|application/x-gzip}
5474        remote_file: ${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}
5475    # Put the shell tarball/zipfile
5476    - command: s3.put
5477      params:
5478        aws_secret: ${aws_secret}
5479        local_file: src/mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz}
5480        aws_key: ${aws_key}
5481        bucket: build-push-testing
5482        permissions: public-read
5483        content_type: ${content_type|application/x-gzip}
5484        remote_file: ${push_path}-STAGE/${push_name}/mongodb-shell-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}
5485    # Put the source tarball
5486    - command: s3.put
5487      params:
5488        aws_secret: ${aws_secret}
5489        local_file: src/mongodb-src-${src_suffix}.${ext|tar.gz}
5490        aws_key: ${aws_key}
5491        bucket: build-push-testing
5492        permissions: public-read
5493        content_type: ${content_type|application/x-gzip}
5494        remote_file: ${push_path}-STAGE/${push_name}/mongodb-src-${src_suffix}-${task_id}.${ext|tar.gz}
5495        build_variants: [ linux-64, windows-64-2k8-ssl ]
5496
5497    # Put the debug symbols
5498    - command: s3.put
5499      params:
5500        aws_secret: ${aws_secret}
5501        aws_key: ${aws_key}
5502        permissions: public-read
5503        local_file: src/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz}
5504        bucket: build-push-testing
5505        content_type: ${content_type|application/x-gzip}
5506        remote_file: ${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}-${task_id}.${ext|tgz}
5507        optional: true
5508
5509    # Put the binaries tarball signature
5510    - command: s3.put
5511      params:
5512        aws_secret: ${aws_secret}
5513        local_file: src/mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sig
5514        aws_key: ${aws_key}
5515        bucket: build-push-testing
5516        permissions: public-read
5517        content_type: ${content_type|application/x-gzip}
5518        remote_file: ${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sig
5519
5520    # Put the shell tarball signature
5521    - command: s3.put
5522      params:
5523        aws_secret: ${aws_secret}
5524        local_file: src/mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sig
5525        aws_key: ${aws_key}
5526        bucket: build-push-testing
5527        permissions: public-read
5528        content_type: ${content_type|application/x-gzip}
5529        remote_file: ${push_path}-STAGE/${push_name}/mongodb-shell-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sig
5530
5531    # Put the source tarball signature
5532    - command: s3.put
5533      params:
5534        aws_secret: ${aws_secret}
5535        local_file: src/mongodb-src-${src_suffix}.${ext|tar.gz}.sig
5536        aws_key: ${aws_key}
5537        bucket: build-push-testing
5538        permissions: public-read
5539        content_type: ${content_type|application/x-gzip}
5540        remote_file: ${push_path}-STAGE/${push_name}/mongodb-src-${src_suffix}-${task_id}.${ext|tar.gz}.sig
5541        build_variants: [ linux-64, windows-64-2k8-ssl ]
5542
5543    # Put the debug symbols signature
5544    - command: s3.put
5545      params:
5546        aws_secret: ${aws_secret}
5547        aws_key: ${aws_key}
5548        permissions: public-read
5549        local_file: src/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz}.sig
5550        bucket: build-push-testing
5551        content_type: ${content_type|application/x-gzip}
5552        remote_file: ${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}-${task_id}.${ext|tgz}.sig
5553        optional: true
5554
5555    # Put the signed MSI file
5556    - command: s3.put
5557      params:
5558        aws_key: ${aws_key}
5559        aws_secret: ${aws_secret}
5560        permissions: public-read
5561        build_variants: ["enterprise-windows-64-2k8", "windows-64-2k8-ssl"]
5562        local_file: src/mongodb-win32-${push_arch}-${suffix}-signed.msi
5563        bucket: build-push-testing
5564        content_type: application/x-msi
5565        remote_file: ${push_path}-STAGE/${push_name}/mongodb-win32-${push_arch}-${suffix}-${task_id}-signed.msi
5566
5567    # Put the binaries tarball sha1
5568    - command: s3.put
5569      params:
5570        aws_secret: ${aws_secret}
5571        local_file: src/mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sha1
5572        aws_key: ${aws_key}
5573        permissions: public-read
5574        bucket: build-push-testing
5575        content_type: text/plain
5576        remote_file: ${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sha1
5577
5578    # Put the shell tarball sha1
5579    - command: s3.put
5580      params:
5581        aws_secret: ${aws_secret}
5582        local_file: src/mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sha1
5583        aws_key: ${aws_key}
5584        permissions: public-read
5585        bucket: build-push-testing
5586        content_type: text/plain
5587        remote_file: ${push_path}-STAGE/${push_name}/mongodb-shell-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sha1
5588
5589    # Put the source tarball sha1
5590    - command: s3.put
5591      params:
5592        aws_secret: ${aws_secret}
5593        local_file: src/mongodb-src-${src_suffix}.${ext|tar.gz}.sha1
5594        aws_key: ${aws_key}
5595        permissions: public-read
5596        bucket: build-push-testing
5597        content_type: text/plain
5598        remote_file: ${push_path}-STAGE/${push_name}/mongodb-src-${src_suffix}-${task_id}.${ext|tar.gz}.sha1
5599        build_variants: [ linux-64, windows-64-2k8-ssl ]
5600
5601    # Put the debug symbols sha1
5602    - command: s3.put
5603      params:
5604        aws_secret: ${aws_secret}
5605        aws_key: ${aws_key}
5606        permissions: public-read
5607        local_file: src/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz}.sha1
5608        bucket: build-push-testing
5609        content_type: text/plain
5610        remote_file: ${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}-${task_id}.${ext|tgz}.sha1
5611        optional: true
5612
5613    # Push the signed MSI sha1
5614    - command: s3.put
5615      params:
5616        aws_key: ${aws_key}
5617        aws_secret: ${aws_secret}
5618        permissions: public-read
5619        build_variants: ["enterprise-windows-64-2k8", "windows-64-2k8-ssl"]
5620        local_file: src/mongodb-win32-${push_arch}-${suffix}-signed.msi.sha1
5621        bucket: build-push-testing
5622        content_type: text/plain
5623        remote_file: ${push_path}-STAGE/${push_name}/mongodb-win32-${push_arch}-${suffix}-${task_id}-signed.msi.sha1
5624
5625    # Put the binaries tarball sha256
5626    - command: s3.put
5627      params:
5628        aws_secret: ${aws_secret}
5629        local_file: src/mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sha256
5630        permissions: public-read
5631        aws_key: ${aws_key}
5632        bucket: build-push-testing
5633        content_type: text/plain
5634        remote_file: ${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sha256
5635
5636    # Put the shell tarball sha256
5637    - command: s3.put
5638      params:
5639        aws_secret: ${aws_secret}
5640        local_file: src/mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sha256
5641        permissions: public-read
5642        aws_key: ${aws_key}
5643        bucket: build-push-testing
5644        content_type: text/plain
5645        remote_file: ${push_path}-STAGE/${push_name}/mongodb-shell-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sha256
5646
5647    # Put the source tarball sha256
5648    - command: s3.put
5649      params:
5650        aws_secret: ${aws_secret}
5651        local_file: src/mongodb-src-${src_suffix}.${ext|tar.gz}.sha256
5652        permissions: public-read
5653        aws_key: ${aws_key}
5654        bucket: build-push-testing
5655        content_type: text/plain
5656        remote_file: ${push_path}-STAGE/${push_name}/mongodb-src-${src_suffix}-${task_id}.${ext|tar.gz}.sha256
5657        build_variants: [ linux-64, windows-64-2k8-ssl ]
5658
5659    # Put the debug symbols sha256
5660    - command: s3.put
5661      params:
5662        aws_secret: ${aws_secret}
5663        local_file: src/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz}.sha256
5664        aws_key: ${aws_key}
5665        bucket: build-push-testing
5666        permissions: public-read
5667        content_type: text/plain
5668        remote_file: ${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}-${task_id}.${ext|tgz}.sha256
5669        optional: true
5670
5671    # Put the signed MSI sha256
5672    - command: s3.put
5673      params:
5674        aws_key: ${aws_key}
5675        aws_secret: ${aws_secret}
5676        build_variants: ["enterprise-windows-64-2k8", "windows-64-2k8-ssl"]
5677        local_file: src/mongodb-win32-${push_arch}-${suffix}-signed.msi.sha256
5678        bucket: build-push-testing
5679        permissions: public-read
5680        remote_file: ${push_path}-STAGE/${push_name}/mongodb-win32-${push_arch}-${suffix}-${task_id}-signed.msi.sha256
5681        content_type: text/plain
5682
5683    # Put the binaries tarball md5
5684    - command: s3.put
5685      params:
5686        aws_secret: ${aws_secret}
5687        local_file: src/mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz}.md5
5688        aws_key: ${aws_key}
5689        bucket: build-push-testing
5690        permissions: public-read
5691        content_type: text/plain
5692        remote_file: ${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.md5
5693
5694    # Put the shell tarball md5
5695    - command: s3.put
5696      params:
5697        aws_secret: ${aws_secret}
5698        local_file: src/mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz}.md5
5699        aws_key: ${aws_key}
5700        bucket: build-push-testing
5701        permissions: public-read
5702        content_type: text/plain
5703        remote_file: ${push_path}-STAGE/${push_name}/mongodb-shell-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.md5
5704
5705    # Put the source tarball md5
5706    - command: s3.put
5707      params:
5708        aws_secret: ${aws_secret}
5709        local_file: src/mongodb-src-${src_suffix}.${ext|tar.gz}.md5
5710        aws_key: ${aws_key}
5711        bucket: build-push-testing
5712        permissions: public-read
5713        content_type: text/plain
5714        remote_file: ${push_path}-STAGE/${push_name}/mongodb-src-${src_suffix}-${task_id}.${ext|tar.gz}.md5
5715        build_variants: [ linux-64, windows-64-2k8-ssl ]
5716
5717    # Put the debug symbols md5
5718    - command: s3.put
5719      params:
5720        aws_key: ${aws_key}
5721        aws_secret: ${aws_secret}
5722        local_file: src/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz}.md5
5723        bucket: build-push-testing
5724        content_type: text/plain
5725        permissions: public-read
5726        remote_file: ${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}-${task_id}.${ext|tgz}.md5
5727        optional: true
5728
5729    # Put the signed MSI md5
5730    - command: s3.put
5731      params:
5732        aws_key: ${aws_key}
5733        aws_secret: ${aws_secret}
5734        build_variants: ["enterprise-windows-64-2k8", "windows-64-2k8-ssl"]
5735        local_file: src/mongodb-win32-${push_arch}-${suffix}-signed.msi.md5
5736        bucket: build-push-testing
5737        permissions: public-read
5738        content_type: text/plain
5739        remote_file: ${push_path}-STAGE/${push_name}/mongodb-win32-${push_arch}-${suffix}-${task_id}-signed.msi.md5
5740
5741    - command: s3Copy.copy
5742      params:
5743        aws_key: ${aws_key}
5744        aws_secret: ${aws_secret}
5745        s3_copy_files:
5746            #Binaries
5747            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}', 'bucket': 'build-push-testing'},
5748               'destination': {'path': '${push_path}/mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz}', 'bucket': '${push_bucket}'}}
5749
5750            #Shell
5751            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-shell-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}', 'bucket': 'build-push-testing'},
5752               'destination': {'path': '${push_path}/mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz}', 'bucket': '${push_bucket}'}}
5753
5754            #Source tarball
5755            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-src-${src_suffix}-${task_id}.${ext|tar.gz}', 'bucket': 'build-push-testing'},
5756               'destination': {'path': 'src/mongodb-src-${src_suffix}.${ext|tar.gz}', 'bucket': '${push_bucket}'},
5757               'build_variants': [ 'linux-64', 'windows-64-2k8-ssl' ]}
5758
5759            #MSI (Windows only)
5760            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-win32-${push_arch}-${suffix}-${task_id}-signed.msi', 'bucket': 'build-push-testing'},
5761               'destination': {'path': '${push_path}/mongodb-win32-${push_arch}-${suffix}-signed.msi', 'bucket': '${push_bucket}'},
5762               'build_variants': [ 'enterprise-windows-64-2k8', 'windows-64-2k8-ssl' ]}
5763
5764            #Binaries Signature
5765            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sig', 'bucket': 'build-push-testing'},
5766               'destination': {'path': '${push_path}/mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sig', 'bucket': '${push_bucket}'}}
5767
5768            #Shell Signature
5769            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-shell-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sig', 'bucket': 'build-push-testing'},
5770               'destination': {'path': '${push_path}/mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sig', 'bucket': '${push_bucket}'}}
5771
5772            #Source tarball signature
5773            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-src-${src_suffix}-${task_id}.${ext|tar.gz}.sig', 'bucket': 'build-push-testing'},
5774               'destination': {'path': 'src/mongodb-src-${src_suffix}.${ext|tar.gz}.sig', 'bucket': '${push_bucket}'},
5775               'build_variants': [ 'linux-64', 'windows-64-2k8-ssl' ]}
5776
5777            #SHA1 for binaries
5778            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sha1', 'bucket': 'build-push-testing'},
5779               'destination': {'path': '${push_path}/mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sha1', 'bucket': '${push_bucket}'}}
5780
5781            #SHA1 for shell
5782            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-shell-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sha1', 'bucket': 'build-push-testing'},
5783               'destination': {'path': '${push_path}/mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sha1', 'bucket': '${push_bucket}'}}
5784
5785            #SHA1 for source tarball
5786            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-src-${src_suffix}-${task_id}.${ext|tar.gz}.sha1', 'bucket': 'build-push-testing'},
5787               'destination': {'path': 'src/mongodb-src-${src_suffix}.${ext|tar.gz}.sha1', 'bucket': '${push_bucket}'},
5788               'build_variants': [ 'linux-64', 'windows-64-2k8-ssl' ]}
5789
5790            #SHA1 for MSI
5791            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-win32-${push_arch}-${suffix}-${task_id}-signed.msi.sha1', 'bucket': 'build-push-testing'},
5792               'destination': {'path': '${push_path}/mongodb-win32-${push_arch}-${suffix}-signed.msi.sha1', 'bucket': '${push_bucket}'},
5793               'build_variants': ['enterprise-windows-64-2k8', 'windows-64-2k8-ssl']}
5794
5795            #SHA256 for binaries
5796            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sha256', 'bucket': 'build-push-testing'},
5797               'destination': {'path': '${push_path}/mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sha256', 'bucket': '${push_bucket}'}}
5798
5799            #SHA256 for shell
5800            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-shell-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.sha256', 'bucket': 'build-push-testing'},
5801               'destination': {'path': '${push_path}/mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz}.sha256', 'bucket': '${push_bucket}'}}
5802
5803            #SHA256 for source tarball
5804            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-src-${src_suffix}-${task_id}.${ext|tar.gz}.sha256', 'bucket': 'build-push-testing'},
5805               'destination': {'path': 'src/mongodb-src-${src_suffix}.${ext|tar.gz}.sha256', 'bucket': '${push_bucket}'},
5806               'build_variants': [ 'linux-64', 'windows-64-2k8-ssl' ]}
5807
5808            #SHA256 for MSI files
5809            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-win32-${push_arch}-${suffix}-${task_id}-signed.msi.sha256', 'bucket': 'build-push-testing'},
5810               'destination': {'path': '${push_path}/mongodb-win32-${push_arch}-${suffix}-signed.msi.sha256', 'bucket': '${push_bucket}'},
5811               'build_variants': ['enterprise-windows-64-2k8', 'windows-64-2k8-ssl']}
5812
5813            #MD5 for binaries
5814            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.md5', 'bucket': 'build-push-testing'},
5815               'destination': {'path': '${push_path}/mongodb-${push_name}-${push_arch}-${suffix}.${ext|tgz}.md5', 'bucket': '${push_bucket}'}}
5816
5817            #MD5 for shell
5818            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-shell-${push_name}-${push_arch}-${suffix}-${task_id}.${ext|tgz}.md5', 'bucket': 'build-push-testing'},
5819               'destination': {'path': '${push_path}/mongodb-shell-${push_name}-${push_arch}-${suffix}.${ext|tgz}.md5', 'bucket': '${push_bucket}'}}
5820
5821            #MD5 for source tarball
5822            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-src-${src_suffix}-${task_id}.${ext|tar.gz}.md5', 'bucket': 'build-push-testing'},
5823               'destination': {'path': 'src/mongodb-src-${src_suffix}.${ext|tar.gz}.md5', 'bucket': '${push_bucket}'},
5824               'build_variants': [ 'linux-64', 'windows-64-2k8-ssl' ]}
5825
5826            #MD5 for MSIs
5827            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-win32-${push_arch}-${suffix}-${task_id}-signed.msi.md5', 'bucket': 'build-push-testing'},
5828               'destination': {'path': '${push_path}/mongodb-win32-${push_arch}-${suffix}-signed.msi.md5', 'bucket': '${push_bucket}'},
5829               'build_variants': ['enterprise-windows-64-2k8', 'windows-64-2k8-ssl'], }
5830
5831    # Debug symbols are not created for all variants and the copy is optional.
5832    - command: s3Copy.copy
5833      params:
5834        aws_key: ${aws_key}
5835        aws_secret: ${aws_secret}
5836        optional: true
5837        s3_copy_files:
5838            #Debug Symbols
5839            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}-${task_id}.${ext|tgz}', 'bucket': 'build-push-testing'},
5840               'destination': {'path': '${push_path}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz}', 'bucket': '${push_bucket}'}}
5841
5842            #Debug Symbols Signature
5843            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}-${task_id}.${ext|tgz}.sig', 'bucket': 'build-push-testing'},
5844               'destination': {'path': '${push_path}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz}.sig', 'bucket': '${push_bucket}'}}
5845
5846            #SHA1 for debug symbols
5847            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}-${task_id}.${ext|tgz}.sha1', 'bucket': 'build-push-testing'},
5848               'destination': {'path': '${push_path}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz}.sha1', 'bucket': '${push_bucket}'}}
5849
5850            #SHA256 for debugsymbols
5851            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}-${task_id}.${ext|tgz}.sha256', 'bucket': 'build-push-testing'},
5852               'destination': {'path': '${push_path}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz}.sha256', 'bucket': '${push_bucket}'}}
5853
5854            #MD5 for debugsymbols
5855            - {'source': {'path': '${push_path}-STAGE/${push_name}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}-${task_id}.${ext|tgz}.md5', 'bucket': 'build-push-testing'},
5856               'destination': {'path': '${push_path}/mongodb-${push_name}-${push_arch}-debugsymbols-${suffix}.${ext|tgz}.md5', 'bucket': '${push_bucket}'}}
5857
5858- name: fetch_test_lifecycle
5859  depends_on: []
5860  commands:
5861  - func: "git get project"
5862  - func: "fetch test_lifecycle.yml"
5863    vars:
5864      # This task is meant to fail if there is an error while fetching test_lifecycle.yml since
5865      # the compile task won't fail.
5866      fail_task_on_error: true
5867
5868- name: update_test_lifecycle
5869  exec_timeout_secs: 21600 # 6 hour timeout for the task overall
5870  depends_on: []
5871  commands:
5872  - func: "git get project"
5873  - command: shell.exec
5874    timeout_secs: 14400 # Timeout if there is no output for 4 hours
5875    type: test
5876    params:
5877      working_dir: src
5878      silent: true
5879      script: |
5880        set -o errexit
5881
5882        # Set up the git ssh private key
5883        mkdir -p ~/.ssh
5884        echo -n "${testlifecycle_ssh_key}" > ~/.ssh/test_lifecycle.pem
5885        chmod 0600 ~/.ssh/test_lifecycle.pem
5886        export GIT_SSH_COMMAND="ssh -i ~/.ssh/test_lifecycle.pem"
5887
5888        # Create the jira credentials configuration file
5889        cat > .jira.yml <<END_OF_CREDS
5890        server: "https://jira.mongodb.org"
5891        access_token: "${testlifecycle_jira_access_token}"
5892        access_token_secret: "${testlifecycle_jira_access_token_secret}"
5893        consumer_key: "${testlifecycle_jira_consumer_key}"
5894        key_cert: |
5895        $(echo "${testlifecycle_jira_key_certificate}" | sed  's/^/  /')
5896        END_OF_CREDS
5897
5898        set -o verbose
5899
5900        ${activate_virtualenv}
5901        # Install Python modules to support OAuth with pip until it is available in the toolchain.
5902        pip install cryptography==1.7.2 pyjwt==1.5.3
5903
5904        # We use a small batch size to avoid hitting the load balancer timeout if the Evergreen
5905        # API query is not fast enough.
5906        $python buildscripts/update_test_lifecycle.py                   \
5907            --project ${project}                                        \
5908            --requestBatchSize 20                                       \
5909            --commit                                                    \
5910            --resmokeTagFile "etc/test_lifecycle.yml"                   \
5911            --metadataRepo "git@github.com:mongodb/mongo-test-metadata" \
5912            --referencesFile "references.yml"                           \
5913            --gitUserName "Test Lifecycle"                              \
5914            --gitUserEmail "build+testlifecycle@mongodb.com"            \
5915            --jiraConfig .jira.yml
5916
5917
5918#######################################
5919#               Modules               #
5920#######################################
5921# if a module is added and to be added to the manifest
5922# be sure to add the module to git.get_project revisions parameter
5923modules:
5924- name: enterprise
5925  repo: git@github.com:10gen/mongo-enterprise-modules.git
5926  prefix: src/mongo/db/modules
5927  branch: v3.6
5928
5929#######################################
5930#            Buildvariants            #
5931#######################################
5932
5933buildvariants:
5934
5935###########################################
5936#         Linux buildvariants             #
5937###########################################
5938
5939- name: linux-64
5940  display_name: Linux
5941  run_on:
5942  - rhel62-small
5943  batchtime: 1440 # 1 day
5944  expansions:
5945    push_path: linux
5946    push_bucket: downloads.mongodb.org
5947    push_name: linux
5948    push_arch: x86_64
5949    compile_flags: -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars --release
5950    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
5951    use_scons_cache: true
5952    tooltags: ""
5953    build_mongoreplay: true
5954  tasks:
5955  - name: compile
5956    distros:
5957    - rhel62-large
5958  - name: compile_all
5959    distros:
5960    - rhel62-large
5961  - name: aggregation_WT
5962  - name: aggregation_auth
5963  - name: aggregation_read_concern_majority_passthrough_WT
5964  - name: aggregation_sharded_collections_passthrough_WT
5965  - name: auth_WT
5966  - name: change_streams_WT
5967  - name: change_streams_mongos_passthrough_WT
5968  - name: change_streams_mongos_sessions_passthrough_WT
5969  - name: change_streams_secondary_reads_WT
5970  - name: change_streams_sharded_collections_passthrough_WT
5971  - name: dbtest_WT
5972  - name: disk_WT
5973  - name: failpoints
5974  - name: failpoints_auth
5975  - name: gle_auth_WT
5976  - name: gle_auth_write_cmd_WT
5977  - name: gle_auth_basics_passthrough_WT
5978  - name: gle_auth_basics_passthrough_write_cmd_WT
5979  - name: integration_tests_standalone
5980  - name: integration_tests_replset
5981  - name: integration_tests_sharded
5982  - name: sharding_gle_auth_basics_passthrough_WT
5983  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
5984  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
5985  - name: jsCore_WT
5986  - name: jsCore_auth
5987  - name: jsCore_op_query_WT
5988  - name: jsCore_compatibility_WT
5989  - name: jsCore_decimal_WT
5990  - name: jstestfuzz_WT
5991  - name: jstestfuzz_concurrent_WT
5992  - name: jstestfuzz_concurrent_replication_WT
5993  - name: jstestfuzz_concurrent_sharded_WT
5994  - name: jstestfuzz_replication_WT
5995  - name: jstestfuzz_sharded_WT
5996  - name: mongosTest
5997  - name: multiversion_auth
5998  - name: multiversion_WT
5999  - name: multiversion_multistorage_engine
6000  - name: noPassthrough_WT
6001  - name: noPassthroughWithMongod_WT
6002  - name: bulk_gle_passthrough_WT
6003  - name: parallel_WT
6004  - name: parallel_compatibility_WT
6005  - name: concurrency_WT
6006  - name: concurrency_replication_WT
6007  - name: concurrency_sharded_WT
6008  - name: concurrency_simultaneous_WT
6009  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
6010  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
6011  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
6012  - name: read_concern_linearizable_passthrough_WT
6013  - name: read_concern_majority_passthrough_WT
6014  - name: read_only_WT
6015  - name: read_only_sharded_WT
6016  - name: replica_sets_WT
6017  - name: replica_sets_auth
6018  - name: replica_sets_pv0
6019  - name: replica_sets_jscore_passthrough_WT
6020  - name: master_slave_WT
6021  - name: master_slave_auth
6022  - name: master_slave_jscore_passthrough_WT
6023  - name: sharding_WT
6024  - name: sharding_auth
6025  - name: slow1_WT
6026  - name: serial_run_WT
6027  - name: sharded_collections_jscore_passthrough_WT
6028  - name: sharding_jscore_passthrough_WT
6029  - name: sharding_jscore_op_query_passthrough_WT
6030  - name: sharding_jscore_passthrough_wire_ops_WT
6031  - name: sharding_last_stable_mongos_and_mixed_shards
6032  - name: tool_WT
6033  - name: write_concern_majority_passthrough_WT
6034  - name: push
6035    distros:
6036    - rhel62-small
6037
6038- name: linux-64-repeated-execution
6039  stepback: false
6040  display_name: ~ Linux Repeated Execution
6041  run_on:
6042  - rhel62-small
6043  batchtime: 1440 # 1 day
6044  expansions:
6045    compile_flags: -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
6046    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
6047    test_flags: --repeat=10 --shuffle
6048    use_scons_cache: true
6049    tooltags: ""
6050    build_mongoreplay: true
6051  tasks:
6052  - name: compile
6053    distros:
6054    - rhel62-large
6055  - name: compile_all
6056    distros:
6057    - rhel62-large
6058  - name: dbtest_WT
6059  - name: integration_tests_standalone
6060  - name: integration_tests_replset
6061  - name: integration_tests_sharded
6062  - name: jsCore_WT
6063  - name: logical_session_cache_replication_100ms_refresh_jscore_passthrough_WT
6064  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
6065  - name: logical_session_cache_replication_10sec_refresh_jscore_passthrough_WT
6066  - name: logical_session_cache_replication_default_refresh_jscore_passthrough_WT
6067  - name: logical_session_cache_sharding_100ms_refresh_jscore_passthrough_WT
6068  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
6069  - name: logical_session_cache_sharding_10sec_refresh_jscore_passthrough_WT
6070  - name: logical_session_cache_sharding_default_refresh_jscore_passthrough_WT
6071  - name: logical_session_cache_standalone_100ms_refresh_jscore_passthrough_WT
6072  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
6073  - name: logical_session_cache_standalone_10sec_refresh_jscore_passthrough_WT
6074  - name: logical_session_cache_standalone_default_refresh_jscore_passthrough_WT
6075  - name: parallel_WT
6076  - name: concurrency_WT
6077  - name: concurrency_replication_WT
6078  - name: concurrency_sharded_WT
6079  - name: concurrency_simultaneous_WT
6080
6081- name: linux-64-debug
6082  display_name: "! Linux DEBUG"
6083  run_on:
6084  - rhel62-large
6085  expansions:
6086    push_path: linux
6087    push_bucket: downloads.mongodb.org
6088    push_name: linux-debug
6089    push_arch: x86_64
6090    num_jobs_available: $(($(grep -c ^processor /proc/cpuinfo) / 2)) # Avoid starting too many mongod's
6091    compile_flags: --dbg=on --opt=on -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
6092    use_scons_cache: true
6093    tooltags: ""
6094    build_mongoreplay: true
6095  tasks:
6096  - name: compile
6097  - name: compile_all
6098  - name: aggregation_WT
6099  - name: aggregation_auth
6100  - name: aggregation_facet_unwind_passthrough_WT
6101  - name: aggregation_read_concern_majority_passthrough_WT
6102  - name: aggregation_sharded_collections_passthrough_WT
6103  - name: auth_WT
6104  - name: bulk_gle_passthrough_WT
6105  - name: causally_consistent_jscore_passthrough_WT
6106  - name: causally_consistent_jscore_passthrough_auth_WT
6107  - name: change_streams_WT
6108  - name: change_streams_mongos_passthrough_WT
6109  - name: change_streams_mongos_sessions_passthrough_WT
6110  - name: change_streams_sharded_collections_passthrough_WT
6111  - name: concurrency_WT
6112  - name: concurrency_replication_WT
6113  - name: concurrency_sharded_WT
6114  - name: concurrency_sharded_causal_consistency_WT
6115  - name: concurrency_sharded_causal_consistency_and_balancer_WT
6116  - name: concurrency_sharded_with_stepdowns_WT
6117  - name: concurrency_sharded_with_stepdowns_and_balancer_WT
6118  - name: concurrency_simultaneous_WT
6119  - name: dbtest_WT
6120  - name: disk_WT
6121  - name: failpoints
6122  - name: failpoints_auth
6123  - name: integration_tests_replset
6124  - name: integration_tests_sharded
6125  - name: integration_tests_standalone
6126  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
6127  - name: jsCore_WT
6128  - name: jsCore_auth
6129  - name: jsCore_compatibility_WT
6130  - name: jsCore_decimal_WT
6131  - name: jsonSchema
6132  - name: logical_session_cache_replication_100ms_refresh_jscore_passthrough_WT
6133  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
6134  - name: logical_session_cache_replication_10sec_refresh_jscore_passthrough_WT
6135  - name: logical_session_cache_replication_default_refresh_jscore_passthrough_WT
6136  - name: logical_session_cache_sharding_100ms_refresh_jscore_passthrough_WT
6137  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
6138  - name: logical_session_cache_sharding_10sec_refresh_jscore_passthrough_WT
6139  - name: logical_session_cache_sharding_default_refresh_jscore_passthrough_WT
6140  - name: logical_session_cache_standalone_100ms_refresh_jscore_passthrough_WT
6141  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
6142  - name: logical_session_cache_standalone_10sec_refresh_jscore_passthrough_WT
6143  - name: logical_session_cache_standalone_default_refresh_jscore_passthrough_WT
6144  - name: mongosTest
6145  - name: noPassthrough_WT
6146  - name: noPassthroughWithMongod_WT
6147  - name: parallel_WT
6148  - name: parallel_compatibility_WT
6149  - name: read_concern_linearizable_passthrough_WT
6150  - name: read_concern_majority_passthrough_WT
6151  - name: read_only_WT
6152  - name: read_only_sharded_WT
6153  - name: replica_sets_WT
6154  - name: replica_sets_auth
6155  - name: replica_sets_initsync_jscore_passthrough_WT
6156  - name: replica_sets_initsync_static_jscore_passthrough_WT
6157  - name: replica_sets_jscore_passthrough_WT
6158  - name: replica_sets_kill_primary_jscore_passthrough_WT
6159  - name: replica_sets_kill_secondaries_jscore_passthrough_WT
6160  - name: replica_sets_resync_static_jscore_passthrough_WT
6161  - name: replica_sets_pv0
6162  - name: replica_sets_rollback_refetch_no_uuid
6163  - name: replica_sets_jscore_fcv34_passthrough_WT
6164  - name: retryable_writes_jscore_passthrough_WT
6165  - name: retryable_writes_jscore_stepdown_passthrough_WT
6166  - name: master_slave_WT
6167  - name: master_slave_auth
6168  - name: master_slave_jscore_passthrough_WT
6169  - name: serial_run_WT
6170  - name: session_jscore_passthrough_WT
6171  - name: sharded_causally_consistent_jscore_passthrough_WT
6172  - name: sharded_collections_jscore_passthrough_WT
6173  - name: sharding_WT
6174  - name: sharding_auth
6175  - name: sharding_jscore_passthrough_WT
6176  - name: sharding_jscore_op_query_passthrough_WT
6177  - name: sharding_jscore_passthrough_wire_ops_WT
6178  - name: slow1_WT
6179  - name: tool_WT
6180  - name: write_concern_majority_passthrough_WT
6181
6182- name: linux-64-duroff
6183  display_name: Linux (No Journal)
6184  run_on:
6185  - rhel62-small
6186  batchtime: 1440 # 1 day
6187  expansions:
6188    push_path: linux
6189    push_bucket: downloads.mongodb.org
6190    push_name: linux-duroff
6191    push_arch: x86_64
6192    compile_flags: -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
6193    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
6194    test_flags: --nojournal --excludeWithAnyTags=requires_journaling
6195    use_scons_cache: true
6196    tooltags: ""
6197    build_mongoreplay: true
6198  tasks:
6199  - name: compile
6200    distros:
6201    - rhel62-large
6202  - name: compile_all
6203    distros:
6204    - rhel62-large
6205  - name: aggregation_WT
6206  - name: aggregation_auth
6207  # - name: auth TODO SERVER-32037: Replace auth with auth_WT.
6208  # - name: dbtest TODO SERVER-32037: Replace dbtest with dbtest_WT.
6209  - name: disk_WT
6210  - name: failpoints
6211  - name: failpoints_auth
6212  - name: jsCore # TODO SERVER-32036: Replace with jsCore_WT when jsCore_auth depends on jsCore_WT.
6213  - name: jsCore_auth
6214  - name: jstestfuzz_WT
6215  - name: jstestfuzz_concurrent_WT
6216  - name: jstestfuzz_concurrent_replication_WT
6217  - name: jstestfuzz_concurrent_sharded_WT
6218  - name: jstestfuzz_replication_WT
6219  - name: jstestfuzz_sharded_WT
6220  - name: mongosTest
6221  - name: replica_sets_auth
6222  - name: master_slave_WT
6223  - name: master_slave_auth
6224  - name: sharding_auth
6225
6226- name: ubuntu1604
6227  display_name: SSL Ubuntu 16.04
6228  run_on:
6229  - ubuntu1604-test
6230  batchtime: 1440 # 1 day
6231  expansions:
6232    push_path: linux
6233    push_bucket: downloads.mongodb.org
6234    push_name: linux
6235    push_arch: x86_64-ubuntu1604
6236    lang_environment: LANG=C
6237    compile_flags: --ssl MONGO_DISTMOD=ubuntu1604 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
6238    multiversion_platform: ubuntu1604
6239    multiversion_edition: targeted
6240    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
6241    has_packages: true
6242    packager_script: packager.py
6243    packager_arch: x86_64
6244    packager_distro: ubuntu1604
6245    repo_edition: org
6246    use_scons_cache: true
6247    tooltags: "ssl"
6248    build_mongoreplay: true
6249  tasks:
6250  - name: compile
6251    distros:
6252    - ubuntu1604-build
6253  - name: compile_all
6254    distros:
6255    - ubuntu1604-build
6256  - name: aggregation_WT
6257  - name: aggregation_auth
6258  - name: auth_WT
6259  - name: dbtest_WT
6260  - name: disk_WT
6261  - name: failpoints
6262  - name: failpoints_auth
6263  - name: gle_auth_WT
6264  - name: gle_auth_write_cmd_WT
6265  - name: gle_auth_basics_passthrough_WT
6266  - name: gle_auth_basics_passthrough_write_cmd_WT
6267  - name: sharding_gle_auth_basics_passthrough_WT
6268  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
6269  - name: jepsen_register_findAndModify_WT
6270    distros:
6271    - ubuntu1604-build
6272  - name: jepsen_register_linearizableRead
6273    distros:
6274    - ubuntu1604-build
6275  - name: jepsen_register_linearizableRead_WT
6276    distros:
6277    - ubuntu1604-build
6278  - name: jepsen_set_linearizableRead
6279    distros:
6280    - ubuntu1604-build
6281  - name: jepsen_set_linearizableRead_WT
6282    distros:
6283    - ubuntu1604-build
6284  - name: jepsen_read-concern-majority_WT
6285    distros:
6286    - ubuntu1604-build
6287  - name: jepsen_read-concern-majority_w1_WT
6288    distros:
6289    - ubuntu1604-build
6290  - name: jsCore
6291  - name: jsCore_WT
6292  - name: jsCore_auth
6293  - name: jsCore_compatibility_WT
6294  - name: jsCore_decimal_WT
6295  - name: jstestfuzz_WT
6296  - name: jstestfuzz_concurrent_WT
6297  - name: jstestfuzz_concurrent_replication_WT
6298  - name: jstestfuzz_concurrent_sharded_WT
6299  - name: jstestfuzz_replication_WT
6300  - name: jstestfuzz_sharded_WT
6301  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
6302  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
6303  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
6304  - name: mongosTest
6305  - name: multiversion_WT
6306  - name: noPassthrough_WT
6307  - name: noPassthroughWithMongod_WT
6308  - name: bulk_gle_passthrough_WT
6309  - name: parallel_WT
6310  - name: parallel_compatibility_WT
6311  - name: powercycle_WT
6312    distros:
6313    - ubuntu1604-powercycle
6314  - name: powercycle_fcv3.4_WT
6315    distros:
6316    - ubuntu1604-powercycle
6317  - name: powercycle_kill_mongod
6318    distros:
6319    - ubuntu1604-powercycle
6320  - name: powercycle_replication_WT
6321    distros:
6322    - ubuntu1604-powercycle
6323  - name: powercycle_replication_smalloplog_WT
6324    distros:
6325    - ubuntu1604-powercycle
6326  - name: powercycle_syncdelay_WT
6327    distros:
6328    - ubuntu1604-powercycle
6329  - name: powercycle_write_concern_majority_WT
6330    distros:
6331    - ubuntu1604-powercycle
6332  - name: concurrency_WT
6333  - name: concurrency_replication_WT
6334  - name: concurrency_sharded_WT
6335  - name: concurrency_simultaneous_WT
6336  - name: replica_sets_WT
6337  - name: replica_sets_auth
6338  - name: replica_sets_jscore_passthrough_WT
6339  - name: master_slave_WT
6340  - name: master_slave_auth
6341  - name: master_slave_jscore_passthrough_WT
6342  - name: sharding_WT
6343  - name: sharding_auth
6344  - name: sharding_last_stable_mongos_and_mixed_shards
6345  - name: slow1_WT
6346  - name: serial_run_WT
6347  - name: sharding_jscore_passthrough_WT
6348  - name: ssl
6349  - name: sslSpecial
6350  - name: tool_WT
6351  - name: package
6352    distros:
6353    - ubuntu1604-packer
6354  - name: push
6355    distros:
6356    - ubuntu1604-small
6357
6358- name: enterprise-ubuntu1604-arm64
6359  display_name: Enterprise Ubuntu 16.04 arm64
6360  modules:
6361  - enterprise
6362  run_on:
6363  - ubuntu1604-arm64-large
6364  batchtime: 1440 # 1 day
6365  expansions:
6366    push_path: linux
6367    push_bucket: downloads.10gen.com
6368    push_name: linux
6369    push_arch: arm64-enterprise-ubuntu1604
6370    compile_flags: --ssl MONGO_DISTMOD=ubuntu1604 -j$(grep -c ^processor /proc/cpuinfo) CCFLAGS="-march=armv8-a+crc -mtune=generic" --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
6371    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
6372    max_jobs: 8 # Avoid starting too many mongod's on ARM test servers
6373    test_flags: --excludeWithAnyTags=requires_mmapv1
6374    has_packages: true
6375    packager_script: packager-enterprise.py
6376    packager_arch: arm64
6377    packager_distro: ubuntu1604
6378    repo_edition: enterprise
6379    tooltags: "ssl sasl"
6380    build_mongoreplay: true
6381    multiversion_platform: ubuntu1604
6382    multiversion_architecture: arm64
6383    multiversion_edition: enterprise
6384  tasks:
6385  - name: compile
6386  - name: compile_all
6387  - name: aggregation_WT
6388  - name: aggregation_auth
6389  - name: auth_WT
6390  - name: dbtest_WT
6391  - name: failpoints
6392  - name: failpoints_auth
6393  - name: gle_auth_WT
6394  - name: gle_auth_write_cmd_WT
6395  - name: gle_auth_basics_passthrough_WT
6396  - name: gle_auth_basics_passthrough_write_cmd_WT
6397  - name: sharding_gle_auth_basics_passthrough_WT
6398  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
6399  - name: jsCore_WT
6400  - name: jsCore_compatibility_WT
6401  - name: jsCore_decimal_WT
6402  - name: jstestfuzz_WT
6403  - name: jstestfuzz_concurrent_WT
6404  - name: jstestfuzz_concurrent_replication_WT
6405  - name: jstestfuzz_concurrent_sharded_WT
6406  - name: jstestfuzz_replication_WT
6407  - name: jstestfuzz_sharded_WT
6408  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
6409  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
6410  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
6411  - name: mongosTest
6412  - name: noPassthrough_WT
6413  - name: noPassthroughWithMongod_WT
6414  - name: bulk_gle_passthrough_WT
6415  - name: parallel_WT
6416  - name: parallel_compatibility_WT
6417  - name: concurrency_WT
6418  - name: concurrency_replication_WT
6419  - name: concurrency_sharded_WT
6420  - name: concurrency_simultaneous_WT
6421  - name: replica_sets_WT
6422  - name: replica_sets_auth
6423  - name: replica_sets_jscore_passthrough_WT
6424  - name: master_slave_WT
6425  - name: master_slave_auth
6426  - name: master_slave_jscore_passthrough_WT
6427  - name: sharding_WT
6428  - name: sharding_auth
6429  - name: slow1_WT
6430  - name: serial_run_WT
6431  - name: sharding_jscore_passthrough_WT
6432  - name: ssl
6433  - name: sslSpecial
6434  - name: tool_WT
6435  - name: push
6436    distros:
6437    - ubuntu1604-test
6438
6439- name: ubuntu1604-arm64
6440  display_name: SSL Ubuntu 16.04 arm64
6441  run_on:
6442  - ubuntu1604-arm64-large
6443  batchtime: 1440 # 1 day
6444  expansions:
6445    push_path: linux
6446    push_bucket: downloads.mongodb.org
6447    push_name: linux
6448    push_arch: arm64-ubuntu1604
6449    compile_flags: --ssl MONGO_DISTMOD=ubuntu1604 -j$(grep -c ^processor /proc/cpuinfo) --release CCFLAGS="-march=armv8-a+crc -mtune=generic" --variables-files=etc/scons/mongodbtoolchain_gcc.vars
6450    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
6451    max_jobs: 8 # Avoid starting too many mongod's on ARM test servers
6452    test_flags: --excludeWithAnyTags=requires_mmapv1
6453    has_packages: true
6454    packager_script: packager.py
6455    packager_arch: arm64
6456    packager_distro: ubuntu1604
6457    repo_edition: org
6458    tooltags: "ssl"
6459    build_mongoreplay: true
6460    multiversion_platform: ubuntu1604
6461    multiversion_architecture: arm64
6462    multiversion_edition: targeted
6463  tasks:
6464  - name: compile
6465  - name: compile_all
6466  - name: dbtest_WT
6467  - name: jsCore_WT
6468  - name: push
6469    distros:
6470    - ubuntu1604-test
6471
6472- name: enterprise-linux-64-amazon-ami
6473  display_name: "Enterprise Amazon Linux"
6474  modules:
6475  - enterprise
6476  run_on:
6477  - linux-64-amzn-test
6478  batchtime: 1440 # 1 day
6479  expansions:
6480    push_path: linux
6481    push_bucket: downloads.10gen.com
6482    push_name: linux
6483    push_arch: x86_64-enterprise-amzn64
6484    compile_flags: --ssl MONGO_DISTMOD=amzn64 --release -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
6485    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
6486    has_packages: true
6487    packager_script: packager-enterprise.py
6488    packager_arch: x86_64
6489    packager_distro: amazon
6490    repo_edition: enterprise
6491    use_scons_cache: true
6492    tooltags: "ssl sasl"
6493    build_mongoreplay: true
6494  tasks:
6495  - name: compile
6496    distros:
6497    - linux-64-amzn-build
6498  - name: compile_all
6499    distros:
6500    - linux-64-amzn-build
6501  - name: aggregation_auth
6502  - name: aggregation_WT
6503  - name: audit_WT
6504  - name: auth_WT
6505  - name: auth_audit_WT
6506  - name: dbtest_WT
6507  - name: ese_WT
6508  - name: failpoints_auth
6509  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
6510  - name: jsCore_WT
6511  - name: jsCore_WT_ese
6512  - name: jsCore_auth
6513  - name: jsCore_decimal_WT
6514  - name: jstestfuzz_WT
6515  - name: jstestfuzz_concurrent_WT
6516  - name: jstestfuzz_concurrent_replication_WT
6517  - name: jstestfuzz_concurrent_sharded_WT
6518  - name: jstestfuzz_replication_WT
6519  - name: jstestfuzz_sharded_WT
6520  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
6521  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
6522  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
6523  - name: noPassthrough_WT
6524  - name: noPassthroughWithMongod_WT
6525  - name: bulk_gle_passthrough_WT
6526  - name: replica_sets_auth
6527  - name: replica_sets_WT_ese
6528  - name: master_slave_auth
6529  - name: master_slave_WT
6530  - name: powercycle_WT
6531  - name: sasl
6532  - name: sharding_auth
6533  - name: sharding_auth_audit_WT
6534  - name: sharding_WT_ese
6535  - name: slow1_WT
6536  - name: serial_run_WT
6537  - name: sharded_collections_jscore_passthrough_WT
6538  - name: sharding_jscore_passthrough_WT
6539  - name: sharding_jscore_op_query_passthrough_WT
6540  - name: sharding_jscore_passthrough_wire_ops_WT
6541  - name: snmp_WT
6542  - name: ssl
6543  - name: sslSpecial
6544  - name: package
6545    distros:
6546    - ubuntu1604-packer
6547  - name: push
6548    distros:
6549    - linux-64-amzn-small
6550
6551- name: amazon
6552  display_name: SSL Amazon Linux
6553  run_on:
6554  - linux-64-amzn-test
6555  batchtime: 1440 # 1 day
6556  expansions:
6557    push_path: linux
6558    push_bucket: downloads.mongodb.org
6559    push_name: linux
6560    push_arch: x86_64-amazon
6561    compile_flags: --ssl MONGO_DISTMOD=amazon -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
6562    multiversion_platform: amzn64
6563    multiversion_edition: targeted
6564    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
6565    has_packages: true
6566    packager_script: packager.py
6567    packager_arch: x86_64
6568    packager_distro: amazon
6569    repo_edition: org
6570    use_scons_cache: true
6571    tooltags: "ssl"
6572    build_mongoreplay: true
6573  tasks:
6574  - name: compile
6575    distros:
6576    - linux-64-amzn-build
6577  - name: compile_all
6578    distros:
6579    - linux-64-amzn-build
6580  - name: aggregation_WT
6581  - name: aggregation_auth
6582  - name: auth_WT
6583  - name: dbtest_WT
6584  - name: disk_WT
6585  - name: failpoints
6586  - name: failpoints_auth
6587  - name: gle_auth_WT
6588  - name: gle_auth_write_cmd_WT
6589  - name: gle_auth_basics_passthrough_WT
6590  - name: gle_auth_basics_passthrough_write_cmd_WT
6591  - name: sharding_gle_auth_basics_passthrough_WT
6592  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
6593  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
6594  - name: jsCore_WT
6595  - name: jsCore_auth
6596  - name: jsCore_compatibility_WT
6597  - name: jsCore_decimal_WT
6598  - name: jstestfuzz_WT
6599  - name: jstestfuzz_concurrent_WT
6600  - name: jstestfuzz_concurrent_replication_WT
6601  - name: jstestfuzz_concurrent_sharded_WT
6602  - name: jstestfuzz_replication_WT
6603  - name: jstestfuzz_sharded_WT
6604  - name: mongosTest
6605  - name: multiversion_WT
6606  - name: noPassthrough_WT
6607  - name: noPassthroughWithMongod_WT
6608  - name: bulk_gle_passthrough_WT
6609  - name: parallel_WT
6610  - name: parallel_compatibility_WT
6611  - name: concurrency_WT
6612  - name: concurrency_replication_WT
6613  - name: concurrency_sharded_WT
6614  - name: concurrency_simultaneous_WT
6615  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
6616  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
6617  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
6618  - name: replica_sets_WT
6619  - name: replica_sets_auth
6620  - name: replica_sets_jscore_passthrough_WT
6621  - name: master_slave_WT
6622  - name: master_slave_auth
6623  - name: master_slave_jscore_passthrough_WT
6624  - name: sharding_WT
6625  - name: sharding_auth
6626  - name: sharding_last_stable_mongos_and_mixed_shards
6627  - name: slow1_WT
6628  - name: serial_run_WT
6629  - name: sharded_collections_jscore_passthrough_WT
6630  - name: sharding_jscore_passthrough_WT
6631  - name: sharding_jscore_op_query_passthrough_WT
6632  - name: sharding_jscore_passthrough_wire_ops_WT
6633  - name: ssl
6634  - name: sslSpecial
6635  - name: tool_WT
6636  - name: package
6637    distros:
6638    - ubuntu1604-packer
6639  - name: push
6640    distros:
6641    - linux-64-amzn-small
6642
6643- name: enterprise-amazon2
6644  display_name: "Enterprise Amazon Linux 2"
6645  modules:
6646  - enterprise
6647  run_on:
6648  - amazon2-test
6649  batchtime: 1440 # 1 day
6650  expansions:
6651    test_flags: >-
6652      --excludeWithAnyTags=requires_mmapv1
6653      --excludeWithAnyTags=SERVER-34286
6654    push_path: linux
6655    push_bucket: downloads.10gen.com
6656    push_name: linux
6657    push_arch: x86_64-enterprise-amazon2
6658    compile_flags: --ssl MONGO_DISTMOD=amazon2 --release -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
6659    # We invoke SCons using --jobs = (# of CPUs / 4) to avoid causing out of memory errors due to
6660    # spawning a large number of linker processes.
6661    num_scons_link_jobs_available: $(( $(grep -c ^processor /proc/cpuinfo) / 4 ))
6662    has_packages: true
6663    packager_script: packager-enterprise.py
6664    packager_arch: x86_64
6665    packager_distro: amazon2
6666    repo_edition: enterprise
6667    scons_cache_scope: shared
6668    tooltags: "ssl sasl"
6669    build_mongoreplay: true
6670  tasks:
6671  - name: compile
6672    distros:
6673    - amazon2-large
6674  - name: compile_all
6675    distros:
6676    - amazon2-large
6677  - name: aggregation_auth
6678  - name: aggregation_WT
6679  - name: audit_WT
6680  - name: auth_WT
6681  - name: auth_audit_WT
6682  - name: dbtest_WT
6683  - name: ese_WT
6684  - name: failpoints_auth
6685  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
6686  - name: jsCore_WT
6687  - name: jsCore_WT_ese
6688  - name: jsCore_auth
6689  - name: jsCore_decimal_WT
6690  - name: jstestfuzz_WT
6691  - name: jstestfuzz_concurrent_WT
6692  - name: jstestfuzz_concurrent_replication_WT
6693  - name: jstestfuzz_concurrent_sharded_WT
6694  - name: jstestfuzz_replication_WT
6695  - name: jstestfuzz_sharded_WT
6696  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
6697  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
6698  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
6699  - name: noPassthrough_WT
6700  - name: noPassthroughWithMongod_WT
6701  - name: bulk_gle_passthrough_WT
6702  - name: replica_sets_auth
6703  - name: replica_sets_WT_ese
6704  - name: master_slave_auth
6705  - name: master_slave_WT
6706  - name: powercycle_WT
6707  - name: sasl
6708  - name: sharding_auth
6709  - name: sharding_auth_audit_WT
6710  - name: sharding_WT_ese
6711  - name: slow1_WT
6712  - name: serial_run_WT
6713  - name: sharded_collections_jscore_passthrough_WT
6714  - name: sharding_jscore_passthrough_WT
6715  - name: sharding_jscore_op_query_passthrough_WT
6716  - name: sharding_jscore_passthrough_wire_ops_WT
6717  - name: snmp_WT
6718  - name: ssl
6719  - name: sslSpecial
6720  - name: package
6721    distros:
6722    - ubuntu1604-packer
6723  - name: push
6724    distros:
6725    - amazon2-small
6726
6727- name: amazon2
6728  display_name: SSL Amazon Linux 2
6729  run_on:
6730  - amazon2-test
6731  batchtime: 1440 # 1 day
6732  expansions:
6733    test_flags: >-
6734      --excludeWithAnyTags=requires_mmapv1
6735      --excludeWithAnyTags=SERVER-34286
6736    push_path: linux
6737    push_bucket: downloads.mongodb.org
6738    push_name: linux
6739    push_arch: x86_64-amazon2
6740    compile_flags: --ssl MONGO_DISTMOD=amazon2 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
6741    # We invoke SCons using --jobs = (# of CPUs / 4) to avoid causing out of memory errors due to
6742    # spawning a large number of linker processes.
6743    num_scons_link_jobs_available: $(( $(grep -c ^processor /proc/cpuinfo) / 4 ))
6744    multiversion_platform: amazon
6745    multiversion_edition: targeted
6746    has_packages: true
6747    packager_script: packager.py
6748    packager_arch: x86_64
6749    packager_distro: amazon2
6750    repo_edition: org
6751    scons_cache_scope: shared
6752    tooltags: "ssl"
6753    build_mongoreplay: true
6754  tasks:
6755  - name: compile
6756    distros:
6757    - amazon2-large
6758    distros:
6759    - amazon2-large
6760  - name: aggregation_WT
6761  - name: aggregation_auth
6762  - name: auth_WT
6763  - name: dbtest_WT
6764  - name: disk_WT
6765  - name: failpoints
6766  - name: failpoints_auth
6767  - name: gle_auth_WT
6768  - name: gle_auth_write_cmd_WT
6769  - name: gle_auth_basics_passthrough_WT
6770  - name: gle_auth_basics_passthrough_write_cmd_WT
6771  - name: sharding_gle_auth_basics_passthrough_WT
6772  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
6773  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
6774  - name: jsCore_WT
6775  - name: jsCore_auth
6776  - name: jsCore_compatibility_WT
6777  - name: jsCore_decimal_WT
6778  - name: jstestfuzz_WT
6779  - name: jstestfuzz_concurrent_WT
6780  - name: jstestfuzz_concurrent_replication_WT
6781  - name: jstestfuzz_concurrent_sharded_WT
6782  - name: jstestfuzz_replication_WT
6783  - name: jstestfuzz_sharded_WT
6784  - name: mongosTest
6785  - name: multiversion_WT
6786  - name: noPassthrough_WT
6787  - name: noPassthroughWithMongod_WT
6788  - name: bulk_gle_passthrough_WT
6789  - name: parallel_WT
6790  - name: parallel_compatibility_WT
6791  - name: concurrency_WT
6792  - name: concurrency_replication_WT
6793  - name: concurrency_sharded_WT
6794  - name: concurrency_simultaneous_WT
6795  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
6796  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
6797  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
6798  - name: replica_sets_WT
6799  - name: replica_sets_auth
6800  - name: replica_sets_jscore_passthrough_WT
6801  - name: master_slave_WT
6802  - name: master_slave_auth
6803  - name: master_slave_jscore_passthrough_WT
6804  - name: sharding_WT
6805  - name: sharding_auth
6806  - name: sharding_last_stable_mongos_and_mixed_shards
6807  - name: slow1_WT
6808  - name: serial_run_WT
6809  - name: sharded_collections_jscore_passthrough_WT
6810  - name: sharding_jscore_passthrough_WT
6811  - name: sharding_jscore_op_query_passthrough_WT
6812  - name: sharding_jscore_passthrough_wire_ops_WT
6813  - name: ssl
6814  - name: sslSpecial
6815  - name: tool_WT
6816  - name: package
6817    distros:
6818    - ubuntu1604-packer
6819  - name: push
6820    distros:
6821    - amazon2-small
6822
6823###########################################
6824#         Windows buildvariants           #
6825###########################################
6826
6827- name: windows-64-2k8-debug
6828  display_name: "* Windows 2008R2 DEBUG"
6829  run_on:
6830  - windows-64-vs2015-small
6831  expansions:
6832    platform_decompress: unzip
6833    exe: ".exe"
6834    push_path: win32
6835    push_bucket: downloads.mongodb.org
6836    push_name: win32-debug
6837    push_arch: x86_64-2008plus
6838    content_type: application/zip
6839    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
6840    compile_flags: --dbg=on --opt=on --win-version-min=ws08r2 -j$(( $(grep -c ^processor /proc/cpuinfo) / 2 )) MONGO_DISTMOD=2008plus
6841    # We invoke SCons using --jobs = (# of CPUs / 4) to avoid causing out of memory errors due to
6842    # spawning a large number of linker processes.
6843    num_scons_compile_all_jobs_available: $(( $(grep -c ^processor /proc/cpuinfo) / 4 ))
6844    python: python
6845    ext: zip
6846    use_scons_cache: true
6847  tasks:
6848  - name: compile
6849    distros:
6850    - windows-64-vs2015-large
6851  - name: compile_all
6852    distros:
6853    - windows-64-vs2015-large
6854  - name: aggregation_WT
6855  - name: aggregation_facet_unwind_passthrough_WT
6856  - name: aggregation_read_concern_majority_passthrough_WT
6857  - name: aggregation_sharded_collections_passthrough_WT
6858  - name: auth_WT
6859  - name: causally_consistent_jscore_passthrough_WT
6860  - name: causally_consistent_jscore_passthrough_auth_WT
6861  - name: sharded_causally_consistent_jscore_passthrough_WT
6862  - name: change_streams_WT
6863  - name: change_streams_mongos_passthrough_WT
6864  - name: change_streams_mongos_sessions_passthrough_WT
6865  - name: change_streams_sharded_collections_passthrough_WT
6866  - name: dbtest_WT
6867  - name: disk_WT
6868  - name: failpoints
6869  - name: integration_tests_standalone
6870  - name: integration_tests_replset
6871  - name: integration_tests_sharded
6872  - name: jsCore_WT
6873  - name: jsCore_compatibility_WT
6874  - name: jsCore_decimal_WT
6875  - name: jsonSchema
6876  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
6877  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
6878  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
6879  - name: master_slave_WT
6880  - name: master_slave_jscore_passthrough_WT
6881  - name: mongosTest
6882  - name: noPassthrough_WT
6883  - name: noPassthroughWithMongod_WT
6884  - name: rollback_fuzzer_WT
6885  - name: bulk_gle_passthrough_WT
6886  - name: parallel_WT
6887  - name: parallel_compatibility_WT
6888    # Some concurrency workloads require a lot of memory, so we use machines
6889    # with more RAM for these suites.
6890  - name: concurrency_WT
6891    distros:
6892    - windows-64-vs2015-large
6893  - name: concurrency_replication_WT
6894    distros:
6895    - windows-64-vs2015-large
6896  - name: concurrency_sharded_WT
6897    distros:
6898    - windows-64-vs2015-large
6899  - name: concurrency_sharded_causal_consistency_WT
6900    distros:
6901    - windows-64-vs2015-large
6902  - name: concurrency_sharded_causal_consistency_and_balancer_WT
6903    distros:
6904    - windows-64-vs2015-large
6905  - name: concurrency_sharded_with_stepdowns_WT
6906    distros:
6907    - windows-64-vs2015-large
6908  - name: concurrency_sharded_with_stepdowns_and_balancer_WT
6909    distros:
6910    - windows-64-vs2015-large
6911  - name: concurrency_simultaneous_WT
6912    distros:
6913    - windows-64-vs2015-large
6914  - name: read_concern_linearizable_passthrough_WT
6915    distros:
6916    - windows-64-vs2015-large
6917  - name: read_concern_majority_passthrough_WT
6918    distros:
6919    - windows-64-vs2015-large
6920  - name: read_only_WT
6921  - name: read_only_sharded_WT
6922  - name: replica_sets_WT
6923    distros:
6924    - windows-64-vs2015-large
6925  - name: replica_sets_jscore_passthrough_WT
6926    distros:
6927    - windows-64-vs2015-large
6928  - name: replica_sets_initsync_jscore_passthrough_WT
6929    distros:
6930    - windows-64-vs2015-large
6931  - name: replica_sets_initsync_static_jscore_passthrough_WT
6932    distros:
6933    - windows-64-vs2015-large
6934  - name: replica_sets_resync_static_jscore_passthrough_WT
6935    distros:
6936    - windows-64-vs2015-large
6937  - name: replica_sets_kill_primary_jscore_passthrough_WT
6938    distros:
6939    - windows-64-vs2015-large
6940  - name: replica_sets_kill_secondaries_jscore_passthrough_WT
6941    distros:
6942    - windows-64-vs2015-large
6943  - name: replica_sets_jscore_fcv34_passthrough_WT
6944    distros:
6945    - windows-64-vs2015-large
6946  - name: retryable_writes_jscore_passthrough_WT
6947    distros:
6948    - windows-64-vs2015-large
6949  - name: retryable_writes_jscore_stepdown_passthrough_WT
6950    distros:
6951    - windows-64-vs2015-large
6952  - name: session_jscore_passthrough_WT
6953  - name: sharding_WT
6954    distros:
6955    - windows-64-vs2015-large
6956  - name: tool_WT
6957  - name: write_concern_majority_passthrough_WT
6958    distros:
6959    - windows-64-vs2015-large
6960
6961- name: enterprise-windows-64-2k8
6962  display_name: "! Enterprise Windows 2008R2"
6963  modules:
6964  - enterprise
6965  run_on:
6966  - windows-64-vs2015-small
6967  expansions:
6968    platform_decompress: unzip
6969    exe: ".exe"
6970    push_path: win32
6971    push_bucket: downloads.10gen.com
6972    push_name: win32
6973    push_arch: x86_64-enterprise-windows-64
6974    msi_target: msi
6975    content_type: application/zip
6976    compile_flags: --release --ssl MONGO_DISTMOD=windows-64 CPPPATH="c:/openssl/include c:/sasl/include c:/snmp/include c:/curl/include" LIBPATH="c:/openssl/lib c:/sasl/lib c:/snmp/lib c:/curl/lib" -j$(( $(grep -c ^processor /proc/cpuinfo) / 2 )) --dynamic-windows --win-version-min=ws08r2
6977    # We invoke SCons using --jobs = (# of CPUs / 4) to avoid causing out of memory errors due to
6978    # spawning a large number of linker processes.
6979    num_scons_compile_all_jobs_available: $(( $(grep -c ^processor /proc/cpuinfo) / 4 ))
6980    python: python
6981    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
6982    ext: zip
6983    use_scons_cache: true
6984    multiversion_platform: windows
6985    multiversion_edition: enterprise
6986    tooltags: "ssl sasl"
6987    build_mongoreplay: false
6988  tasks:
6989  - name: compile
6990    distros:
6991    - windows-64-vs2015-large
6992  - name: compile_all
6993    distros:
6994    - windows-64-vs2015-large
6995  - name: compile_benchmarks
6996    distros:
6997    - windows-64-vs2015-large
6998  - name: burn_in_tests
6999  - name: audit_WT
7000  - name: auth_audit_WT
7001  - name: benchmarks_orphaned
7002  - name: benchmarks_sharding
7003  - name: dbtest_WT
7004  - name: ese_WT
7005  - name: external_auth_WT
7006  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
7007  - name: jsCore_WT
7008  - name: jsCore_WT_ese
7009  - name: jsCore_decimal_WT
7010  - name: sharding_WT_ese
7011    distros:
7012    - windows-64-vs2015-large
7013  - name: jsCore_auth
7014  - name: jstestfuzz_WT
7015  - name: jstestfuzz_concurrent_WT
7016  - name: jstestfuzz_concurrent_replication_WT
7017  - name: jstestfuzz_concurrent_sharded_WT
7018  - name: jstestfuzz_replication_WT
7019  - name: jstestfuzz_sharded_WT
7020  - name: replica_sets_auth
7021  - name: replica_sets_WT_ese
7022  - name: sasl
7023  - name: sharding_auth
7024    distros:
7025    - windows-64-vs2015-large
7026  - name: sharding_auth_audit_WT
7027    distros:
7028    - windows-64-vs2015-large
7029  - name: snmp_WT
7030  - name: ssl
7031  - name: sslSpecial
7032  - name: push
7033    distros:
7034    - rhel70-small
7035
7036- name: enterprise-windows-64-2k8-async
7037  display_name: "~ Enterprise Windows 2008R2 async"
7038  modules:
7039  - enterprise
7040  run_on:
7041  - windows-64-vs2015-small
7042  stepback: true
7043  batchtime: 1440 # 1 day
7044  expansions:
7045    platform_decompress: unzip
7046    exe: ".exe"
7047    push_path: win32
7048    push_bucket: downloads.10gen.com
7049    push_name: win32
7050    push_arch: x86_64-enterprise-windows-64
7051    msi_target: msi
7052    content_type: application/zip
7053    compile_flags: --release --ssl MONGO_DISTMOD=windows-64 CPPPATH="c:/openssl/include c:/sasl/include c:/snmp/include c:/curl/include" LIBPATH="c:/openssl/lib c:/sasl/lib c:/snmp/lib c:/curl/lib" -j$(( $(grep -c ^processor /proc/cpuinfo) / 2 )) --dynamic-windows --win-version-min=ws08r2
7054    # We invoke SCons using --jobs = (# of CPUs / 4) to avoid causing out of memory errors due to
7055    # spawning a large number of linker processes.
7056    num_scons_compile_all_jobs_available: $(( $(grep -c ^processor /proc/cpuinfo) / 4 ))
7057    python: python
7058    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
7059    ext: zip
7060    use_scons_cache: true
7061    test_flags: --serviceExecutor=adaptive
7062    tooltags: "ssl sasl"
7063    build_mongoreplay: false
7064  tasks:
7065  - name: compile
7066    distros:
7067    - windows-64-vs2015-large
7068  - name: jsCore_WT
7069  - name: replica_sets_WT
7070  - name: sharding_WT
7071
7072- name: windows-64-2k8-ssl-legacy-transportlayer
7073  display_name: SSL Windows 2008R2 Legacy Transport
7074  run_on:
7075  - windows-64-vs2015-small
7076  batchtime: 1440 # 1 day
7077  expansions:
7078    platform_decompress: unzip
7079    exe: ".exe"
7080    push_path: win32
7081    push_bucket: downloads.mongodb.org
7082    push_name: win32
7083    push_arch: x86_64-2008plus-ssl
7084    multiversion_platform: windows_x86_64-2008plus-ssl
7085    msi_target: msi
7086    content_type: application/zip
7087    compile_flags: --release --ssl MONGO_DISTMOD=2008plus-ssl CPPPATH="c:/openssl/include" LIBPATH="c:/openssl/lib" -j$(( $(grep -c ^processor /proc/cpuinfo) / 2 )) --dynamic-windows --win-version-min=ws08r2
7088    # We invoke SCons using --jobs = (# of CPUs / 4) to avoid causing out of memory errors due to
7089    # spawning a large number of linker processes.
7090    num_scons_compile_all_jobs_available: $(( $(grep -c ^processor /proc/cpuinfo) / 4 ))
7091    python: python
7092    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
7093    ext: zip
7094    use_scons_cache: true
7095    test_flags: --transportLayer=legacy --excludeWithAnyTags=cannot_run_with_legacy_transport
7096    tooltags: "ssl sasl"
7097    build_mongoreplay: false
7098  tasks:
7099  - name: compile
7100    distros:
7101    - windows-64-vs2015-large
7102  - name: compile_all
7103    distros:
7104    - windows-64-vs2015-large
7105  - name: aggregation_WT
7106  - name: aggregation_read_concern_majority_passthrough_WT
7107  - name: aggregation_sharded_collections_passthrough_WT
7108  - name: auth_WT
7109  - name: bulk_gle_passthrough_WT
7110  - name: concurrency_WT
7111  - name: concurrency_replication_WT
7112  - name: concurrency_sharded_WT
7113  - name: concurrency_simultaneous_WT
7114  - name: dbtest_WT
7115  - name: disk_WT
7116  - name: failpoints
7117  - name: gle_auth_WT
7118  - name: gle_auth_basics_passthrough_WT
7119  - name: gle_auth_basics_passthrough_write_cmd_WT
7120  - name: gle_auth_write_cmd_WT
7121  - name: jsCore_WT
7122  - name: jsCore_compatibility_WT
7123  - name: jsCore_decimal_WT
7124  - name: jsonSchema
7125  - name: jstestfuzz_WT
7126  - name: jstestfuzz_concurrent_WT
7127  - name: jstestfuzz_concurrent_replication_WT
7128  - name: jstestfuzz_concurrent_sharded_WT
7129  - name: jstestfuzz_replication_WT
7130  - name: jstestfuzz_sharded_WT
7131  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
7132  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
7133  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
7134  - name: master_slave_WT
7135  - name: master_slave_jscore_passthrough_WT
7136  - name: mongosTest
7137  - name: multiversion_WT
7138  - name: multiversion_auth
7139  - name: multiversion_multistorage_engine
7140  - name: noPassthroughWithMongod_WT
7141  - name: noPassthrough_WT
7142  - name: parallel_WT
7143  - name: parallel_compatibility_WT
7144  - name: read_concern_linearizable_passthrough_WT
7145  - name: read_concern_majority_passthrough_WT
7146  - name: replica_sets_WT
7147  - name: replica_sets_jscore_passthrough_WT
7148  - name: serial_run_WT
7149  - name: sharded_collections_jscore_passthrough_WT
7150  - name: sharding_WT
7151    distros:
7152    - windows-64-vs2015-large
7153  - name: sharding_gle_auth_basics_passthrough_WT
7154  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
7155  - name: sharding_jscore_passthrough_WT
7156  - name: sharding_jscore_op_query_passthrough_WT
7157  - name: sharding_jscore_passthrough_wire_ops_WT
7158  - name: sharding_last_stable_mongos_and_mixed_shards
7159    distros:
7160    - windows-64-vs2015-large
7161  - name: slow1_WT
7162  - name: ssl
7163  - name: sslSpecial
7164  - name: tool_WT
7165  - name: write_concern_majority_passthrough_WT
7166
7167- name: enterprise-windows-64-2k8-inmem
7168  display_name: Enterprise Windows 2008R2 (inMemory)
7169  modules:
7170  - enterprise
7171  run_on:
7172  - windows-64-vs2015-small
7173  batchtime: 1440 # 1 day
7174  expansions:
7175    platform_decompress: unzip
7176    exe: ".exe"
7177    push_path: win32
7178    push_bucket: downloads.10gen.com
7179    push_name: win32
7180    push_arch: x86_64-enterprise-windows-64
7181    msi_target: msi
7182    content_type: application/zip
7183    compile_flags: --release --ssl MONGO_DISTMOD=windows-64 CPPPATH="c:/openssl/include c:/sasl/include c:/snmp/include c:/curl/include" LIBPATH="c:/openssl/lib c:/sasl/lib c:/snmp/lib c:/curl/lib" -j$(( $(grep -c ^processor /proc/cpuinfo) / 2 )) --dynamic-windows --win-version-min=ws08r2
7184    # We invoke SCons using --jobs = (# of CPUs / 4) to avoid causing out of memory errors due to
7185    # spawning a large number of linker processes.
7186    num_scons_compile_all_jobs_available: $(( $(grep -c ^processor /proc/cpuinfo) / 4 ))
7187    python: python
7188    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
7189    test_flags: --storageEngine=inMemory --excludeWithAnyTags=requires_persistence,requires_journaling
7190    ext: zip
7191    use_scons_cache: true
7192    multiversion_platform: windows
7193    multiversion_edition: enterprise
7194    tooltags: "ssl sasl"
7195    build_mongoreplay: false
7196  tasks:
7197  - name: compile
7198    distros:
7199    - windows-64-vs2015-large
7200  - name: compile_all
7201    distros:
7202    - windows-64-vs2015-large
7203  - name: audit
7204  - name: auth_audit
7205  - name: dbtest
7206  - name: concurrency
7207    distros:
7208    - windows-64-vs2015-large  # Some workloads require a lot of memory, use a bigger machine for this suite.
7209  - name: concurrency_replication
7210  - name: concurrency_sharded
7211  - name: concurrency_simultaneous
7212  - name: jsCore # TODO SERVER-32036: Replace with jsCore_WT when jsCore_auth depends on jsCore_WT.
7213  - name: jsCore_auth
7214  - name: jstestfuzz
7215  - name: jstestfuzz_concurrent_WT
7216  - name: jstestfuzz_concurrent_replication_WT
7217  - name: jstestfuzz_concurrent_sharded_WT
7218  - name: jstestfuzz_replication_WT
7219  - name: jstestfuzz_sharded_WT
7220  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
7221  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
7222  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
7223  - name: read_concern_linearizable_passthrough
7224  - name: replica_sets_auth
7225  - name: replica_sets_jscore_passthrough
7226  - name: master_slave_jscore_passthrough
7227  - name: sasl
7228  - name: sharding_auth
7229    distros:
7230    - windows-64-vs2015-large
7231  - name: sharding_auth_audit_WT
7232    distros:
7233    - windows-64-vs2015-large
7234  - name: snmp
7235  - name: ssl
7236  - name: sslSpecial
7237
7238- name: windows-64-2k8-ssl
7239  display_name: SSL Windows 2008R2
7240  run_on:
7241  - windows-64-vs2015-small
7242  batchtime: 1440 # 1 day
7243  expansions:
7244    platform_decompress: unzip
7245    exe: ".exe"
7246    push_path: win32
7247    push_bucket: downloads.mongodb.org
7248    push_name: win32
7249    push_arch: x86_64-2008plus-ssl
7250    multiversion_platform: windows_x86_64-2008plus-ssl
7251    msi_target: msi
7252    content_type: application/zip
7253    compile_flags: --release --ssl MONGO_DISTMOD=2008plus-ssl CPPPATH="c:/openssl/include" LIBPATH="c:/openssl/lib" -j$(( $(grep -c ^processor /proc/cpuinfo) / 2 )) --dynamic-windows --win-version-min=ws08r2
7254    # We invoke SCons using --jobs = (# of CPUs / 4) to avoid causing out of memory errors due to
7255    # spawning a large number of linker processes.
7256    num_scons_compile_all_jobs_available: $(( $(grep -c ^processor /proc/cpuinfo) / 4 ))
7257    python: python
7258    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
7259    ext: zip
7260    use_scons_cache: true
7261    tooltags: "ssl"
7262    build_mongoreplay: false
7263  tasks:
7264  - name: compile
7265    distros:
7266    - windows-64-vs2015-large
7267  - name: compile_all
7268    distros:
7269    - windows-64-vs2015-large
7270  - name: aggregation_WT
7271  - name: aggregation_read_concern_majority_passthrough_WT
7272  - name: aggregation_sharded_collections_passthrough_WT
7273  - name: auth_WT
7274  - name: bulk_gle_passthrough_WT
7275  - name: concurrency_WT
7276  - name: concurrency_replication_WT
7277  - name: concurrency_sharded_WT
7278  - name: concurrency_simultaneous_WT
7279  - name: dbtest_WT
7280  - name: disk_WT
7281  - name: failpoints
7282  - name: gle_auth_WT
7283  - name: gle_auth_basics_passthrough_WT
7284  - name: gle_auth_basics_passthrough_write_cmd_WT
7285  - name: gle_auth_write_cmd_WT
7286  - name: jsCore_WT
7287  - name: jsCore_compatibility_WT
7288  - name: jsCore_decimal_WT
7289  - name: jsonSchema
7290  - name: jstestfuzz_WT
7291  - name: jstestfuzz_concurrent_WT
7292  - name: jstestfuzz_concurrent_replication_WT
7293  - name: jstestfuzz_concurrent_replication_session_WT
7294  - name: jstestfuzz_concurrent_sharded_WT
7295  - name: jstestfuzz_concurrent_sharded_causal_consistency_WT
7296  - name: jstestfuzz_concurrent_sharded_continuous_stepdown
7297  - name: jstestfuzz_concurrent_sharded_session_WT
7298  - name: jstestfuzz_replication_WT
7299  - name: jstestfuzz_replication_session_WT
7300  - name: jstestfuzz_sharded_WT
7301  - name: jstestfuzz_sharded_causal_consistency_WT
7302  - name: jstestfuzz_sharded_continuous_stepdown
7303  - name: jstestfuzz_sharded_session_WT
7304  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
7305  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
7306  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
7307  - name: master_slave_WT
7308  - name: master_slave_jscore_passthrough_WT
7309  - name: mongosTest
7310  - name: multiversion_WT
7311  - name: multiversion_auth
7312  - name: multiversion_multistorage_engine
7313  - name: noPassthroughWithMongod_WT
7314  - name: noPassthrough_WT
7315  - name: parallel_WT
7316  - name: parallel_compatibility_WT
7317  # - name: powercycle_WT
7318  # - name: powercycle_fcv3.4_WT
7319  # - name: powercycle_kill_mongod
7320  # - name: powercycle_replication_WT
7321  # - name: powercycle_syncdelay_WT
7322  - name: read_concern_linearizable_passthrough_WT
7323  - name: read_concern_majority_passthrough_WT
7324  - name: replica_sets_WT
7325  - name: replica_sets_jscore_passthrough_WT
7326  - name: serial_run_WT
7327  - name: sharded_collections_jscore_passthrough_WT
7328  - name: sharding_WT
7329    distros:
7330    - windows-64-vs2015-large
7331  - name: sharding_gle_auth_basics_passthrough_WT
7332  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
7333  - name: sharding_jscore_passthrough_WT
7334  - name: sharding_jscore_op_query_passthrough_WT
7335  - name: sharding_jscore_passthrough_wire_ops_WT
7336  - name: sharding_last_stable_mongos_and_mixed_shards
7337    distros:
7338    - windows-64-vs2015-large
7339  - name: slow1_WT
7340  - name: ssl
7341  - name: sslSpecial
7342  - name: tool_WT
7343  - name: update_fuzzer_WT
7344  - name: update_fuzzer_replication_WT
7345  - name: write_concern_majority_passthrough_WT
7346  - name: push
7347    distros:
7348    - rhel70-small
7349
7350- name: enterprise-windows-64-2k8-debug-unoptimized
7351  display_name: Enterprise Windows 2008R2 DEBUG (Unoptimized)
7352  modules:
7353  - enterprise
7354  run_on:
7355  - windows-64-vs2015-small
7356  batchtime: 1440 # 1 day
7357  expansions:
7358    platform_decompress: unzip
7359    exe: ".exe"
7360    content_type: application/zip
7361    compile_flags: --dbg=on --opt=off --ssl MONGO_DISTMOD=2008plus CPPPATH="c:/openssl/include c:/sasl/include c:/snmp/include c:/curl/include" LIBPATH="c:/openssl/lib c:/sasl/lib c:/snmp/lib c:/curl/lib" -j$(( $(grep -c ^processor /proc/cpuinfo) / 2 )) --dynamic-windows --win-version-min=ws08r2
7362    # We invoke SCons using --jobs = (# of CPUs / 4) to avoid causing out of memory errors due to
7363    # spawning a large number of linker processes.
7364    num_scons_compile_all_jobs_available: $(( $(grep -c ^processor /proc/cpuinfo) / 4 ))
7365    python: python
7366    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
7367    ext: zip
7368    use_scons_cache: true
7369    tooltags: "ssl sasl"
7370    build_mongoreplay: false
7371  tasks:
7372  # This variant tests that unoptimized, DEBUG mongos and mongod binaries can run on Windows.
7373  # It has a minimal amount of tasks because unoptimized builds are slow, which causes
7374  # timing-sensitive tests to fail.
7375  - name: compile
7376    distros:
7377    - windows-64-vs2015-large
7378  - name: audit_WT
7379  # Do not add more tasks to this list.
7380
7381###########################################
7382#             OSX buildvariants           #
7383###########################################
7384
7385- name: osx-1010-ssl
7386  display_name: SSL OS X 10.10
7387  run_on:
7388  - macos-1012
7389  batchtime: 1440 # 1 day
7390  expansions:
7391    test_flags: --excludeWithAnyTags=requires_ssl_mongo_tools
7392    push_path: osx
7393    push_bucket: downloads.mongodb.org
7394    push_name: osx-ssl
7395    push_arch: x86_64
7396    compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app
7397    compile_flags: --ssl -j$(sysctl -n hw.logicalcpu) --release --libc++ CCFLAGS="-mmacosx-version-min=10.10" LINKFLAGS="-mmacosx-version-min=10.10" LIBPATH="$PWD/openssl_install_dir/lib" CPPPATH="$PWD/openssl_install_dir/include"
7398    multiversion_platform: osx-ssl
7399    num_jobs_available: 1
7400    tooltags: "ssl"
7401    build_mongoreplay: true
7402    build_openssl: true
7403    openssl_config_flags: "-mmacosx-version-min=10.10"
7404    openssl_make_flags: "-j$(sysctl -n hw.logicalcpu)"
7405  tasks:
7406  - name: compile
7407  - name: compile_all
7408  - name: aggregation_WT
7409  - name: aggregation_read_concern_majority_passthrough_WT
7410  - name: aggregation_sharded_collections_passthrough_WT
7411  - name: auth_WT
7412  - name: bulk_gle_passthrough_WT
7413  - name: causally_consistent_jscore_passthrough_WT
7414  - name: causally_consistent_jscore_passthrough_auth_WT
7415  - name: sharded_causally_consistent_jscore_passthrough_WT
7416  - name: change_streams_WT
7417  - name: change_streams_mongos_passthrough_WT
7418  - name: change_streams_mongos_sessions_passthrough_WT
7419  - name: change_streams_sharded_collections_passthrough_WT
7420  - name: concurrency_WT
7421  - name: concurrency_replication_WT
7422  - name: concurrency_sharded_WT
7423  - name: concurrency_sharded_causal_consistency_WT
7424  - name: concurrency_sharded_causal_consistency_and_balancer_WT
7425  - name: concurrency_sharded_with_stepdowns_WT
7426  - name: concurrency_sharded_with_stepdowns_and_balancer_WT
7427  - name: concurrency_simultaneous_WT
7428  - name: dbtest_WT
7429  - name: disk_WT
7430  - name: failpoints
7431  - name: gle_auth_WT
7432  - name: gle_auth_basics_passthrough_WT
7433  - name: gle_auth_basics_passthrough_write_cmd_WT
7434  - name: gle_auth_write_cmd_WT
7435  - name: jsCore_WT
7436  - name: jsCore_compatibility_WT
7437  - name: jsCore_decimal_WT
7438  - name: jstestfuzz_WT
7439  - name: jstestfuzz_concurrent_WT
7440  - name: jstestfuzz_concurrent_replication_WT
7441  - name: jstestfuzz_concurrent_replication_session_WT
7442  - name: jstestfuzz_concurrent_sharded_WT
7443  - name: jstestfuzz_concurrent_sharded_causal_consistency_WT
7444  - name: jstestfuzz_concurrent_sharded_continuous_stepdown
7445  - name: jstestfuzz_concurrent_sharded_session_WT
7446  - name: jstestfuzz_replication_WT
7447  - name: jstestfuzz_replication_session_WT
7448  - name: jstestfuzz_sharded_WT
7449  - name: jstestfuzz_sharded_causal_consistency_WT
7450  - name: jstestfuzz_sharded_continuous_stepdown
7451  - name: jstestfuzz_sharded_session_WT
7452  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
7453  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
7454  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
7455  - name: master_slave_WT
7456  - name: master_slave_jscore_passthrough_WT
7457  - name: mongosTest
7458  - name: noPassthroughWithMongod_WT
7459  - name: noPassthrough_WT
7460  - name: parallel_WT
7461  - name: parallel_compatibility_WT
7462  - name: read_concern_majority_passthrough_WT
7463  - name: replica_sets_WT
7464  - name: replica_sets_jscore_passthrough_WT
7465  - name: replica_sets_kill_primary_jscore_passthrough_WT
7466  - name: replica_sets_kill_secondaries_jscore_passthrough_WT
7467  - name: replica_sets_jscore_fcv34_passthrough_WT
7468  - name: retryable_writes_jscore_passthrough_WT
7469  - name: retryable_writes_jscore_stepdown_passthrough_WT
7470  - name: rollback_fuzzer_WT
7471  - name: serial_run_WT
7472  - name: session_jscore_passthrough_WT
7473  - name: sharded_collections_jscore_passthrough_WT
7474  - name: sharding_gle_auth_basics_passthrough_WT
7475  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
7476  - name: sharding_jscore_passthrough_WT
7477  - name: sharding_jscore_op_query_passthrough_WT
7478  - name: sharding_jscore_passthrough_wire_ops_WT
7479  - name: slow1_WT
7480  - name: ssl
7481  - name: sslSpecial
7482  - name: tool_WT
7483  - name: update_fuzzer_WT
7484  - name: write_concern_majority_passthrough_WT
7485  - name: push
7486    distros:
7487    - rhel70-small
7488
7489- name: osx-1010-debug
7490  display_name: "* OS X 10.10 DEBUG"
7491  run_on:
7492  - macos-1012
7493  expansions:
7494    push_path: osx
7495    push_bucket: downloads.mongodb.org
7496    push_name: osx-debug
7497    push_arch: x86_64
7498    num_jobs_available: 1
7499    compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app
7500    compile_flags: --dbg=on --opt=on -j$(sysctl -n hw.logicalcpu) --libc++ CCFLAGS="-mmacosx-version-min=10.10" LINKFLAGS="-mmacosx-version-min=10.10"
7501  tasks:
7502  - name: compile
7503  - name: compile_all
7504  - name: aggregation_WT
7505  - name: auth_WT
7506  - name: dbtest_WT
7507  - name: disk_WT
7508  - name: failpoints
7509  - name: jsCore_WT
7510  - name: jsCore_compatibility_WT
7511  - name: jsCore_decimal_WT
7512  - name: mongosTest
7513  - name: replica_sets_WT
7514  - name: master_slave_WT
7515  - name: tool_WT
7516
7517- name: enterprise-osx-1010
7518  display_name: Enterprise OS X 10.10
7519  modules:
7520  - enterprise
7521  run_on:
7522  - macos-1012
7523  batchtime: 1440 # 1 day
7524  expansions:
7525    test_flags: --excludeWithAnyTags=requires_ssl_mongo_tools
7526    push_path: osx
7527    push_bucket: downloads.10gen.com
7528    push_name: osx
7529    push_arch: x86_64-enterprise
7530    compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app
7531    compile_flags: --ssl -j$(sysctl -n hw.logicalcpu) --release --libc++ CCFLAGS="-mmacosx-version-min=10.10" LINKFLAGS="-mmacosx-version-min=10.10" LIBPATH="$PWD/openssl_install_dir/lib" CPPPATH="$PWD/openssl_install_dir/include"
7532    num_jobs_available: 1
7533    tooltags: "ssl sasl"
7534    build_mongoreplay: true
7535    multiversion_platform: osx
7536    multiversion_edition: enterprise
7537    build_openssl: true
7538    openssl_config_flags: "-mmacosx-version-min=10.10"
7539    openssl_make_flags: "-j$(sysctl -n hw.logicalcpu)"
7540  tasks:
7541  - name: compile
7542  - name: compile_all
7543  - name: audit_WT
7544  - name: auth_audit_WT
7545  - name: dbtest_WT
7546  - name: ese_WT
7547  - name: jsCore # TODO SERVER-32036: Replace with jsCore_WT when jsCore_auth depends on jsCore_WT.
7548  - name: jsCore_auth
7549  - name: jstestfuzz_WT
7550  - name: jstestfuzz_concurrent_WT
7551  - name: jstestfuzz_concurrent_replication_WT
7552  - name: jstestfuzz_concurrent_sharded_WT
7553  - name: jstestfuzz_replication_WT
7554  - name: jstestfuzz_sharded_WT
7555  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
7556  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
7557  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
7558  - name: replica_sets_auth
7559  - name: sasl
7560  - name: ssl
7561  - name: sslSpecial
7562  - name: push
7563    distros:
7564    - rhel70-small
7565
7566###########################################
7567#          Redhat buildvariants           #
7568###########################################
7569
7570- name: enterprise-rhel-62-64-bit
7571  display_name: "! Enterprise RHEL 6.2"
7572  modules:
7573  - enterprise
7574  run_on:
7575  - rhel62-small
7576  expansions:
7577    push_path: linux
7578    push_bucket: downloads.10gen.com
7579    push_name: linux
7580    push_arch: x86_64-enterprise-rhel62
7581    compile_flags: --ssl MONGO_DISTMOD=rhel62 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
7582    multiversion_platform: rhel62
7583    multiversion_edition: enterprise
7584    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
7585    has_packages: true
7586    packager_script: packager-enterprise.py
7587    packager_arch: x86_64
7588    packager_distro: rhel62
7589    repo_edition: enterprise
7590    use_scons_cache: true
7591    tooltags: "ssl sasl"
7592    build_mongoreplay: true
7593  tasks:
7594  - name: compile
7595    distros:
7596    - rhel62-large
7597  - name: compile_all
7598    distros:
7599    - rhel62-large
7600  - name: compile_benchmarks
7601    distros:
7602    - rhel62-large
7603  - name: lint
7604  - name: lint_fuzzer_sanity_patch
7605  - name: burn_in_tests
7606  - name: rollback_fuzzer_WT
7607  - name: aggregation_WT
7608  - name: aggregation_WT_ese
7609  - name: aggregation_auth
7610  - name: aggregation_facet_unwind_passthrough_WT
7611  - name: aggregation_read_concern_majority_passthrough_WT
7612  - name: aggregation_sharded_collections_passthrough_WT
7613  - name: audit_WT
7614  - name: auth_WT
7615  - name: auth_audit_WT
7616  - name: benchmarks_orphaned
7617    distros:
7618    - centos6-perf
7619  - name: benchmarks_sharding
7620    distros:
7621    - centos6-perf
7622  - name: bulk_gle_passthrough_WT
7623  - name: causally_consistent_jscore_passthrough_WT
7624  - name: causally_consistent_jscore_passthrough_auth_WT
7625  - name: sharded_causally_consistent_jscore_passthrough_WT
7626  - name: change_streams_WT
7627  - name: change_streams_mongos_passthrough_WT
7628  - name: change_streams_mongos_sessions_passthrough_WT
7629  - name: change_streams_secondary_reads_WT
7630  - name: change_streams_sharded_collections_passthrough_WT
7631  - name: concurrency_WT
7632  - name: concurrency_replication_WT
7633  - name: concurrency_sharded_WT
7634  - name: concurrency_sharded_causal_consistency_WT
7635  - name: concurrency_sharded_causal_consistency_and_balancer_WT
7636  - name: concurrency_sharded_with_stepdowns_WT
7637  - name: concurrency_sharded_with_stepdowns_and_balancer_WT
7638  - name: concurrency_simultaneous_WT
7639  - name: dbtest_WT
7640  - name: disk_WT
7641  - name: ese_WT
7642  - name: failpoints
7643  - name: failpoints_auth
7644  - name: gle_auth_WT
7645  - name: gle_auth_basics_passthrough_WT
7646  - name: gle_auth_basics_passthrough_write_cmd_WT
7647  - name: gle_auth_write_cmd_WT
7648  - name: idl_tests
7649  - name: integration_tests_replset
7650  - name: integration_tests_sharded
7651  - name: integration_tests_standalone
7652  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
7653  - name: jsCore_WT
7654  - name: jsCore_WT_ese
7655  - name: jsCore_auth
7656  - name: jsCore_compatibility_WT
7657  - name: jsCore_decimal_WT
7658  - name: jsCore_minimum_batch_size_WT
7659  - name: jsCore_op_query_WT
7660  - name: jsonSchema
7661  - name: jstestfuzz_WT
7662  - name: jstestfuzz_concurrent_WT
7663  - name: jstestfuzz_concurrent_replication_WT
7664  - name: jstestfuzz_concurrent_replication_session_WT
7665  - name: jstestfuzz_concurrent_sharded_WT
7666  - name: jstestfuzz_concurrent_sharded_causal_consistency_WT
7667  - name: jstestfuzz_concurrent_sharded_continuous_stepdown
7668  - name: jstestfuzz_concurrent_sharded_session_WT
7669  - name: jstestfuzz_replication_WT
7670  - name: jstestfuzz_replication_initsync_WT
7671  - name: jstestfuzz_replication_session_WT
7672  - name: jstestfuzz_sharded_WT
7673  - name: jstestfuzz_sharded_causal_consistency_WT
7674  - name: jstestfuzz_sharded_continuous_stepdown
7675  - name: jstestfuzz_sharded_session_WT
7676  - name: logical_session_cache_replication_100ms_refresh_jscore_passthrough_WT
7677  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
7678  - name: logical_session_cache_replication_10sec_refresh_jscore_passthrough_WT
7679  - name: logical_session_cache_replication_default_refresh_jscore_passthrough_WT
7680  - name: logical_session_cache_sharding_100ms_refresh_jscore_passthrough_WT
7681  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
7682  - name: logical_session_cache_sharding_10sec_refresh_jscore_passthrough_WT
7683  - name: logical_session_cache_sharding_default_refresh_jscore_passthrough_WT
7684  - name: logical_session_cache_standalone_100ms_refresh_jscore_passthrough_WT
7685  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
7686  - name: logical_session_cache_standalone_10sec_refresh_jscore_passthrough_WT
7687  - name: logical_session_cache_standalone_default_refresh_jscore_passthrough_WT
7688  - name: master_slave_WT
7689  - name: master_slave_auth
7690  - name: master_slave_jscore_passthrough_WT
7691  - name: mongosTest
7692  - name: multiversion_auth
7693  - name: multiversion_WT
7694  - name: multiversion_multistorage_engine
7695  - name: noPassthroughWithMongod_WT
7696  - name: noPassthrough_WT
7697  - name: parallel_WT
7698  - name: parallel_compatibility_WT
7699  - name: read_concern_linearizable_passthrough_WT
7700    distros:
7701    - rhel62-large
7702  - name: read_concern_majority_passthrough_WT
7703    distros:
7704    - rhel62-large
7705  - name: read_only_WT
7706  - name: read_only_sharded_WT
7707  - name: replica_sets_WT
7708    distros:
7709    - rhel62-large
7710  - name: replica_sets_WT_ese
7711    distros:
7712    - rhel62-large
7713  - name: replica_sets_auth
7714    distros:
7715    - rhel62-large
7716  - name: replica_sets_pv0
7717    distros:
7718    - rhel62-large
7719  - name: replica_sets_rollback_refetch_no_uuid
7720    distros:
7721    - rhel62-large
7722  - name: replica_sets_jscore_passthrough_WT
7723    distros:
7724    - rhel62-large
7725  - name: replica_sets_initsync_jscore_passthrough_WT
7726    distros:
7727    - rhel62-large
7728  - name: replica_sets_initsync_static_jscore_passthrough_WT
7729    distros:
7730    - rhel62-large
7731  - name: replica_sets_resync_static_jscore_passthrough_WT
7732    distros:
7733    - rhel62-large
7734  - name: replica_sets_kill_primary_jscore_passthrough_WT
7735    distros:
7736    - rhel62-large
7737  - name: replica_sets_kill_secondaries_jscore_passthrough_WT
7738    distros:
7739    - rhel62-large
7740  - name: replica_sets_jscore_fcv34_passthrough_WT
7741    distros:
7742    - rhel62-large
7743  - name: retryable_writes_jscore_passthrough_WT
7744    distros:
7745    - rhel62-large
7746  - name: retryable_writes_jscore_stepdown_passthrough_WT
7747    distros:
7748    - rhel62-large
7749  - name: sasl
7750  - name: secondary_reads_passthrough
7751    distros:
7752    - rhel62-large
7753  - name: session_jscore_passthrough_WT
7754  - name: sharded_collections_jscore_passthrough_WT
7755  - name: sharding_WT
7756    distros:
7757    - rhel62-large
7758  - name: sharding_WT_ese
7759    distros:
7760    - rhel62-large
7761  - name: sharding_auth
7762    distros:
7763    - rhel62-large
7764  - name: sharding_auth_audit_WT
7765    distros:
7766    - rhel62-large
7767  - name: sharding_gle_auth_basics_passthrough_WT
7768  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
7769  - name: sharding_jscore_passthrough_WT
7770  - name: sharding_jscore_op_query_passthrough_WT
7771  - name: sharding_jscore_passthrough_wire_ops_WT
7772  - name: sharding_last_stable_mongos_and_mixed_shards
7773    distros:
7774    - rhel62-large
7775  - name: sharding_op_query_WT
7776    distros:
7777    - rhel62-large
7778  - name: sharding_csrs_continuous_config_stepdown_WT
7779    distros:
7780    - rhel62-large
7781  - name: slow1_WT
7782  - name: serial_run_WT
7783  - name: snmp_WT
7784  - name: ssl
7785  - name: sslSpecial
7786  - name: tool_WT
7787  - name: update_fuzzer_WT
7788  - name: update_fuzzer_replication_WT
7789  - name: write_concern_majority_passthrough_WT
7790    distros:
7791    - rhel62-large
7792  - name: package
7793    distros:
7794    - ubuntu1604-packer
7795  - name: push
7796    distros:
7797    - rhel62-small
7798
7799- name: enterprise-rhel-62-64-bit-majority-read-concern-off
7800  display_name: "Enterprise RHEL 6.2 (majority read concern off)"
7801  modules:
7802  - enterprise
7803  run_on:
7804  - rhel62-small
7805  expansions:
7806    compile_flags: --ssl MONGO_DISTMOD=rhel62 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
7807    test_flags: --majorityReadConcern=off --excludeWithAnyTags=requires_mmapv1,requires_majority_read_concern
7808    multiversion_platform: rhel62
7809    multiversion_edition: enterprise
7810    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
7811    use_scons_cache: true
7812    tooltags: "ssl sasl"
7813    build_mongoreplay: true
7814  tasks:
7815  - name: compile
7816    distros:
7817    - rhel62-large
7818  - name: compile_all
7819    distros:
7820    - rhel62-large
7821  - name: rollback_fuzzer_WT
7822  - name: aggregation_WT
7823  - name: aggregation_WT_ese
7824  - name: aggregation_auth
7825  - name: aggregation_facet_unwind_passthrough_WT
7826  - name: aggregation_sharded_collections_passthrough_WT
7827  - name: audit_WT
7828  - name: auth_WT
7829  - name: auth_audit_WT
7830  - name: bulk_gle_passthrough_WT
7831  - name: causally_consistent_jscore_passthrough_WT
7832  - name: causally_consistent_jscore_passthrough_auth_WT
7833  - name: sharded_causally_consistent_jscore_passthrough_WT
7834  - name: concurrency_WT
7835  - name: concurrency_replication_WT
7836  - name: concurrency_sharded_WT
7837  - name: concurrency_sharded_causal_consistency_WT
7838  - name: concurrency_sharded_causal_consistency_and_balancer_WT
7839  - name: concurrency_simultaneous_WT
7840  - name: dbtest_WT
7841  - name: disk_WT
7842  - name: ese_WT
7843  - name: failpoints
7844  - name: failpoints_auth
7845  - name: gle_auth_WT
7846  - name: gle_auth_basics_passthrough_WT
7847  - name: gle_auth_basics_passthrough_write_cmd_WT
7848  - name: gle_auth_write_cmd_WT
7849  - name: integration_tests_replset
7850  - name: integration_tests_sharded
7851  - name: integration_tests_standalone
7852  - name: jsCore_WT
7853  - name: jsCore_WT_ese
7854  - name: jsCore_compatibility_WT
7855  - name: jsCore_decimal_WT
7856  - name: jsCore_minimum_batch_size_WT
7857  - name: jsCore_op_query_WT
7858  - name: jsonSchema
7859  - name: jstestfuzz_WT
7860  - name: jstestfuzz_concurrent_WT
7861  - name: jstestfuzz_concurrent_replication_WT
7862  - name: jstestfuzz_concurrent_replication_session_WT
7863  - name: jstestfuzz_concurrent_sharded_WT
7864  - name: jstestfuzz_concurrent_sharded_causal_consistency_WT
7865  - name: jstestfuzz_concurrent_sharded_continuous_stepdown
7866  - name: jstestfuzz_concurrent_sharded_session_WT
7867  - name: jstestfuzz_replication_WT
7868  - name: jstestfuzz_replication_initsync_WT
7869  - name: jstestfuzz_replication_session_WT
7870  - name: jstestfuzz_sharded_WT
7871  - name: jstestfuzz_sharded_causal_consistency_WT
7872  - name: jstestfuzz_sharded_continuous_stepdown
7873  - name: jstestfuzz_sharded_session_WT
7874  - name: master_slave_WT
7875  - name: master_slave_auth
7876  - name: master_slave_jscore_passthrough_WT
7877  - name: multiversion_WT
7878  - name: multiversion_multistorage_engine
7879  - name: noPassthroughWithMongod_WT
7880  - name: noPassthrough_WT
7881  - name: parallel_WT
7882  - name: parallel_compatibility_WT
7883  - name: read_concern_linearizable_passthrough_WT
7884    distros:
7885    - rhel62-large
7886  - name: read_only_WT
7887  - name: read_only_sharded_WT
7888  - name: replica_sets_WT
7889    distros:
7890    - rhel62-large
7891  - name: replica_sets_WT_ese
7892    distros:
7893    - rhel62-large
7894  - name: replica_sets_auth
7895    distros:
7896    - rhel62-large
7897  - name: replica_sets_pv0
7898    distros:
7899    - rhel62-large
7900  - name: replica_sets_rollback_refetch_no_uuid
7901    distros:
7902    - rhel62-large
7903  - name: replica_sets_jscore_passthrough_WT
7904    distros:
7905    - rhel62-large
7906  - name: replica_sets_initsync_jscore_passthrough_WT
7907    distros:
7908    - rhel62-large
7909  - name: replica_sets_initsync_static_jscore_passthrough_WT
7910    distros:
7911    - rhel62-large
7912  - name: replica_sets_resync_static_jscore_passthrough_WT
7913    distros:
7914    - rhel62-large
7915  - name: replica_sets_kill_secondaries_jscore_passthrough_WT
7916    distros:
7917    - rhel62-large
7918  - name: replica_sets_jscore_fcv34_passthrough_WT
7919    distros:
7920    - rhel62-large
7921  - name: retryable_writes_jscore_passthrough_WT
7922    distros:
7923    - rhel62-large
7924  - name: sasl
7925  - name: session_jscore_passthrough_WT
7926  - name: sharded_collections_jscore_passthrough_WT
7927  - name: sharding_WT
7928    distros:
7929    - rhel62-large
7930  - name: sharding_WT_ese
7931    distros:
7932    - rhel62-large
7933  - name: sharding_auth
7934    distros:
7935    - rhel62-large
7936  - name: sharding_auth_audit_WT
7937    distros:
7938    - rhel62-large
7939  - name: sharding_gle_auth_basics_passthrough_WT
7940  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
7941  - name: sharding_jscore_passthrough_WT
7942  - name: sharding_jscore_op_query_passthrough_WT
7943  - name: sharding_jscore_passthrough_wire_ops_WT
7944  - name: sharding_last_stable_mongos_and_mixed_shards
7945    distros:
7946    - rhel62-large
7947  - name: sharding_op_query_WT
7948    distros:
7949    - rhel62-large
7950  - name: sharding_csrs_continuous_config_stepdown_WT
7951    distros:
7952    - rhel62-large
7953  - name: slow1_WT
7954  - name: serial_run_WT
7955  - name: snmp_WT
7956  - name: ssl
7957  - name: sslSpecial
7958  - name: tool_WT
7959  - name: update_fuzzer_WT
7960  - name: update_fuzzer_replication_WT
7961  - name: write_concern_majority_passthrough_WT
7962    distros:
7963    - rhel62-large
7964  - name: secondary_reads_passthrough
7965    distros:
7966    - rhel62-large
7967
7968- name: enterprise-rhel-62-64-bit-coverage
7969  display_name: "~ Enterprise RHEL 6.2 DEBUG Code Coverage"
7970  modules:
7971  - enterprise
7972  run_on:
7973  - rhel62-large
7974  batchtime: 10080 # 7 days
7975  stepback: false
7976  expansions:
7977    compile_flags: --dbg=on --gcov --ssl MONGO_DISTMOD=rhel62 -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
7978    multiversion_platform: rhel62
7979    multiversion_edition: enterprise
7980    num_jobs_available: $(($(grep -c ^processor /proc/cpuinfo) / 2)) # Avoid starting too many mongod's
7981    # The gcov instrumentation saves the path the .gcno files were created in as the default path
7982    # for the .gcda files. In Evergreen the path will start with /data/mci/[Hashed ID]/src/... where
7983    # the hashed ID is unique per task run. GCOV_PREFIX_STRIP is the number of directory levels to
7984    # strip from the top of the default path before appending to the GCOV_PREFIX (if any).
7985    gcov_environment: GCOV_PREFIX=$(pwd) GCOV_PREFIX_STRIP=4
7986    # Mixing --cache and --gcov doesn't work correctly yet. See SERVER-11084
7987    timeout_secs: 10800 # 3 hour timeout
7988    use_scons_cache: false
7989    tooltags: "ssl sasl"
7990    build_mongoreplay: true
7991  tasks:
7992  - name: compile
7993  - name: compile_all
7994  - name: rollback_fuzzer_WT
7995  - name: aggregation_WT
7996  - name: aggregation_WT_ese
7997  - name: secondary_reads_passthrough
7998  - name: aggregation_auth
7999  - name: aggregation_read_concern_majority_passthrough_WT
8000  - name: aggregation_sharded_collections_passthrough_WT
8001  - name: audit_WT
8002  - name: auth_WT
8003  - name: auth_audit_WT
8004  - name: bulk_gle_passthrough_WT
8005  - name: change_streams_WT
8006  - name: change_streams_mongos_passthrough_WT
8007  - name: change_streams_mongos_sessions_passthrough_WT
8008  - name: change_streams_secondary_reads_WT
8009  - name: change_streams_sharded_collections_passthrough_WT
8010  - name: concurrency_WT
8011  - name: concurrency_replication_WT
8012  - name: concurrency_sharded_WT
8013  - name: concurrency_sharded_causal_consistency_WT
8014  - name: concurrency_sharded_causal_consistency_and_balancer_WT
8015  - name: concurrency_sharded_with_stepdowns_WT
8016  - name: concurrency_sharded_with_stepdowns_and_balancer_WT
8017  - name: concurrency_simultaneous_WT
8018  - name: dbtest_WT
8019  - name: disk_WT
8020  - name: ese_WT
8021  - name: failpoints
8022  - name: failpoints_auth
8023  - name: gle_auth_WT
8024  - name: gle_auth_basics_passthrough_WT
8025  - name: gle_auth_basics_passthrough_write_cmd_WT
8026  - name: gle_auth_write_cmd_WT
8027  - name: integration_tests_replset
8028  - name: integration_tests_sharded
8029  - name: integration_tests_standalone
8030  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
8031  - name: jsCore_WT
8032  - name: jsCore_WT_ese
8033  - name: jsCore_auth
8034  - name: jsCore_compatibility_WT
8035  - name: jsCore_decimal_WT
8036  - name: jsCore_minimum_batch_size_WT
8037  - name: jsCore_op_query_WT
8038  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
8039  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
8040  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
8041  - name: master_slave_WT
8042  - name: master_slave_auth
8043  - name: master_slave_jscore_passthrough_WT
8044  - name: mongosTest
8045  - name: multiversion_auth
8046  - name: multiversion_WT
8047  - name: multiversion_multistorage_engine
8048  - name: noPassthroughWithMongod_WT
8049  - name: noPassthrough_WT
8050  - name: parallel_WT
8051  - name: parallel_compatibility_WT
8052  - name: read_concern_linearizable_passthrough_WT
8053  - name: read_concern_majority_passthrough_WT
8054  - name: read_only_WT
8055  - name: read_only_sharded_WT
8056  - name: replica_sets_WT
8057  - name: replica_sets_WT_ese
8058  - name: replica_sets_auth
8059  - name: replica_sets_pv0
8060  - name: replica_sets_jscore_passthrough_WT
8061  - name: replica_sets_initsync_jscore_passthrough_WT
8062  - name: replica_sets_initsync_static_jscore_passthrough_WT
8063  - name: replica_sets_resync_static_jscore_passthrough_WT
8064  - name: replica_sets_kill_primary_jscore_passthrough_WT
8065  - name: replica_sets_kill_secondaries_jscore_passthrough_WT
8066  - name: replica_sets_jscore_fcv34_passthrough_WT
8067  - name: retryable_writes_jscore_passthrough_WT
8068  - name: retryable_writes_jscore_stepdown_passthrough_WT
8069  - name: sasl
8070  - name: session_jscore_passthrough_WT
8071  - name: sharded_collections_jscore_passthrough_WT
8072  - name: sharding_WT
8073  - name: sharding_WT_ese
8074  - name: sharding_auth
8075  - name: sharding_auth_audit_WT
8076  - name: sharding_gle_auth_basics_passthrough_WT
8077  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
8078  - name: sharding_jscore_passthrough_WT
8079  - name: sharding_jscore_op_query_passthrough_WT
8080  - name: sharding_jscore_passthrough_wire_ops_WT
8081  - name: sharding_last_stable_mongos_and_mixed_shards
8082  - name: sharding_op_query_WT
8083  - name: sharding_csrs_continuous_config_stepdown_WT
8084  - name: slow1_WT
8085  - name: serial_run_WT
8086  - name: snmp_WT
8087  - name: ssl
8088  - name: sslSpecial
8089  - name: update_fuzzer_WT
8090  - name: write_concern_majority_passthrough_WT
8091
8092- name: enterprise-rhel-70-64-bit
8093  display_name: "* Enterprise RHEL 7.0"
8094  modules:
8095  - enterprise
8096  run_on:
8097  - rhel70-small
8098  expansions:
8099    push_path: linux
8100    push_bucket: downloads.10gen.com
8101    push_name: linux
8102    push_arch: x86_64-enterprise-rhel70
8103    compile_flags: --ssl MONGO_DISTMOD=rhel70 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8104    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
8105    has_packages: true
8106    packager_script: packager-enterprise.py
8107    packager_arch: x86_64
8108    packager_distro: rhel70
8109    repo_edition: enterprise
8110    use_scons_cache: true
8111    tooltags: "ssl sasl"
8112    build_mongoreplay: true
8113  tasks:
8114  - name: compile
8115    distros:
8116    - rhel70
8117  - name: compile_all
8118    distros:
8119    - rhel70
8120  - name: audit_WT
8121  # - name: auth TODO SERVER-32037: Replace auth with auth_WT.
8122  - name: auth_audit_WT
8123  - name: dbtest_WT
8124  - name: ese_WT
8125  - name: jsCore # TODO SERVER-32036: Replace with jsCore_WT when jsCore_auth depends on jsCore_WT.
8126  - name: jsCore_auth
8127  - name: jstestfuzz_WT
8128  - name: jstestfuzz_concurrent_WT
8129  - name: jstestfuzz_concurrent_replication_WT
8130  - name: jstestfuzz_concurrent_sharded_WT
8131  - name: jstestfuzz_replication_WT
8132  - name: jstestfuzz_sharded_WT
8133  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
8134  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
8135  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
8136  - name: external_auth_WT
8137  - name: replica_sets_auth
8138  - name: sasl
8139  - name: sharding_auth
8140  - name: sharding_auth_audit_WT
8141  - name: snmp_WT
8142  - name: ssl
8143  - name: sslSpecial
8144  - name: package
8145    distros:
8146    - ubuntu1604-packer
8147  - name: push
8148    distros:
8149    - rhel70-small
8150
8151- name: enterprise-rhel-80-64-bit
8152  display_name: "Enterprise RHEL 8.0"
8153  modules:
8154  - enterprise
8155  run_on:
8156  - rhel80-test
8157  expansions:
8158    push_path: linux
8159    push_bucket: downloads.10gen.com
8160    push_name: linux
8161    push_arch: x86_64-enterprise-rhel80
8162    mh_target: dist-mh
8163    compile_flags: --ssl MONGO_DISTMOD=rhel80 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8164    multiversion_platform: rhel80
8165    multiversion_edition: enterprise
8166    has_packages: true
8167    packager_script: packager-enterprise.py
8168    packager_arch: x86_64
8169    packager_distro: rhel80
8170    repo_edition: enterprise
8171    scons_cache_scope: shared
8172    tooltags: "ssl sasl gssapi"
8173    build_mongoreplay: true
8174  tasks:
8175  - name: compile
8176    distros:
8177    - rhel80-build
8178  - name: compile_all
8179    distros:
8180    - rhel80-build
8181  - name: audit_WT
8182  - name: auth_audit_WT
8183  - name: dbtest_WT
8184  - name: ese_WT
8185  - name: jsCore
8186  - name: jsCore_auth
8187  - name: jstestfuzz_WT
8188  - name: jstestfuzz_concurrent_WT
8189  - name: jstestfuzz_concurrent_replication_WT
8190  - name: jstestfuzz_concurrent_sharded_WT
8191  - name: jstestfuzz_replication_WT
8192  - name: jstestfuzz_sharded_WT
8193  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
8194  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
8195  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
8196  - name: external_auth_WT
8197  - name: replica_sets_auth
8198  - name: sasl
8199  - name: sharding_auth
8200  - name: sharding_auth_audit_WT
8201  - name: snmp_WT
8202  - name: ssl
8203  - name: sslSpecial
8204  - name: package
8205    distros:
8206    - ubuntu1604-packer
8207  - name: push
8208    distros:
8209    - rhel80-small
8210
8211- name: ubuntu1604-debug
8212  display_name: "* Ubuntu 16.04 DEBUG"
8213  run_on:
8214  - ubuntu1604-test
8215  expansions:
8216    num_jobs_available: $(($(grep -c ^processor /proc/cpuinfo) / 2)) # Avoid starting too many mongod's
8217    compile_flags: MONGO_DISTMOD=ubuntu1604 --dbg=on --opt=on -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8218    use_scons_cache: true
8219    tooltags: ""
8220    build_mongoreplay: true
8221  tasks:
8222  - name: compile
8223    distros:
8224    - ubuntu1604-build
8225  - name: jsCore_WT
8226  - name: read_concern_linearizable_passthrough_WT
8227  - name: read_concern_majority_passthrough_WT
8228  # - name: replica_sets_jscore_passthrough TODO SERVER-32037 Replace replica_sets_jscore_passthrough with replica_sets_jscore_passthrough_WT.
8229  - name: sharded_collections_jscore_passthrough_WT
8230  # - name: sharding TODO SERVER-32037: Replace sharding with sharding_WT.
8231  - name: sharding_auth
8232
8233- name: rhel62
8234  display_name: SSL RHEL 6.2
8235  run_on:
8236  - rhel62-small
8237  batchtime: 1440 # 1 day
8238  expansions:
8239    push_path: linux
8240    push_bucket: downloads.mongodb.org
8241    push_name: linux
8242    push_arch: x86_64-rhel62
8243    compile_flags: --ssl MONGO_DISTMOD=rhel62 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8244    multiversion_platform: rhel62
8245    multiversion_edition: targeted
8246    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
8247    has_packages: true
8248    packager_script: packager.py
8249    packager_arch: x86_64
8250    packager_distro: rhel62
8251    repo_edition: org
8252    use_scons_cache: true
8253    tooltags: "ssl"
8254    build_mongoreplay: true
8255  tasks:
8256  - name: compile
8257    distros:
8258    - rhel62-large
8259  - name: compile_all
8260    distros:
8261    - rhel62-large
8262  - name: aggregation_WT
8263  - name: aggregation_auth
8264  - name: auth_WT
8265  - name: dbtest_WT
8266  - name: disk_WT
8267  - name: failpoints
8268  - name: failpoints_auth
8269  - name: gle_auth_WT
8270  - name: gle_auth_write_cmd_WT
8271  - name: gle_auth_basics_passthrough_WT
8272  - name: gle_auth_basics_passthrough_write_cmd_WT
8273  - name: sharding_gle_auth_basics_passthrough_WT
8274  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
8275  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
8276  - name: jsCore_WT
8277  - name: jsCore_auth
8278  - name: jsCore_compatibility_WT
8279  - name: jsCore_decimal_WT
8280  - name: jstestfuzz_WT
8281  - name: jstestfuzz_concurrent_WT
8282  - name: jstestfuzz_concurrent_replication_WT
8283  - name: jstestfuzz_concurrent_sharded_WT
8284  - name: jstestfuzz_replication_WT
8285  - name: jstestfuzz_sharded_WT
8286  - name: logical_session_cache_replication_100ms_refresh_jscore_passthrough_WT
8287  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
8288  - name: logical_session_cache_replication_10sec_refresh_jscore_passthrough_WT
8289  - name: logical_session_cache_replication_default_refresh_jscore_passthrough_WT
8290  - name: logical_session_cache_sharding_100ms_refresh_jscore_passthrough_WT
8291  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
8292  - name: logical_session_cache_sharding_10sec_refresh_jscore_passthrough_WT
8293  - name: logical_session_cache_sharding_default_refresh_jscore_passthrough_WT
8294  - name: logical_session_cache_standalone_100ms_refresh_jscore_passthrough_WT
8295  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
8296  - name: logical_session_cache_standalone_10sec_refresh_jscore_passthrough_WT
8297  - name: logical_session_cache_standalone_default_refresh_jscore_passthrough_WT
8298  - name: mongosTest
8299  - name: multiversion_WT
8300  - name: noPassthrough_WT
8301  - name: noPassthroughWithMongod_WT
8302  - name: bulk_gle_passthrough_WT
8303  - name: parallel_WT
8304  - name: parallel_compatibility_WT
8305  - name: concurrency_WT
8306  - name: concurrency_replication_WT
8307  - name: concurrency_sharded_WT
8308  - name: concurrency_simultaneous_WT
8309  - name: replica_sets_WT
8310  - name: replica_sets_auth
8311  - name: replica_sets_jscore_passthrough_WT
8312  - name: master_slave_WT
8313  - name: master_slave_auth
8314  - name: master_slave_jscore_passthrough_WT
8315  - name: sharding_WT
8316  - name: sharding_auth
8317  - name: slow1_WT
8318  - name: serial_run_WT
8319  - name: sharding_jscore_passthrough_WT
8320  - name: sharding_last_stable_mongos_and_mixed_shards
8321  - name: ssl
8322  - name: sslSpecial
8323  - name: tool_WT
8324  - name: package
8325    distros:
8326    - ubuntu1604-packer
8327  - name: push
8328    distros:
8329    - rhel62-small
8330
8331- name: rhel70
8332  display_name: SSL RHEL 7.0
8333  run_on:
8334  - rhel70-small
8335  batchtime: 1440 # 1 day
8336  expansions:
8337    push_path: linux
8338    push_bucket: downloads.mongodb.org
8339    push_name: linux
8340    push_arch: x86_64-rhel70
8341    compile_flags: --ssl MONGO_DISTMOD=rhel70 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8342    multiversion_platform: rhel70
8343    multiversion_edition: targeted
8344    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
8345    has_packages: true
8346    packager_script: packager.py
8347    packager_arch: x86_64
8348    packager_distro: rhel70
8349    repo_edition: org
8350    use_scons_cache: true
8351    tooltags: "ssl"
8352    build_mongoreplay: true
8353  tasks:
8354  - name: compile
8355    distros:
8356    - rhel70
8357  - name: compile_all
8358    distros:
8359    - rhel70
8360  - name: aggregation_WT
8361  - name: aggregation_auth
8362  - name: auth_WT
8363  - name: dbtest_WT
8364  - name: disk_WT
8365  - name: failpoints
8366  - name: failpoints_auth
8367  - name: gle_auth_WT
8368  - name: gle_auth_write_cmd_WT
8369  - name: gle_auth_basics_passthrough_WT
8370  - name: gle_auth_basics_passthrough_write_cmd_WT
8371  - name: sharding_gle_auth_basics_passthrough_WT
8372  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
8373  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
8374  - name: jsCore_WT
8375  - name: jsCore_auth
8376  - name: jsCore_compatibility_WT
8377  - name: jsCore_decimal_WT
8378  - name: jstestfuzz_WT
8379  - name: jstestfuzz_concurrent_WT
8380  - name: jstestfuzz_concurrent_replication_WT
8381  - name: jstestfuzz_concurrent_sharded_WT
8382  - name: jstestfuzz_replication_WT
8383  - name: jstestfuzz_sharded_WT
8384  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
8385  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
8386  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
8387  - name: mongosTest
8388  - name: multiversion_WT
8389  - name: noPassthrough_WT
8390  - name: noPassthroughWithMongod_WT
8391  - name: bulk_gle_passthrough_WT
8392  - name: parallel_WT
8393  - name: parallel_compatibility_WT
8394  - name: concurrency_WT
8395    distros:
8396    - rhel70
8397  - name: concurrency_replication_WT
8398    distros:
8399    - rhel70
8400  - name: concurrency_sharded_WT
8401    distros:
8402    - rhel70
8403  - name: concurrency_simultaneous_WT
8404    distros:
8405    - rhel70
8406  - name: replica_sets_WT
8407  - name: replica_sets_auth
8408  - name: replica_sets_jscore_passthrough_WT
8409  - name: master_slave_WT
8410  - name: master_slave_auth
8411  - name: master_slave_jscore_passthrough_WT
8412  - name: sharding_WT
8413  - name: sharding_auth
8414  - name: slow1_WT
8415  - name: serial_run_WT
8416  - name: sharding_jscore_passthrough_WT
8417  - name: sharding_last_stable_mongos_and_mixed_shards
8418  - name: ssl
8419  - name: sslSpecial
8420  - name: tool_WT
8421  - name: package
8422    distros:
8423    - ubuntu1604-packer
8424  - name: push
8425    distros:
8426    - rhel70-small
8427
8428- name: rhel80
8429  display_name: SSL RHEL 8.0
8430  run_on:
8431  - rhel80-test
8432  batchtime: 1440 # 1 day
8433  expansions:
8434    push_path: linux
8435    push_bucket: downloads.mongodb.org
8436    push_name: linux
8437    push_arch: x86_64-rhel80
8438    compile_flags: --ssl MONGO_DISTMOD=rhel80 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8439    multiversion_platform: rhel80
8440    multiversion_edition: targeted
8441    has_packages: true
8442    packager_script: packager.py
8443    packager_arch: x86_64
8444    packager_distro: rhel80
8445    repo_edition: org
8446    scons_cache_scope: shared
8447    tooltags: "ssl"
8448    build_mongoreplay: true
8449  tasks:
8450  - name: compile
8451    distros:
8452    - rhel80-build
8453  - name: compile_all
8454    distros:
8455    - rhel80-build
8456  - name: aggregation_WT
8457  - name: aggregation_auth
8458  - name: auth_WT
8459  - name: dbtest_WT
8460  - name: disk_WT
8461  - name: failpoints
8462  - name: failpoints_auth
8463  - name: gle_auth_WT
8464  - name: gle_auth_write_cmd_WT
8465  - name: gle_auth_basics_passthrough_WT
8466  - name: gle_auth_basics_passthrough_write_cmd_WT
8467  - name: sharding_gle_auth_basics_passthrough_WT
8468  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
8469  - name: jsCore
8470  - name: jsCore_WT
8471  - name: jsCore_auth
8472  - name: jsCore_compatibility_WT
8473  - name: jsCore_decimal_WT
8474  - name: jstestfuzz_WT
8475  - name: jstestfuzz_concurrent_WT
8476  - name: jstestfuzz_concurrent_replication_WT
8477  - name: jstestfuzz_concurrent_sharded_WT
8478  - name: jstestfuzz_replication_WT
8479  - name: jstestfuzz_sharded_WT
8480  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
8481  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
8482  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
8483  - name: mongosTest
8484  - name: multiversion_WT
8485  - name: noPassthrough_WT
8486  - name: noPassthroughWithMongod_WT
8487  - name: bulk_gle_passthrough_WT
8488  - name: parallel_WT
8489  - name: parallel_compatibility_WT
8490  - name: concurrency_WT
8491    distros:
8492    - rhel80-build
8493  - name: concurrency_replication_WT
8494    distros:
8495    - rhel80-build
8496  - name: concurrency_sharded_WT
8497    distros:
8498    - rhel80-build
8499  - name: concurrency_simultaneous_WT
8500    distros:
8501    - rhel80-build
8502  - name: replica_sets_WT
8503  - name: replica_sets_auth
8504  - name: replica_sets_jscore_passthrough_WT
8505  - name: master_slave_WT
8506  - name: master_slave_auth
8507  - name: master_slave_jscore_passthrough_WT
8508  - name: sharding_WT
8509  - name: sharding_auth
8510  - name: slow1_WT
8511  - name: serial_run_WT
8512  - name: sharding_jscore_passthrough_WT
8513  - name: sharding_last_stable_mongos_and_mixed_shards
8514  - name: ssl
8515  - name: sslSpecial
8516  - name: tool_WT
8517  - name: package
8518    distros:
8519    - ubuntu1604-packer
8520  - name: push
8521    distros:
8522    - rhel80-small
8523
8524- name: enterprise-rhel-71-ppc64le
8525  display_name: Enterprise RHEL 7.1 PPC64LE
8526  modules:
8527  - enterprise
8528  run_on:
8529  - rhel71-power8-test
8530  batchtime: 1440 # 1 day
8531  stepback: false
8532  expansions:
8533    # We need to compensate for SMT8 setting the cpu count very high and lower the amount of parallelism down
8534    compile_flags: --ssl MONGO_DISTMOD=rhel71 --release -j$(echo "$(grep -c processor /proc/cpuinfo)/2" | bc) CCFLAGS="-mcpu=power8 -mtune=power8 -mcmodel=medium" --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8535    num_jobs_available: $(echo "$(grep -c processor /proc/cpuinfo)/4" | bc)
8536    test_flags: --excludeWithAnyTags=requires_mmapv1,blacklist_from_ppc64le
8537    has_packages: true
8538    packager_script: packager-enterprise.py
8539    packager_arch: ppc64le
8540    packager_distro: rhel71
8541    push_path: linux
8542    push_bucket: downloads.10gen.com
8543    push_name: linux
8544    push_arch: ppc64le-enterprise-rhel71
8545    repo_edition: enterprise
8546    tooltags: "ssl sasl"
8547    build_mongoreplay: true
8548    multiversion_platform: rhel71
8549    multiversion_architecture: ppc64le
8550    multiversion_edition: enterprise
8551  tasks:
8552  - name: compile
8553    distros:
8554    - rhel71-power8-build
8555  - name: compile_all
8556    distros:
8557    - rhel71-power8-build
8558  - name: aggregation_WT
8559  - name: aggregation_WT_ese
8560  - name: aggregation_auth
8561  - name: aggregation_read_concern_majority_passthrough_WT
8562  - name: aggregation_sharded_collections_passthrough_WT
8563  - name: audit_WT
8564  - name: auth_WT
8565  - name: auth_audit_WT
8566  - name: bulk_gle_passthrough_WT
8567  - name: concurrency_WT
8568  - name: concurrency_replication_WT
8569  - name: concurrency_sharded_WT
8570  - name: concurrency_simultaneous_WT
8571  - name: dbtest_WT
8572  - name: ese_WT
8573  - name: failpoints
8574  - name: failpoints_auth
8575  - name: gle_auth_WT
8576  - name: gle_auth_basics_passthrough_WT
8577  - name: gle_auth_basics_passthrough_write_cmd_WT
8578  - name: gle_auth_write_cmd_WT
8579  - name: integration_tests_replset
8580  - name: integration_tests_sharded
8581  - name: integration_tests_standalone
8582  - name: jsCore_WT
8583  - name: jsCore_WT_ese
8584  - name: jsCore_compatibility_WT
8585  - name: jsCore_decimal_WT
8586  - name: jsCore_op_query_WT
8587  - name: jstestfuzz_WT
8588  - name: jstestfuzz_concurrent_WT
8589  - name: jstestfuzz_concurrent_replication_WT
8590  - name: jstestfuzz_concurrent_sharded_WT
8591  - name: jstestfuzz_replication_WT
8592  - name: jstestfuzz_sharded_WT
8593  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
8594  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
8595  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
8596  - name: mongosTest
8597  - name: noPassthroughWithMongod_WT
8598  - name: noPassthrough_WT
8599  - name: parallel_WT
8600  - name: parallel_compatibility_WT
8601  - name: read_concern_linearizable_passthrough_WT
8602  - name: read_concern_majority_passthrough_WT
8603  - name: replica_sets_WT
8604  - name: replica_sets_WT_ese
8605  - name: replica_sets_auth
8606  - name: replica_sets_pv0
8607  - name: replica_sets_jscore_passthrough_WT
8608  - name: master_slave_WT
8609  - name: master_slave_auth
8610  - name: master_slave_jscore_passthrough_WT
8611  - name: sasl
8612  - name: secondary_reads_passthrough
8613  - name: sharded_collections_jscore_passthrough_WT
8614  - name: sharding_WT
8615  - name: sharding_WT_ese
8616  - name: sharding_auth
8617  - name: sharding_auth_audit_WT
8618  - name: sharding_csrs_continuous_config_stepdown_WT
8619  - name: sharding_gle_auth_basics_passthrough_WT
8620  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
8621  - name: sharding_jscore_passthrough_WT
8622  - name: sharding_jscore_op_query_passthrough_WT
8623  - name: sharding_jscore_passthrough_wire_ops_WT
8624  - name: sharding_op_query_WT
8625  - name: slow1_WT
8626  - name: serial_run_WT
8627  - name: snmp_WT
8628  - name: ssl
8629  - name: sslSpecial
8630  - name: tool_WT
8631  - name: write_concern_majority_passthrough_WT
8632  - name: push
8633    distros:
8634    - rhel70-small
8635
8636###########################################
8637#          Ubuntu buildvariants           #
8638###########################################
8639
8640- name: ubuntu1404
8641  display_name: SSL Ubuntu 14.04
8642  run_on:
8643  - ubuntu1404-test
8644  batchtime: 1440 # 1 day
8645  expansions:
8646    push_path: linux
8647    push_bucket: downloads.mongodb.org
8648    push_name: linux
8649    push_arch: x86_64-ubuntu1404
8650    compile_flags: --ssl MONGO_DISTMOD=ubuntu1404 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8651    multiversion_platform: ubuntu1404
8652    multiversion_edition: targeted
8653    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
8654    has_packages: true
8655    packager_script: packager.py
8656    packager_arch: x86_64
8657    packager_distro: ubuntu1404
8658    repo_edition: org
8659    use_scons_cache: true
8660    tooltags: "ssl"
8661    build_mongoreplay: true
8662  tasks:
8663  - name: compile
8664    distros:
8665    - ubuntu1404-build
8666  - name: compile_all
8667    distros:
8668    - ubuntu1404-build
8669  - name: aggregation_WT
8670  - name: aggregation_auth
8671  - name: auth_WT
8672  - name: dbtest_WT
8673  - name: disk_WT
8674  - name: failpoints
8675  - name: failpoints_auth
8676  - name: gle_auth_WT
8677  - name: gle_auth_write_cmd_WT
8678  - name: gle_auth_basics_passthrough_WT
8679  - name: gle_auth_basics_passthrough_write_cmd_WT
8680  - name: sharding_gle_auth_basics_passthrough_WT
8681  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
8682  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
8683  - name: jsCore_WT
8684  - name: jsCore_auth
8685  - name: jsCore_compatibility_WT
8686  - name: jsCore_decimal_WT
8687  - name: jstestfuzz_WT
8688  - name: jstestfuzz_concurrent_WT
8689  - name: jstestfuzz_concurrent_replication_WT
8690  - name: jstestfuzz_concurrent_sharded_WT
8691  - name: jstestfuzz_replication_WT
8692  - name: jstestfuzz_sharded_WT
8693  - name: mongosTest
8694  - name: multiversion_WT
8695  - name: noPassthrough_WT
8696  - name: noPassthroughWithMongod_WT
8697  - name: bulk_gle_passthrough_WT
8698  - name: parallel_WT
8699  - name: parallel_compatibility_WT
8700  - name: concurrency_WT
8701  - name: concurrency_replication_WT
8702  - name: concurrency_sharded_WT
8703  - name: concurrency_simultaneous_WT
8704  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
8705  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
8706  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
8707  - name: replica_sets_WT
8708  - name: replica_sets_auth
8709  - name: replica_sets_jscore_passthrough_WT
8710  - name: master_slave_WT
8711  - name: master_slave_auth
8712  - name: master_slave_jscore_passthrough_WT
8713  - name: sharding_WT
8714  - name: sharding_auth
8715  - name: sharding_last_stable_mongos_and_mixed_shards
8716  - name: slow1_WT
8717  - name: serial_run_WT
8718  - name: sharding_jscore_passthrough_WT
8719  - name: ssl
8720  - name: sslSpecial
8721  - name: tool_WT
8722  - name: package
8723    distros:
8724    - ubuntu1604-packer
8725  - name: push
8726    distros:
8727    - ubuntu1404-small
8728
8729- name: enterprise-ubuntu1404-64
8730  display_name: Enterprise Ubuntu 14.04
8731  modules:
8732  - enterprise
8733  run_on:
8734  - ubuntu1404-test
8735  batchtime: 1440 # 1 day
8736  expansions:
8737    push_path: linux
8738    push_bucket: downloads.10gen.com
8739    push_name: linux
8740    push_arch: x86_64-enterprise-ubuntu1404
8741    compile_flags: --ssl MONGO_DISTMOD=ubuntu1404 --release -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8742    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
8743    has_packages: true
8744    packager_script: packager-enterprise.py
8745    packager_arch: x86_64
8746    packager_distro: ubuntu1404
8747    repo_edition: enterprise
8748    use_scons_cache: true
8749    tooltags: "ssl sasl"
8750    build_mongoreplay: true
8751  tasks:
8752  - name: compile
8753    distros:
8754    - ubuntu1404-build
8755  - name: compile_all
8756    distros:
8757    - ubuntu1404-build
8758  - name: audit_WT
8759  - name: dbtest_WT
8760  - name: ese_WT
8761  - name: jsCore # TODO SERVER-32036: Replace with jsCore_WT when jsCore_auth depends on jsCore_WT.
8762  - name: jsCore_auth
8763  - name: jstestfuzz_WT
8764  - name: jstestfuzz_concurrent_WT
8765  - name: jstestfuzz_concurrent_replication_WT
8766  - name: jstestfuzz_concurrent_sharded_WT
8767  - name: jstestfuzz_replication_WT
8768  - name: jstestfuzz_sharded_WT
8769  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
8770  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
8771  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
8772  - name: replica_sets_auth
8773  - name: sasl
8774  - name: sharding_auth
8775  - name: snmp_WT
8776  - name: ssl
8777  - name: sslSpecial
8778  - name: package
8779    distros:
8780    - ubuntu1604-packer
8781  - name: push
8782    distros:
8783    - ubuntu1404-small
8784
8785- name: enterprise-ubuntu1604-64
8786  display_name: Enterprise Ubuntu 16.04 (+Dagger)
8787  modules:
8788  - enterprise
8789  run_on:
8790  - ubuntu1604-test
8791  batchtime: 1440 # 1 day
8792  expansions:
8793    push_path: linux
8794    push_bucket: downloads.10gen.com
8795    push_name: linux
8796    lang_environment: LANG=C
8797    push_arch: x86_64-enterprise-ubuntu1604
8798    compile_flags: --ssl MONGO_DISTMOD=ubuntu1604 --release -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8799    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
8800    has_packages: true
8801    packager_script: packager-enterprise.py
8802    packager_arch: x86_64
8803    packager_distro: ubuntu1604
8804    repo_edition: enterprise
8805    use_scons_cache: true
8806    tooltags: "ssl sasl"
8807    build_mongoreplay: true
8808    additional_targets: dagger
8809  tasks:
8810  - name: compile
8811    distros:
8812    - ubuntu1604-build
8813  - name: compile_all
8814    distros:
8815    - ubuntu1604-build
8816  - name: audit_WT
8817  - name: dbtest_WT
8818  - name: ese_WT
8819  - name: jepsen_register_findAndModify_WT
8820    distros:
8821    - ubuntu1604-build
8822  - name: jepsen_register_linearizableRead
8823    distros:
8824    - ubuntu1604-build
8825  - name: jepsen_register_linearizableRead_WT
8826    distros:
8827    - ubuntu1604-build
8828  - name: jepsen_set_linearizableRead
8829    distros:
8830    - ubuntu1604-build
8831  - name: jepsen_set_linearizableRead_WT
8832    distros:
8833    - ubuntu1604-build
8834  - name: jepsen_read-concern-majority_WT
8835    distros:
8836    - ubuntu1604-build
8837  - name: jepsen_read-concern-majority_w1_WT
8838    distros:
8839    - ubuntu1604-build
8840  - name: jsCore # TODO SERVER-32036: Replace with jsCore_WT when jsCore_auth depends on jsCore_WT.
8841  - name: jsCore_auth
8842  - name: jstestfuzz_WT
8843  - name: jstestfuzz_concurrent_WT
8844  - name: jstestfuzz_concurrent_replication_WT
8845  - name: jstestfuzz_concurrent_sharded_WT
8846  - name: jstestfuzz_replication_WT
8847  - name: jstestfuzz_sharded_WT
8848  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
8849  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
8850  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
8851  - name: replica_sets_auth
8852  - name: sasl
8853  - name: sharding_auth
8854  - name: snmp_WT
8855  - name: ssl
8856  - name: sslSpecial
8857  - name: watchdog
8858  - name: watchdog_inmemory
8859  - name: watchdog_WT
8860  - name: package
8861    distros:
8862    - ubuntu1604-packer
8863  - name: push
8864    distros:
8865    - ubuntu1604-small
8866
8867
8868- name: enterprise-ubuntu1604-clang-3.8-libcxx
8869  display_name: "! Enterprise Ubuntu 16.04 (Clang 3.8)"
8870  modules:
8871  - enterprise
8872  run_on:
8873   - ubuntu1604-test
8874  expansions:
8875    lang_environment: LANG=C
8876    compile_flags: --link-model=dynamic --ssl CC=/usr/bin/clang-3.8 CXX=/usr/bin/clang++-3.8 -j$(grep -c ^processor /proc/cpuinfo) CPPPATH=/usr/include/libcxxabi/
8877    use_scons_cache: true
8878    tooltags: "ssl sasl"
8879    build_mongoreplay: true
8880  tasks:
8881  - name: compile
8882    distros:
8883    - ubuntu1604-build
8884  - name: compile_all
8885    distros:
8886    - ubuntu1604-build
8887
8888- name: ubuntu1804
8889  display_name: SSL Ubuntu 18.04
8890  run_on:
8891  - ubuntu1804-test
8892  batchtime: 1440 # 1 day
8893  expansions:
8894    push_path: linux
8895    push_bucket: downloads.mongodb.org
8896    push_name: linux
8897    push_arch: x86_64-ubuntu1804
8898    lang_environment: LANG=C
8899    compile_flags: --ssl MONGO_DISTMOD=ubuntu1804 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8900    multiversion_platform: ubuntu1804
8901    multiversion_edition: targeted
8902    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
8903    has_packages: true
8904    packager_script: packager.py
8905    packager_arch: x86_64
8906    packager_distro: ubuntu1804
8907    repo_edition: org
8908    use_scons_cache: true
8909    tooltags: "ssl"
8910    build_mongoreplay: true
8911  tasks:
8912  - name: compile
8913    distros:
8914    - ubuntu1804-build
8915  - name: compile_all
8916    distros:
8917    - ubuntu1804-build
8918  - name: aggregation_WT
8919  - name: aggregation_auth
8920  - name: auth_WT
8921  - name: dbtest_WT
8922  - name: disk_WT
8923  - name: failpoints
8924  - name: failpoints_auth
8925  - name: gle_auth_WT
8926  - name: gle_auth_write_cmd_WT
8927  - name: gle_auth_basics_passthrough_WT
8928  - name: gle_auth_basics_passthrough_write_cmd_WT
8929  - name: sharding_gle_auth_basics_passthrough_WT
8930  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
8931  - name: jsCore
8932  - name: jsCore_WT
8933  - name: jsCore_auth
8934  - name: jsCore_compatibility_WT
8935  - name: jsCore_decimal_WT
8936  - name: jstestfuzz_WT
8937  - name: jstestfuzz_concurrent_WT
8938  - name: jstestfuzz_concurrent_replication_WT
8939  - name: jstestfuzz_concurrent_sharded_WT
8940  - name: jstestfuzz_replication_WT
8941  - name: jstestfuzz_sharded_WT
8942  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
8943  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
8944  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
8945  - name: mongosTest
8946  - name: noPassthrough_WT
8947  - name: noPassthroughWithMongod_WT
8948  - name: bulk_gle_passthrough_WT
8949  - name: parallel_WT
8950  - name: parallel_compatibility_WT
8951  - name: concurrency_WT
8952  - name: concurrency_replication_WT
8953  - name: concurrency_sharded_WT
8954  - name: concurrency_simultaneous_WT
8955  - name: replica_sets_WT
8956  - name: replica_sets_auth
8957  - name: replica_sets_jscore_passthrough_WT
8958  - name: master_slave_WT
8959  - name: master_slave_auth
8960  - name: master_slave_jscore_passthrough_WT
8961  - name: sharding_WT
8962  - name: sharding_auth
8963  - name: sharding_last_stable_mongos_and_mixed_shards
8964  - name: slow1_WT
8965  - name: serial_run_WT
8966  - name: sharding_jscore_passthrough_WT
8967  - name: ssl
8968  - name: sslSpecial
8969  - name: tool_WT
8970  - name: package
8971    distros:
8972    - ubuntu1604-packer
8973  - name: push
8974    distros:
8975    - ubuntu1804-small
8976
8977- name: enterprise-ubuntu1804-64
8978  display_name: Enterprise Ubuntu 18.04
8979  modules:
8980  - enterprise
8981  run_on:
8982  - ubuntu1804-test
8983  batchtime: 1440 # 1 day
8984  expansions:
8985    push_path: linux
8986    push_bucket: downloads.10gen.com
8987    push_name: linux
8988    lang_environment: LANG=C
8989    push_arch: x86_64-enterprise-ubuntu1804
8990    compile_flags: --ssl MONGO_DISTMOD=ubuntu1804 --release -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
8991    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
8992    has_packages: true
8993    packager_script: packager-enterprise.py
8994    packager_arch: x86_64
8995    packager_distro: ubuntu1804
8996    repo_edition: enterprise
8997    use_scons_cache: true
8998    tooltags: "ssl sasl"
8999    build_mongoreplay: true
9000  tasks:
9001  - name: compile
9002    distros:
9003    - ubuntu1804-build
9004  - name: compile_all
9005    distros:
9006    - ubuntu1804-build
9007  - name: audit_WT
9008  - name: dbtest_WT
9009  - name: ese_WT
9010  - name: jsCore # TODO SERVER-32036: Replace with jsCore_WT when jsCore_auth depends on jsCore_WT.
9011  - name: jsCore_auth
9012  - name: jstestfuzz_WT
9013  - name: jstestfuzz_concurrent_WT
9014  - name: jstestfuzz_concurrent_replication_WT
9015  - name: jstestfuzz_concurrent_sharded_WT
9016  - name: jstestfuzz_replication_WT
9017  - name: jstestfuzz_sharded_WT
9018  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
9019  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
9020  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
9021  - name: replica_sets_auth
9022  - name: sasl
9023  - name: sharding_auth
9024  - name: snmp_WT
9025  - name: ssl
9026  - name: sslSpecial
9027  - name: watchdog
9028  - name: watchdog_inmemory
9029  - name: watchdog_WT
9030  - name: package
9031    distros:
9032    - ubuntu1604-packer
9033  - name: push
9034    distros:
9035    - ubuntu1804-small
9036
9037
9038###########################################
9039#          SUSE buildvariants             #
9040###########################################
9041
9042- name: enterprise-suse12-64
9043  display_name: Enterprise SLES 12
9044  modules:
9045  - enterprise
9046  run_on:
9047  - suse12-test
9048  batchtime: 1440 # 1 day
9049  expansions:
9050    push_path: linux
9051    push_bucket: downloads.10gen.com
9052    push_name: linux
9053    push_arch: x86_64-enterprise-suse12
9054    compile_flags: --ssl MONGO_DISTMOD=suse12 --release -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
9055    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
9056    has_packages: true
9057    packager_script: packager-enterprise.py
9058    packager_arch: x86_64
9059    packager_distro: suse12
9060    repo_edition: enterprise
9061    use_scons_cache: true
9062    tooltags: "ssl sasl"
9063    build_mongoreplay: true
9064  tasks:
9065  - name: compile
9066    distros:
9067    - suse12-build
9068  - name: compile_all
9069    distros:
9070    - suse12-build
9071  - name: audit_WT
9072  - name: dbtest_WT
9073  - name: ese_WT
9074  - name: jsCore # TODO SERVER-32036: Replace with jsCore_WT when jsCore_auth depends on jsCore_WT.
9075  - name: jsCore_auth
9076  - name: jstestfuzz_WT
9077  - name: jstestfuzz_concurrent_WT
9078  - name: jstestfuzz_concurrent_replication_WT
9079  - name: jstestfuzz_concurrent_sharded_WT
9080  - name: jstestfuzz_replication_WT
9081  - name: jstestfuzz_sharded_WT
9082  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
9083  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
9084  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
9085  - name: replica_sets_auth
9086  - name: sasl
9087  - name: sharding_auth
9088  - name: snmp_WT
9089  - name: ssl
9090  - name: sslSpecial
9091  - name: package
9092    distros:
9093    - ubuntu1604-packer
9094  - name: push
9095    distros:
9096    - suse12-small
9097
9098- name: suse12
9099  display_name: SSL SUSE 12
9100  run_on:
9101  - suse12-test
9102  batchtime: 1440 # 1 day
9103  expansions:
9104    push_path: linux
9105    push_bucket: downloads.mongodb.org
9106    push_name: linux
9107    push_arch: x86_64-suse12
9108    compile_flags: --ssl MONGO_DISTMOD=suse12 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
9109    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
9110    multiversion_platform: suse12
9111    multiversion_edition: targeted
9112    has_packages: true
9113    packager_script: packager.py
9114    packager_arch: x86_64
9115    packager_distro: suse12
9116    repo_edition: org
9117    use_scons_cache: true
9118    tooltags: "ssl"
9119    build_mongoreplay: true
9120  tasks:
9121  - name: compile
9122    distros:
9123    - suse12-build
9124  - name: compile_all
9125    distros:
9126    - suse12-build
9127  - name: aggregation_WT
9128  - name: aggregation_auth
9129  - name: auth_WT
9130  - name: dbtest_WT
9131  - name: disk_WT
9132  - name: failpoints
9133  - name: failpoints_auth
9134  - name: gle_auth_WT
9135  - name: gle_auth_write_cmd_WT
9136  - name: gle_auth_basics_passthrough_WT
9137  - name: gle_auth_basics_passthrough_write_cmd_WT
9138  - name: sharding_gle_auth_basics_passthrough_WT
9139  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
9140  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
9141  - name: jsCore_WT
9142  - name: jsCore_auth
9143  - name: jsCore_compatibility_WT
9144  - name: jstestfuzz_WT
9145  - name: jstestfuzz_concurrent_WT
9146  - name: jstestfuzz_concurrent_replication_WT
9147  - name: jstestfuzz_concurrent_sharded_WT
9148  - name: jstestfuzz_replication_WT
9149  - name: jstestfuzz_sharded_WT
9150  - name: mongosTest
9151  - name: multiversion_WT
9152  - name: noPassthrough_WT
9153  - name: noPassthroughWithMongod_WT
9154  - name: bulk_gle_passthrough_WT
9155  - name: parallel_WT
9156  - name: parallel_compatibility_WT
9157  - name: concurrency_WT
9158  - name: concurrency_replication_WT
9159  - name: concurrency_sharded_WT
9160  - name: concurrency_simultaneous_WT
9161  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
9162  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
9163  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
9164  - name: replica_sets_WT
9165  - name: replica_sets_auth
9166  - name: replica_sets_jscore_passthrough_WT
9167  - name: master_slave_WT
9168  - name: master_slave_auth
9169  - name: master_slave_jscore_passthrough_WT
9170  - name: sharding_WT
9171  - name: sharding_auth
9172  - name: slow1_WT
9173  - name: serial_run_WT
9174  - name: sharding_jscore_passthrough_WT
9175  - name: ssl
9176  - name: sslSpecial
9177  - name: tool_WT
9178  - name: package
9179    distros:
9180    - ubuntu1604-packer
9181  - name: push
9182    distros:
9183    - suse12-small
9184
9185
9186###########################################
9187#          Debian buildvariants           #
9188###########################################
9189
9190- name: enterprise-debian81-64
9191  display_name: Enterprise Debian 8.1
9192  modules:
9193  - enterprise
9194  run_on:
9195  - debian81-test
9196  batchtime: 1440 # 1 day
9197  expansions:
9198    push_path: linux
9199    push_bucket: downloads.10gen.com
9200    push_name: linux
9201    push_arch: x86_64-enterprise-debian81
9202    compile_flags: --ssl MONGO_DISTMOD=debian81 --release -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
9203    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
9204    has_packages: true
9205    packager_script: packager-enterprise.py
9206    packager_arch: x86_64
9207    packager_distro: debian81
9208    repo_edition: enterprise
9209    use_scons_cache: true
9210    tooltags: "ssl sasl"
9211    build_mongoreplay: true
9212  tasks:
9213  - name: compile
9214    distros:
9215    - debian81-build
9216  - name: compile_all
9217    distros:
9218    - debian81-build
9219  - name: audit_WT
9220  - name: dbtest_WT
9221  - name: ese_WT
9222  - name: jsCore # TODO SERVER-32036: Replace with jsCore_WT when jsCore_auth depends on jsCore_WT.
9223  - name: jsCore_auth
9224  - name: jstestfuzz_WT
9225  - name: jstestfuzz_concurrent_WT
9226  - name: jstestfuzz_concurrent_replication_WT
9227  - name: jstestfuzz_concurrent_sharded_WT
9228  - name: jstestfuzz_replication_WT
9229  - name: jstestfuzz_sharded_WT
9230  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
9231  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
9232  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
9233  - name: replica_sets_auth
9234  - name: sasl
9235  - name: sharding_auth
9236  - name: snmp_WT
9237  - name: ssl
9238  - name: sslSpecial
9239  - name: package
9240    distros:
9241    - ubuntu1604-packer
9242  - name: push
9243    distros:
9244    - debian81-small
9245
9246
9247- name: enterprise-debian92-64
9248  display_name: Enterprise Debian 9.2
9249  modules:
9250  - enterprise
9251  run_on:
9252  - debian92-test
9253  batchtime: 1440 # 1 day
9254  expansions:
9255    push_path: linux
9256    push_bucket: downloads.10gen.com
9257    push_name: linux
9258    push_arch: x86_64-enterprise-debian92
9259    compile_flags: --ssl MONGO_DISTMOD=debian92 --release -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
9260    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
9261    has_packages: true
9262    packager_script: packager-enterprise.py
9263    packager_arch: x86_64
9264    packager_distro: debian92
9265    repo_edition: enterprise
9266    use_scons_cache: true
9267    tooltags: "ssl"
9268    build_mongoreplay: true
9269  tasks:
9270  - name: compile
9271    distros:
9272    - debian92-build
9273  - name: compile_all
9274    distros:
9275    - debian92-build
9276  - name: audit_WT
9277  - name: dbtest_WT
9278  - name: ese_WT
9279  - name: jsCore # TODO SERVER-32036: Replace with jsCore_WT when jsCore_auth depends on jsCore_WT.
9280  - name: jsCore_auth
9281  - name: jstestfuzz_WT
9282  - name: jstestfuzz_concurrent_WT
9283  - name: jstestfuzz_concurrent_replication_WT
9284  - name: jstestfuzz_concurrent_sharded_WT
9285  - name: jstestfuzz_replication_WT
9286  - name: jstestfuzz_sharded_WT
9287  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
9288  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
9289  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
9290  - name: replica_sets_auth
9291  - name: sasl
9292  - name: sharding_auth
9293  - name: snmp_WT
9294  - name: ssl
9295  - name: sslSpecial
9296  - name: package
9297    distros:
9298    - ubuntu1604-packer
9299  - name: push
9300    distros:
9301    - debian92-small
9302
9303
9304- name: debian81
9305  display_name: SSL Debian 8.1
9306  run_on:
9307  - debian81-test
9308  batchtime: 1440 # 1 day
9309  expansions:
9310    push_path: linux
9311    push_bucket: downloads.mongodb.org
9312    push_name: linux
9313    push_arch: x86_64-debian81
9314    compile_flags: --ssl MONGO_DISTMOD=debian81 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
9315    multiversion_platform: debian81
9316    multiversion_edition: targeted
9317    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
9318    has_packages: true
9319    packager_script: packager.py
9320    packager_arch: x86_64
9321    packager_distro: debian81
9322    repo_edition: org
9323    use_scons_cache: true
9324    tooltags: "ssl sasl"
9325    build_mongoreplay: true
9326  tasks:
9327  - name: compile
9328    distros:
9329    - debian81-build
9330  - name: compile_all
9331    distros:
9332    - debian81-build
9333  - name: aggregation_WT
9334  - name: aggregation_auth
9335  - name: auth_WT
9336  - name: dbtest_WT
9337  - name: disk_WT
9338  - name: failpoints
9339  - name: failpoints_auth
9340  - name: gle_auth_WT
9341  - name: gle_auth_write_cmd_WT
9342  - name: gle_auth_basics_passthrough_WT
9343  - name: gle_auth_basics_passthrough_write_cmd_WT
9344  - name: sharding_gle_auth_basics_passthrough_WT
9345  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
9346  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
9347  - name: jsCore_WT
9348  - name: jsCore_auth
9349  - name: jsCore_compatibility_WT
9350  - name: jstestfuzz_WT
9351  - name: jstestfuzz_concurrent_WT
9352  - name: jstestfuzz_concurrent_replication_WT
9353  - name: jstestfuzz_concurrent_sharded_WT
9354  - name: jstestfuzz_replication_WT
9355  - name: jstestfuzz_sharded_WT
9356  - name: mongosTest
9357  - name: multiversion_WT
9358  - name: noPassthrough_WT
9359  - name: noPassthroughWithMongod_WT
9360  - name: bulk_gle_passthrough_WT
9361  - name: parallel_WT
9362  - name: parallel_compatibility_WT
9363  - name: concurrency_WT
9364  - name: concurrency_replication_WT
9365  - name: concurrency_sharded_WT
9366  - name: concurrency_simultaneous_WT
9367  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
9368  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
9369  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
9370  - name: replica_sets_WT
9371  - name: replica_sets_auth
9372  - name: replica_sets_jscore_passthrough_WT
9373  - name: master_slave_WT
9374  - name: master_slave_auth
9375  - name: master_slave_jscore_passthrough_WT
9376  - name: sharding_WT
9377  - name: sharding_auth
9378  - name: sharding_last_stable_mongos_and_mixed_shards
9379  - name: slow1_WT
9380  - name: serial_run_WT
9381  - name: sharded_collections_jscore_passthrough_WT
9382  - name: sharding_jscore_passthrough_WT
9383  - name: sharding_jscore_op_query_passthrough_WT
9384  - name: sharding_jscore_passthrough_wire_ops_WT
9385  - name: ssl
9386  - name: sslSpecial
9387  - name: tool_WT
9388  - name: package
9389    distros:
9390    - ubuntu1604-packer
9391  - name: push
9392    distros:
9393    - debian81-small
9394
9395
9396- name: debian92
9397  display_name: SSL Debian 9.2
9398  run_on:
9399  - debian92-test
9400  batchtime: 1440 # 1 day
9401  expansions:
9402    test_flags: --excludeWithAnyTags=requires_mmapv1
9403    push_path: linux
9404    push_bucket: downloads.mongodb.org
9405    push_name: linux
9406    push_arch: x86_64-debian92
9407    compile_flags: --ssl MONGO_DISTMOD=debian92 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars
9408    multiversion_platform: debian92
9409    multiversion_edition: targeted
9410    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
9411    has_packages: true
9412    packager_script: packager.py
9413    packager_arch: x86_64
9414    packager_distro: debian92
9415    repo_edition: org
9416    tooltags: "ssl"
9417    scons_cache_scope: shared
9418    shared_scons_pruning: true
9419    build_mongoreplay: true
9420  tasks:
9421  - name: compile
9422    distros:
9423    - debian92-build
9424  - name: compile_all
9425    distros:
9426    - debian92-build
9427  - name: aggregation_WT
9428  - name: aggregation_auth
9429  - name: auth_WT
9430  - name: dbtest_WT
9431  - name: disk_WT
9432  - name: failpoints
9433  - name: failpoints_auth
9434  - name: gle_auth_WT
9435  - name: gle_auth_write_cmd_WT
9436  - name: gle_auth_basics_passthrough_WT
9437  - name: gle_auth_basics_passthrough_write_cmd_WT
9438  - name: sharding_gle_auth_basics_passthrough_WT
9439  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
9440  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
9441  - name: jsCore_WT
9442  - name: jsCore_auth
9443  - name: jsCore_compatibility_WT
9444  - name: jstestfuzz_WT
9445  - name: jstestfuzz_concurrent_WT
9446  - name: jstestfuzz_concurrent_replication_WT
9447  - name: jstestfuzz_concurrent_sharded_WT
9448  - name: jstestfuzz_replication_WT
9449  - name: jstestfuzz_sharded_WT
9450  - name: mongosTest
9451  - name: multiversion_WT
9452  - name: noPassthrough_WT
9453  - name: noPassthroughWithMongod_WT
9454  - name: bulk_gle_passthrough_WT
9455  - name: parallel_WT
9456  - name: parallel_compatibility_WT
9457  - name: concurrency_WT
9458  - name: concurrency_replication_WT
9459  - name: concurrency_sharded_WT
9460  - name: concurrency_simultaneous_WT
9461  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
9462  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
9463  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
9464  - name: replica_sets_WT
9465  - name: replica_sets_auth
9466  - name: replica_sets_jscore_passthrough_WT
9467  - name: master_slave_WT
9468  - name: master_slave_auth
9469  - name: master_slave_jscore_passthrough_WT
9470  - name: sharding_WT
9471  - name: sharding_auth
9472  - name: sharding_last_stable_mongos_and_mixed_shards
9473  - name: slow1_WT
9474  - name: serial_run_WT
9475  - name: sharded_collections_jscore_passthrough_WT
9476  - name: sharding_jscore_passthrough_WT
9477  - name: sharding_jscore_op_query_passthrough_WT
9478  - name: sharding_jscore_passthrough_wire_ops_WT
9479  - name: ssl
9480  - name: sslSpecial
9481  - name: tool_WT
9482  - name: package
9483    distros:
9484    - ubuntu1604-packer
9485  - name: push
9486    distros:
9487    - debian92-small
9488
9489
9490################################
9491# storage engine buildvariants #
9492################################
9493
9494- name: enterprise-rhel-62-64-bit-inmem
9495  display_name: Enterprise RHEL 6.2 (inMemory)
9496  modules:
9497  - enterprise
9498  run_on:
9499  - rhel62-small
9500  batchtime: 1440 # 1 day
9501  expansions:
9502    test_flags: --storageEngine=inMemory --excludeWithAnyTags=requires_persistence,requires_journaling
9503    compile_flags: --ssl MONGO_DISTMOD=rhel62 -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
9504    multiversion_platform: rhel62
9505    multiversion_edition: enterprise
9506    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
9507    use_scons_cache: true
9508    tooltags: "ssl sasl"
9509    build_mongoreplay: true
9510  tasks:
9511  - name: compile
9512    distros:
9513    - rhel62-large
9514  - name: compile_all
9515    distros:
9516    - rhel62-large
9517  - name: aggregation_WT
9518  - name: aggregation_auth
9519  - name: aggregation_read_concern_majority_passthrough_WT
9520  - name: aggregation_sharded_collections_passthrough_WT
9521  - name: audit
9522  - name: auth
9523  - name: auth_audit
9524  - name: bulk_gle_passthrough
9525  - name: causally_consistent_jscore_passthrough_WT
9526  - name: causally_consistent_jscore_passthrough_auth_WT
9527  - name: sharded_causally_consistent_jscore_passthrough_WT
9528  - name: change_streams_WT
9529  - name: change_streams_mongos_passthrough_WT
9530  - name: change_streams_mongos_sessions_passthrough_WT
9531  - name: change_streams_sharded_collections_passthrough_WT
9532  - name: concurrency
9533    distros:
9534    - rhel62-large  # Some workloads require a lot of memory, use a bigger machine for this suite.
9535  - name: concurrency_replication
9536  - name: concurrency_sharded
9537  - name: concurrency_sharded_causal_consistency
9538  - name: concurrency_sharded_causal_consistency_and_balancer
9539  - name: concurrency_sharded_with_stepdowns_WT
9540  - name: concurrency_sharded_with_stepdowns_and_balancer_WT
9541  - name: concurrency_simultaneous
9542  - name: dbtest
9543  - name: failpoints
9544  - name: failpoints_auth
9545  - name: gle_auth
9546  - name: gle_auth_basics_passthrough
9547  - name: gle_auth_basics_passthrough_write_cmd
9548  - name: gle_auth_write_cmd
9549  - name: integration_tests_replset
9550  - name: integration_tests_sharded
9551  - name: integration_tests_standalone
9552  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
9553  - name: jsCore_WT
9554  - name: jsCore_auth
9555  - name: jsCore_compatibility
9556  - name: jsCore_op_query
9557  - name: jstestfuzz_WT
9558  - name: jstestfuzz_concurrent_WT
9559  - name: jstestfuzz_concurrent_replication_WT
9560  - name: jstestfuzz_concurrent_replication_session_WT
9561  - name: jstestfuzz_concurrent_sharded_WT
9562  - name: jstestfuzz_concurrent_sharded_causal_consistency_WT
9563  - name: jstestfuzz_concurrent_sharded_continuous_stepdown
9564  - name: jstestfuzz_concurrent_sharded_session_WT
9565  - name: jstestfuzz_replication_WT
9566  - name: jstestfuzz_replication_session_WT
9567  - name: jstestfuzz_sharded_WT
9568  - name: jstestfuzz_sharded_continuous_stepdown
9569  - name: jstestfuzz_sharded_session_WT
9570  - name: jstestfuzz_sharded_causal_consistency_WT
9571  - name: logical_session_cache_replication_100ms_refresh_jscore_passthrough_WT
9572  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
9573  - name: logical_session_cache_replication_10sec_refresh_jscore_passthrough_WT
9574  - name: logical_session_cache_replication_default_refresh_jscore_passthrough_WT
9575  - name: logical_session_cache_sharding_100ms_refresh_jscore_passthrough_WT
9576  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
9577  - name: logical_session_cache_sharding_10sec_refresh_jscore_passthrough_WT
9578  - name: logical_session_cache_sharding_default_refresh_jscore_passthrough_WT
9579  - name: logical_session_cache_standalone_100ms_refresh_jscore_passthrough_WT
9580  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
9581  - name: logical_session_cache_standalone_10sec_refresh_jscore_passthrough_WT
9582  - name: logical_session_cache_standalone_default_refresh_jscore_passthrough_WT
9583  - name: master_slave_WT
9584  - name: master_slave_auth
9585  - name: master_slave_jscore_passthrough
9586  - name: mongosTest
9587  - name: noPassthrough
9588  - name: noPassthroughWithMongod
9589  - name: parallel
9590  - name: parallel_compatibility
9591  - name: read_concern_linearizable_passthrough
9592  - name: read_concern_majority_passthrough_WT
9593  - name: replica_sets_WT
9594  - name: replica_sets_auth
9595  - name: replica_sets_pv0
9596  - name: replica_sets_jscore_passthrough
9597  - name: replica_sets_jscore_fcv34_passthrough
9598  - name: retryable_writes_jscore_passthrough_WT
9599  - name: retryable_writes_jscore_stepdown_passthrough_WT
9600  - name: rollback_fuzzer_WT
9601  - name: sasl
9602  - name: session_jscore_passthrough_WT
9603  - name: sharded_collections_jscore_passthrough
9604  - name: sharding
9605  - name: sharding_auth
9606  - name: sharding_auth_audit_WT
9607  - name: sharding_gle_auth_basics_passthrough
9608  - name: sharding_gle_auth_basics_passthrough_write_cmd
9609  - name: sharding_jscore_passthrough
9610  - name: sharding_jscore_op_query_passthrough_WT
9611  - name: sharding_jscore_passthrough_wire_ops_WT
9612  - name: sharding_op_query_WT
9613  - name: slow1
9614  - name: serial_run
9615  - name: snmp
9616  - name: ssl
9617  - name: sslSpecial
9618  - name: tool
9619  - name: secondary_reads_passthrough
9620    distros:
9621    - rhel62-large
9622  - name: update_fuzzer_WT
9623  - name: update_fuzzer_replication_WT
9624  - name: write_concern_majority_passthrough_WT
9625
9626- name: linux-64-ephemeralForTest
9627  display_name: Linux (ephemeralForTest)
9628  run_on:
9629  - rhel62-small
9630  batchtime: 1440 # 1 day
9631  expansions:
9632    test_flags: --storageEngine=ephemeralForTest --excludeWithAnyTags=requires_persistence,requires_fsync,SERVER-21420,SERVER-21658,requires_journaling,requires_wiredtiger,requires_document_locking,requires_majority_read_concern
9633    compile_flags: -j$(grep -c ^processor /proc/cpuinfo) --dbg=off --opt=on --variables-files=etc/scons/mongodbtoolchain_gcc.vars
9634    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
9635    use_scons_cache: true
9636    tooltags: ""
9637    build_mongoreplay: true
9638  tasks:
9639  - name: compile
9640    distros:
9641    - rhel62-large
9642  - name: compile_all
9643    distros:
9644    - rhel62-large
9645  - name: aggregation_WT
9646  - name: aggregation_auth
9647  - name: auth
9648  - name: concurrency
9649    distros:
9650    - rhel62-large  # Some workloads require a lot of memory, use a bigger machine for this suite.
9651  - name: concurrency_replication
9652  - name: concurrency_sharded
9653  - name: concurrency_simultaneous
9654  - name: dbtest
9655  - name: failpoints
9656  - name: failpoints_auth
9657  - name: gle_auth
9658  - name: gle_auth_write_cmd
9659  - name: gle_auth_basics_passthrough
9660  - name: gle_auth_basics_passthrough_write_cmd
9661  - name: integration_tests_standalone
9662  - name: integration_tests_replset
9663  - name: integration_tests_sharded
9664  - name: sharding_gle_auth_basics_passthrough
9665  - name: sharding_gle_auth_basics_passthrough_write_cmd
9666  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
9667  - name: jsCore_WT
9668  - name: jsCore_auth
9669  - name: jsCore_op_query
9670  - name: jsCore_compatibility
9671  - name: jstestfuzz_WT
9672  - name: jstestfuzz_concurrent_WT
9673  - name: jstestfuzz_concurrent_replication_WT
9674  - name: jstestfuzz_concurrent_sharded_WT
9675  - name: jstestfuzz_replication_WT
9676  - name: jstestfuzz_sharded_WT
9677  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
9678  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
9679  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
9680  - name: mongosTest
9681  - name: noPassthrough
9682  - name: noPassthroughWithMongod
9683  - name: bulk_gle_passthrough
9684  - name: noPassthrough
9685  - name: noPassthroughWithMongod
9686  - name: parallel
9687  - name: parallel_compatibility
9688  - name: read_concern_linearizable_passthrough
9689  - name: replica_sets_WT
9690  - name: replica_sets_auth
9691  - name: replica_sets_pv0
9692  - name: replica_sets_jscore_passthrough
9693  - name: replica_sets_jscore_fcv34_passthrough
9694  - name: rollback_fuzzer_WT
9695  - name: master_slave_WT
9696  - name: master_slave_auth
9697  - name: master_slave_jscore_passthrough
9698  - name: sharding
9699  - name: sharding_auth
9700  - name: sharding_op_query_WT
9701  - name: slow1
9702  - name: serial_run
9703  - name: sharded_collections_jscore_passthrough
9704  - name: sharding_jscore_passthrough
9705  - name: sharding_jscore_op_query_passthrough_WT
9706  - name: sharding_jscore_passthrough_wire_ops_WT
9707  - name: tool
9708  - name: update_fuzzer_WT
9709  - name: update_fuzzer_replication_WT
9710
9711- name: enterprise-rhel-71-ppc64le-inmem
9712  display_name: Enterprise RHEL 7.1 PPC64LE (inMemory) DEBUG
9713  modules:
9714  - enterprise
9715  run_on:
9716  - rhel71-power8-test
9717  batchtime: 10080 # 7 days
9718  stepback: false
9719  expansions:
9720    # We need to compensate for SMT8 setting the cpu count very high and lower the amount of parallelism down
9721    compile_flags: --dbg=on --opt=on --ssl MONGO_DISTMOD=rhel71 -j$(echo "$(grep -c processor /proc/cpuinfo)/2" | bc) CCFLAGS="-mcpu=power8 -mtune=power8 -mcmodel=medium" --variables-files=etc/scons/mongodbtoolchain_gcc.vars
9722    num_jobs_available: $(echo "$(grep -c processor /proc/cpuinfo)/4" | bc)
9723    test_flags: --storageEngine=inMemory --excludeWithAnyTags=requires_persistence,requires_mmapv1,requires_journaling,blacklist_from_ppc64le
9724    tooltags: "ssl sasl"
9725    build_mongoreplay: true
9726  tasks:
9727  - name: compile
9728    distros:
9729    - rhel71-power8-build
9730  - name: compile_all
9731    distros:
9732    - rhel71-power8-build
9733  - name: aggregation_WT
9734  - name: aggregation_auth
9735  - name: aggregation_read_concern_majority_passthrough_WT
9736  - name: aggregation_sharded_collections_passthrough_WT
9737  - name: audit
9738  - name: auth
9739  - name: auth_audit
9740  - name: bulk_gle_passthrough
9741  - name: concurrency
9742  - name: concurrency_replication
9743  - name: concurrency_sharded
9744  - name: concurrency_simultaneous
9745  - name: dbtest
9746  - name: failpoints
9747  - name: failpoints_auth
9748  - name: gle_auth
9749  - name: gle_auth_basics_passthrough
9750  - name: gle_auth_basics_passthrough_write_cmd
9751  - name: gle_auth_write_cmd
9752  - name: integration_tests_replset
9753  - name: integration_tests_sharded
9754  - name: integration_tests_standalone
9755  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
9756  - name: jsCore_WT
9757  - name: jsCore_auth
9758  - name: jsCore_compatibility
9759  - name: jsCore_op_query
9760  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
9761  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
9762  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
9763  - name: mongosTest
9764  - name: noPassthrough
9765  - name: noPassthroughWithMongod
9766  - name: parallel
9767  - name: parallel_compatibility
9768  - name: read_concern_linearizable_passthrough
9769  - name: read_concern_majority_passthrough_WT
9770  - name: replica_sets_WT
9771  - name: replica_sets_auth
9772  - name: replica_sets_pv0
9773  - name: replica_sets_jscore_passthrough
9774  - name: master_slave_WT
9775  - name: master_slave_auth
9776  - name: master_slave_jscore_passthrough
9777  - name: sasl
9778  - name: secondary_reads_passthrough
9779  - name: sharded_collections_jscore_passthrough
9780  - name: sharding
9781  - name: sharding_auth
9782  - name: sharding_auth_audit_WT
9783  - name: sharding_gle_auth_basics_passthrough
9784  - name: sharding_gle_auth_basics_passthrough_write_cmd
9785  - name: sharding_jscore_passthrough
9786  - name: sharding_jscore_op_query_passthrough_WT
9787  - name: sharding_jscore_passthrough_wire_ops_WT
9788  - name: sharding_op_query_WT
9789  - name: slow1
9790  - name: serial_run
9791  - name: snmp
9792  - name: ssl
9793  - name: sslSpecial
9794  - name: tool
9795  - name: write_concern_majority_passthrough_WT
9796
9797###########################################
9798#     Experimental buildvariants          #
9799###########################################
9800
9801- name: ubuntu1604-debug-asan
9802  display_name: ~ ASAN Enterprise SSL Ubuntu 16.04 DEBUG
9803  modules:
9804  - enterprise
9805  run_on:
9806  - ubuntu1604-build
9807  stepback: true
9808  batchtime: 1440 # 1 day
9809  expansions:
9810    # We need llvm-symbolizer in the PATH for ASAN for clang-3.7 or later.
9811    variant_path_suffix: /opt/mongodbtoolchain/v2/bin
9812    lang_environment: LANG=C
9813    san_options: LSAN_OPTIONS="suppressions=etc/lsan.suppressions:report_objects=1" ASAN_OPTIONS=detect_leaks=1:check_initialization_order=true:strict_init_order=true:abort_on_error=1:disable_coredump=0:handle_abort=0:handle_segv=0:handle_sigbus=0:handle_sigill=0:handle_sigfpe=0
9814    compile_flags: --variables-files=etc/scons/mongodbtoolchain_clang.vars --dbg=on --opt=on --allocator=system --sanitize=address --ssl -j$(grep -c ^processor /proc/cpuinfo) --nostrip
9815    multiversion_platform: ubuntu1604
9816    multiversion_edition: enterprise
9817    num_jobs_available: $(($(grep -c ^processor /proc/cpuinfo) / 3)) # Avoid starting too many mongod's under ASAN build.
9818    tooltags: "ssl"
9819    build_mongoreplay: true
9820    hang_analyzer_dump_core: false
9821  tasks:
9822  - name: compile
9823  - name: compile_all
9824  - name: rollback_fuzzer_WT
9825  - name: aggregation_WT
9826  - name: aggregation_WT_ese
9827  - name: aggregation_auth
9828  - name: aggregation_facet_unwind_passthrough_WT
9829  - name: aggregation_read_concern_majority_passthrough_WT
9830  - name: aggregation_sharded_collections_passthrough_WT
9831  - name: audit_WT
9832  - name: auth_WT
9833  - name: auth_audit_WT
9834  - name: bulk_gle_passthrough_WT
9835  - name: causally_consistent_jscore_passthrough_WT
9836  - name: causally_consistent_jscore_passthrough_auth_WT
9837  - name: sharded_causally_consistent_jscore_passthrough_WT
9838  - name: change_streams_WT
9839  - name: change_streams_mongos_passthrough_WT
9840  - name: change_streams_mongos_sessions_passthrough_WT
9841  - name: change_streams_secondary_reads_WT
9842  - name: change_streams_sharded_collections_passthrough_WT
9843  - name: concurrency_WT
9844  - name: concurrency_replication_WT
9845  - name: concurrency_sharded_WT
9846  - name: concurrency_sharded_causal_consistency_WT
9847  - name: concurrency_sharded_causal_consistency_and_balancer_WT
9848  - name: concurrency_sharded_with_stepdowns_WT
9849  - name: concurrency_sharded_with_stepdowns_and_balancer_WT
9850  - name: concurrency_simultaneous_WT
9851  - name: dbtest_WT
9852  - name: disk_WT
9853  - name: ese_WT
9854  - name: failpoints
9855  - name: failpoints_auth
9856  - name: gle_auth_WT
9857  - name: gle_auth_basics_passthrough_WT
9858  - name: gle_auth_basics_passthrough_write_cmd_WT
9859  - name: gle_auth_write_cmd_WT
9860  - name: integration_tests_replset
9861  - name: integration_tests_sharded
9862  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
9863  - name: jsCore_WT
9864  - name: jsCore_WT_ese
9865  - name: jsCore_inMem
9866  - name: jsCore_auth
9867  - name: jsCore_compatibility_WT
9868  - name: jsCore_decimal_WT
9869  - name: jsCore_minimum_batch_size_WT
9870  - name: jsCore_op_query_WT
9871  - name: jsonSchema
9872  - name: logical_session_cache_replication_100ms_refresh_jscore_passthrough_WT
9873  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
9874  - name: logical_session_cache_replication_10sec_refresh_jscore_passthrough_WT
9875  - name: logical_session_cache_replication_default_refresh_jscore_passthrough_WT
9876  - name: logical_session_cache_sharding_100ms_refresh_jscore_passthrough_WT
9877  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
9878  - name: logical_session_cache_sharding_10sec_refresh_jscore_passthrough_WT
9879  - name: logical_session_cache_sharding_default_refresh_jscore_passthrough_WT
9880  - name: logical_session_cache_standalone_100ms_refresh_jscore_passthrough_WT
9881  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
9882  - name: logical_session_cache_standalone_10sec_refresh_jscore_passthrough_WT
9883  - name: logical_session_cache_standalone_default_refresh_jscore_passthrough_WT
9884  - name: master_slave_WT
9885  - name: master_slave_auth
9886  - name: master_slave_jscore_passthrough_WT
9887  - name: mongosTest
9888  - name: multiversion_auth
9889  - name: multiversion_WT
9890  - name: multiversion_multistorage_engine
9891  - name: noPassthroughWithMongod_WT
9892  - name: noPassthrough_WT
9893  - name: parallel_WT
9894  - name: parallel_compatibility_WT
9895  - name: read_concern_linearizable_passthrough_WT
9896  - name: read_concern_majority_passthrough_WT
9897  - name: read_only_WT
9898  - name: read_only_sharded_WT
9899  - name: replica_sets_WT
9900  - name: replica_sets_WT_ese
9901  - name: replica_sets_auth
9902  - name: replica_sets_pv0
9903  - name: replica_sets_jscore_passthrough_WT
9904  - name: replica_sets_initsync_jscore_passthrough_WT
9905  - name: replica_sets_initsync_static_jscore_passthrough_WT
9906  - name: replica_sets_resync_static_jscore_passthrough_WT
9907  - name: replica_sets_kill_primary_jscore_passthrough_WT
9908  - name: replica_sets_kill_secondaries_jscore_passthrough_WT
9909  - name: replica_sets_jscore_fcv34_passthrough_WT
9910  - name: retryable_writes_jscore_passthrough_WT
9911  - name: retryable_writes_jscore_stepdown_passthrough_WT
9912  - name: sasl
9913  - name: secondary_reads_passthrough
9914  - name: session_jscore_passthrough_WT
9915  - name: sharded_collections_jscore_passthrough_WT
9916  - name: sharding_WT
9917  - name: sharding_WT_ese
9918  - name: sharding_auth
9919  - name: sharding_auth_audit_WT
9920  - name: sharding_gle_auth_basics_passthrough_WT
9921  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
9922  - name: sharding_last_stable_mongos_and_mixed_shards
9923  - name: sharding_jscore_passthrough_WT
9924  - name: sharding_jscore_op_query_passthrough_WT
9925  - name: sharding_jscore_passthrough_wire_ops_WT
9926  - name: sharding_op_query_WT
9927  - name: slow1_WT
9928  - name: serial_run_WT
9929  - name: snmp_WT
9930  - name: ssl
9931  - name: sslSpecial
9932  - name: tool_WT
9933  - name: update_fuzzer_WT
9934  - name: update_fuzzer_replication_WT
9935  - name: write_concern_majority_passthrough_WT
9936
9937- name: ubuntu1604-asan
9938  display_name: ~ ASAN SSL Ubuntu 16.04
9939  run_on:
9940  - ubuntu1604-build
9941  stepback: true
9942  batchtime: 1440 # 1 day
9943  expansions:
9944    # We need llvm-symbolizer in the PATH for ASAN for clang-3.7 or later.
9945    variant_path_suffix: /opt/mongodbtoolchain/v2/bin
9946    lang_environment: LANG=C
9947    san_options: LSAN_OPTIONS="suppressions=etc/lsan.suppressions:report_objects=1" ASAN_OPTIONS=detect_leaks=1:check_initialization_order=true:strict_init_order=true:abort_on_error=1:disable_coredump=0:handle_abort=0:handle_segv=0:handle_sigbus=0:handle_sigill=0:handle_sigfpe=0
9948    compile_flags: --variables-files=etc/scons/mongodbtoolchain_clang.vars --opt=on --allocator=system --sanitize=address --ssl -j$(grep -c ^processor /proc/cpuinfo) --nostrip
9949    num_jobs_available: $(($(grep -c ^processor /proc/cpuinfo) / 3)) # Avoid starting too many mongod's under ASAN build.
9950    tooltags: "ssl"
9951    build_mongoreplay: true
9952    hang_analyzer_dump_core: false
9953  tasks:
9954  - name: compile
9955  - name: compile_all
9956  - name: jstestfuzz_WT
9957  - name: jstestfuzz_concurrent_WT
9958  - name: jstestfuzz_concurrent_replication_WT
9959  - name: jstestfuzz_concurrent_replication_session_WT
9960  - name: jstestfuzz_concurrent_sharded_WT
9961  - name: jstestfuzz_concurrent_sharded_causal_consistency_WT
9962  - name: jstestfuzz_concurrent_sharded_continuous_stepdown
9963  - name: jstestfuzz_concurrent_sharded_session_WT
9964  - name: jstestfuzz_replication_WT
9965  - name: jstestfuzz_replication_session_WT
9966  - name: jstestfuzz_sharded_WT
9967  - name: jstestfuzz_sharded_causal_consistency_WT
9968  - name: jstestfuzz_sharded_continuous_stepdown
9969  - name: jstestfuzz_sharded_session_WT
9970
9971- name: ubuntu1604-debug-ubsan
9972  display_name: ~ UBSAN Enterprise Ubuntu 16.04 DEBUG
9973  modules:
9974  - enterprise
9975  run_on:
9976  - ubuntu1604-build
9977  stepback: true
9978  batchtime: 1440 # 1 day
9979  expansions:
9980    # We need llvm-symbolizer in the PATH for UBSAN.
9981    variant_path_suffix: /opt/mongodbtoolchain/v2/bin
9982    lang_environment: LANG=C
9983    san_options: UBSAN_OPTIONS="print_stacktrace=1:handle_abort=0:handle_segv=0:handle_sigbus=0:handle_sigill=0:handle_sigfpe=0"
9984    compile_flags: --variables-files=etc/scons/mongodbtoolchain_clang.vars --dbg=on --opt=on --allocator=system --sanitize=undefined --ssl -j$(grep -c ^processor /proc/cpuinfo) --nostrip
9985    multiversion_platform: ubuntu1604
9986    multiversion_edition: enterprise
9987    num_jobs_available: $(($(grep -c ^processor /proc/cpuinfo) / 3)) # Avoid starting too many mongod's under UBSAN build.
9988    tooltags: "ssl sasl"
9989    build_mongoreplay: true
9990  tasks:
9991  - name: compile
9992  - name: compile_all
9993  - name: aggregation_WT
9994  - name: aggregation_WT_ese
9995  - name: rollback_fuzzer_WT
9996  - name: aggregation_auth
9997  - name: aggregation_facet_unwind_passthrough_WT
9998  - name: aggregation_read_concern_majority_passthrough_WT
9999  - name: aggregation_sharded_collections_passthrough_WT
10000  - name: audit_WT
10001  - name: auth_WT
10002  - name: auth_audit_WT
10003  - name: bulk_gle_passthrough_WT
10004  - name: causally_consistent_jscore_passthrough_WT
10005  - name: causally_consistent_jscore_passthrough_auth_WT
10006  - name: sharded_causally_consistent_jscore_passthrough_WT
10007  - name: change_streams_WT
10008  - name: change_streams_mongos_passthrough_WT
10009  - name: change_streams_mongos_sessions_passthrough_WT
10010  - name: change_streams_secondary_reads_WT
10011  - name: change_streams_sharded_collections_passthrough_WT
10012  - name: concurrency_WT
10013  - name: concurrency_replication_WT
10014  - name: concurrency_sharded_WT
10015  - name: concurrency_sharded_causal_consistency_WT
10016  - name: concurrency_sharded_causal_consistency_and_balancer_WT
10017  - name: concurrency_sharded_with_stepdowns_WT
10018  - name: concurrency_sharded_with_stepdowns_and_balancer_WT
10019  - name: concurrency_simultaneous_WT
10020  - name: dbtest_WT
10021  - name: disk_WT
10022  - name: ese_WT
10023  - name: failpoints
10024  - name: failpoints_auth
10025  - name: gle_auth_WT
10026  - name: gle_auth_basics_passthrough_WT
10027  - name: gle_auth_basics_passthrough_write_cmd_WT
10028  - name: gle_auth_write_cmd_WT
10029  - name: integration_tests_replset
10030  - name: integration_tests_sharded
10031  - name: integration_tests_standalone
10032  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
10033  - name: jsCore_WT
10034  - name: jsCore_WT_ese
10035  - name: jsCore_inMem
10036  - name: jsCore_auth
10037  - name: jsCore_compatibility_WT
10038  - name: jsCore_decimal_WT
10039  - name: jsCore_minimum_batch_size_WT
10040  - name: jsCore_op_query_WT
10041  - name: jsonSchema
10042  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
10043  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
10044  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
10045  - name: master_slave_WT
10046  - name: master_slave_auth
10047  - name: master_slave_jscore_passthrough_WT
10048  - name: mongosTest
10049  - name: multiversion_auth
10050  - name: multiversion_WT
10051  - name: multiversion_multistorage_engine
10052  - name: noPassthroughWithMongod_WT
10053  - name: noPassthrough_WT
10054  - name: parallel_WT
10055  - name: parallel_compatibility_WT
10056  - name: read_concern_linearizable_passthrough_WT
10057  - name: read_concern_majority_passthrough_WT
10058  - name: read_only_WT
10059  - name: read_only_sharded_WT
10060  - name: replica_sets_WT
10061  - name: replica_sets_WT_ese
10062  - name: replica_sets_auth
10063  - name: replica_sets_pv0
10064  - name: replica_sets_jscore_passthrough_WT
10065  - name: replica_sets_initsync_jscore_passthrough_WT
10066  - name: replica_sets_initsync_static_jscore_passthrough_WT
10067  - name: replica_sets_resync_static_jscore_passthrough_WT
10068  - name: replica_sets_kill_primary_jscore_passthrough_WT
10069  - name: replica_sets_kill_secondaries_jscore_passthrough_WT
10070  - name: replica_sets_jscore_fcv34_passthrough_WT
10071  - name: retryable_writes_jscore_passthrough_WT
10072  - name: retryable_writes_jscore_stepdown_passthrough_WT
10073  - name: sasl
10074  - name: secondary_reads_passthrough
10075  - name: session_jscore_passthrough_WT
10076  - name: sharded_collections_jscore_passthrough_WT
10077  - name: sharding_WT
10078  - name: sharding_WT_ese
10079  - name: sharding_auth
10080  - name: sharding_auth_audit_WT
10081  - name: sharding_gle_auth_basics_passthrough_WT
10082  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
10083  - name: sharding_last_stable_mongos_and_mixed_shards
10084  - name: sharding_jscore_passthrough_WT
10085  - name: sharding_jscore_op_query_passthrough_WT
10086  - name: sharding_jscore_passthrough_wire_ops_WT
10087  - name: sharding_op_query_WT
10088  - name: slow1_WT
10089  - name: serial_run_WT
10090  - name: snmp_WT
10091  - name: ssl
10092  - name: sslSpecial
10093  - name: tool_WT
10094  - name: update_fuzzer_WT
10095  - name: update_fuzzer_replication_WT
10096  - name: write_concern_majority_passthrough_WT
10097
10098- name: ubuntu1604-debug-aubsan-lite
10099  display_name: "! {A,UB}SAN Enterprise SSL Ubuntu 16.04 DEBUG"
10100  modules:
10101  - enterprise
10102  run_on:
10103  - ubuntu1604-build
10104  stepback: true
10105  expansions:
10106    # We need llvm-symbolizer in the PATH for ASAN for clang-3.7 or later.
10107    variant_path_suffix: /opt/mongodbtoolchain/v2/bin
10108    lang_environment: LANG=C
10109    san_options: UBSAN_OPTIONS="print_stacktrace=1:handle_abort=0:handle_segv=0:handle_sigbus=0:handle_sigill=0:handle_sigfpe=0" LSAN_OPTIONS="suppressions=etc/lsan.suppressions:report_objects=1" ASAN_OPTIONS=detect_leaks=1:check_initialization_order=true:strict_init_order=true:abort_on_error=1:disable_coredump=0:handle_abort=0:handle_segv=0:handle_sigbus=0:handle_sigill=0:handle_sigfpe=0
10110    compile_flags: --variables-files=etc/scons/mongodbtoolchain_clang.vars --dbg=on --opt=on --allocator=system --sanitize=undefined,address --ssl -j$(grep -c ^processor /proc/cpuinfo) --nostrip
10111    num_jobs_available: $(($(grep -c ^processor /proc/cpuinfo) / 3)) # Avoid starting too many mongod's under {A,UB}SAN build.
10112    tooltags: "ssl"
10113    build_mongoreplay: true
10114    hang_analyzer_dump_core: false
10115  tasks:
10116  - name: compile
10117  - name: compile_all
10118  - name: dbtest_WT
10119  - name: jsCore_WT
10120  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
10121  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
10122  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
10123  - name: watchdog_WT
10124
10125- name: ubuntu1604-debug-aubsan-async
10126  display_name: "~ {A,UB}SAN Enterprise SSL Ubuntu 16.04 async"
10127  modules:
10128  - enterprise
10129  run_on:
10130  - ubuntu1604-build
10131  stepback: true
10132  batchtime: 1440 # 1 day
10133  expansions:
10134    # We need llvm-symbolizer in the PATH for ASAN for clang-3.7 or later.
10135    variant_path_suffix: /opt/mongodbtoolchain/v2/bin
10136    lang_environment: LANG=C
10137    san_options: UBSAN_OPTIONS="print_stacktrace=1:handle_abort=0:handle_segv=0:handle_sigbus=0:handle_sigill=0:handle_sigfpe=0" LSAN_OPTIONS="suppressions=etc/lsan.suppressions:report_objects=1" ASAN_OPTIONS=detect_leaks=1:check_initialization_order=true:strict_init_order=true:abort_on_error=1:disable_coredump=0:handle_abort=0:handle_segv=0:handle_sigbus=0:handle_sigill=0:handle_sigfpe=0
10138    compile_flags: --variables-files=etc/scons/mongodbtoolchain_clang.vars --dbg=on --opt=on --allocator=system --sanitize=undefined,address --ssl -j$(grep -c ^processor /proc/cpuinfo) --nostrip
10139    num_jobs_available: $(($(grep -c ^processor /proc/cpuinfo) / 3)) # Avoid starting too many mongod's under {A,UB}SAN build.
10140    tooltags: "ssl"
10141    build_mongoreplay: false
10142    hang_analyzer_dump_core: false
10143    test_flags: --serviceExecutor=adaptive
10144  tasks:
10145  - name: compile
10146  - name: compile_all
10147  - name: aggregation_WT
10148  - name: aggregation_WT_ese
10149  - name: aggregation_auth
10150  - name: aggregation_facet_unwind_passthrough_WT
10151  - name: aggregation_read_concern_majority_passthrough_WT
10152  - name: aggregation_sharded_collections_passthrough_WT
10153# TODO Put back when SERVER-30471 is done
10154#  - name: audit_WT
10155#  - name: auth_WT
10156#  - name: auth_audit_WT
10157  - name: bulk_gle_passthrough_WT
10158  - name: causally_consistent_jscore_passthrough_WT
10159  - name: causally_consistent_jscore_passthrough_auth_WT
10160  - name: sharded_causally_consistent_jscore_passthrough_WT
10161  - name: concurrency_WT
10162  - name: concurrency_replication_WT
10163  - name: concurrency_sharded_WT
10164  - name: concurrency_simultaneous_WT
10165  - name: dbtest_WT
10166  - name: disk_WT
10167  - name: ese_WT
10168  - name: failpoints
10169  - name: failpoints_auth
10170  - name: gle_auth_WT
10171  - name: gle_auth_basics_passthrough_WT
10172  - name: gle_auth_basics_passthrough_write_cmd_WT
10173  - name: gle_auth_write_cmd_WT
10174  - name: integration_tests_replset
10175  - name: integration_tests_sharded
10176  - name: integration_tests_standalone
10177  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
10178  - name: jsCore_WT
10179  - name: jsCore_WT_ese
10180  - name: jsCore_inMem
10181  - name: jsCore_auth
10182  - name: jsCore_compatibility_WT
10183  - name: jsCore_decimal_WT
10184  - name: jsCore_minimum_batch_size_WT
10185  - name: jsCore_op_query_WT
10186  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
10187  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
10188  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
10189  - name: mongosTest
10190  - name: multiversion_auth
10191  - name: multiversion_WT
10192  - name: multiversion_multistorage_engine
10193  - name: noPassthroughWithMongod_WT
10194  - name: noPassthrough_WT
10195  - name: parallel_WT
10196  - name: parallel_compatibility_WT
10197  - name: read_concern_linearizable_passthrough_WT
10198  - name: read_concern_majority_passthrough_WT
10199  - name: read_only_WT
10200  - name: read_only_sharded_WT
10201# TODO Put back when SERVER-30471 is done
10202#  - name: replica_sets_WT
10203#  - name: replica_sets_WT_ese
10204#  - name: replica_sets_auth
10205#  - name: replica_sets_pv0
10206  - name: replica_sets_jscore_passthrough_WT
10207  - name: replica_sets_initsync_jscore_passthrough_WT
10208  - name: replica_sets_initsync_static_jscore_passthrough_WT
10209  - name: replica_sets_resync_static_jscore_passthrough_WT
10210  - name: replica_sets_kill_primary_jscore_passthrough_WT
10211  - name: replica_sets_kill_secondaries_jscore_passthrough_WT
10212  - name: master_slave_WT
10213  - name: master_slave_auth
10214  - name: master_slave_jscore_passthrough_WT
10215  - name: sasl
10216  - name: secondary_reads_passthrough
10217  - name: sharded_collections_jscore_passthrough_WT
10218  - name: sharding_WT
10219  - name: sharding_WT_ese
10220  - name: sharding_auth
10221  - name: sharding_auth_audit_WT
10222  - name: sharding_gle_auth_basics_passthrough_WT
10223  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
10224  - name: sharding_last_stable_mongos_and_mixed_shards
10225  - name: sharding_jscore_passthrough_WT
10226  - name: sharding_jscore_op_query_passthrough_WT
10227  - name: sharding_jscore_passthrough_wire_ops_WT
10228  - name: sharding_op_query_WT
10229  - name: slow1_WT
10230  - name: serial_run_WT
10231  - name: snmp_WT
10232  - name: ssl
10233  - name: sslSpecial
10234  - name: tool_WT
10235  - name: write_concern_majority_passthrough_WT
10236
10237- name: ubuntu1604-debug-legacy-transportlayer
10238  display_name: "Enterprise SSL Ubuntu 16.04 DEBUG Legacy Transport"
10239  modules:
10240  - enterprise
10241  run_on:
10242  - ubuntu1604-build
10243  stepback: true
10244  batchtime: 1440 # 1 day
10245  expansions:
10246    # We need llvm-symbolizer in the PATH for ASAN for clang-3.7 or later.
10247    variant_path_suffix: /opt/mongodbtoolchain/v2/bin
10248    lang_environment: LANG=C
10249    compile_flags: --variables-files=etc/scons/mongodbtoolchain_clang.vars --dbg=on --opt=on --allocator=system --ssl -j$(grep -c ^processor /proc/cpuinfo) --nostrip
10250    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
10251    tooltags: "ssl"
10252    build_mongoreplay: false
10253    hang_analyzer_dump_core: false
10254    use_scons_cache: true
10255    test_flags: --transportLayer=legacy --excludeWithAnyTags=cannot_run_with_legacy_transport
10256  tasks:
10257  - name: compile
10258  - name: compile_all
10259  - name: aggregation_WT
10260  - name: aggregation_WT_ese
10261  - name: aggregation_auth
10262  - name: aggregation_facet_unwind_passthrough_WT
10263  - name: aggregation_read_concern_majority_passthrough_WT
10264  - name: aggregation_sharded_collections_passthrough_WT
10265  - name: audit_WT
10266  - name: auth_WT
10267  - name: auth_audit_WT
10268  - name: bulk_gle_passthrough_WT
10269  - name: causally_consistent_jscore_passthrough_WT
10270  - name: causally_consistent_jscore_passthrough_auth_WT
10271  - name: sharded_causally_consistent_jscore_passthrough_WT
10272  - name: concurrency_WT
10273  - name: concurrency_replication_WT
10274  - name: concurrency_sharded_WT
10275  - name: concurrency_simultaneous_WT
10276  - name: dbtest_WT
10277  - name: disk_WT
10278  - name: ese_WT
10279  - name: failpoints
10280  - name: failpoints_auth
10281  - name: gle_auth_WT
10282  - name: gle_auth_basics_passthrough_WT
10283  - name: gle_auth_basics_passthrough_write_cmd_WT
10284  - name: gle_auth_write_cmd_WT
10285  - name: integration_tests_replset
10286  - name: integration_tests_sharded
10287  - name: integration_tests_standalone
10288  - name: jsCore # TODO SERVER-32036: Remove when jsCore_auth depends on jsCore_WT.
10289  - name: jsCore_WT
10290  - name: jsCore_WT_ese
10291  - name: jsCore_inMem
10292  - name: jsCore_auth
10293  - name: jsCore_compatibility_WT
10294  - name: jsCore_decimal_WT
10295  - name: jsCore_minimum_batch_size_WT
10296  - name: jsCore_op_query_WT
10297  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough_WT
10298  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough_WT
10299  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough_WT
10300  - name: mongosTest
10301  - name: multiversion_auth
10302  - name: multiversion_WT
10303  - name: multiversion_multistorage_engine
10304  - name: noPassthroughWithMongod_WT
10305  - name: noPassthrough_WT
10306  - name: parallel_WT
10307  - name: parallel_compatibility_WT
10308  - name: read_concern_linearizable_passthrough_WT
10309  - name: read_concern_majority_passthrough_WT
10310  - name: read_only_WT
10311  - name: read_only_sharded_WT
10312  - name: replica_sets_WT
10313  - name: replica_sets_WT_ese
10314  - name: replica_sets_auth
10315  - name: replica_sets_pv0
10316  - name: replica_sets_jscore_passthrough_WT
10317  - name: replica_sets_initsync_jscore_passthrough_WT
10318  - name: replica_sets_initsync_static_jscore_passthrough_WT
10319  - name: replica_sets_resync_static_jscore_passthrough_WT
10320  - name: replica_sets_kill_primary_jscore_passthrough_WT
10321  - name: replica_sets_kill_secondaries_jscore_passthrough_WT
10322  - name: master_slave_WT
10323  - name: master_slave_auth
10324  - name: master_slave_jscore_passthrough_WT
10325  - name: sasl
10326  - name: sharded_collections_jscore_passthrough_WT
10327  - name: sharding_WT
10328  - name: sharding_WT_ese
10329  - name: sharding_auth
10330  - name: sharding_auth_audit_WT
10331  - name: sharding_gle_auth_basics_passthrough_WT
10332  - name: sharding_gle_auth_basics_passthrough_write_cmd_WT
10333  - name: sharding_last_stable_mongos_and_mixed_shards
10334  - name: sharding_jscore_passthrough_WT
10335  - name: sharding_jscore_op_query_passthrough_WT
10336  - name: sharding_jscore_passthrough_wire_ops_WT
10337  - name: sharding_op_query_WT
10338  - name: slow1_WT
10339  - name: serial_run_WT
10340  - name: snmp_WT
10341  - name: ssl
10342  - name: sslSpecial
10343  - name: tool_WT
10344  - name: write_concern_majority_passthrough_WT
10345
10346- name: enterprise-ubuntu-dynamic-1604-64-bit
10347  display_name: "* Shared Library Enterprise Ubuntu 16.04"
10348  modules:
10349  - enterprise
10350  expansions:
10351    lang_environment: LANG=C
10352    compile_flags: --ssl MONGO_DISTMOD=ubuntu1604 -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars --link-model=dynamic --allocator=system
10353    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
10354    use_scons_cache: true
10355    scons_cache_mode: all
10356    tooltags: "ssl sasl"
10357    build_mongoreplay: true
10358  tasks:
10359  - name: compile
10360    distros:
10361    - ubuntu1604-build
10362  - name: compile_all
10363    distros:
10364    - ubuntu1604-build
10365
10366- name: tig-daily-cron
10367  modules:
10368  - enterprise
10369  display_name: "~ TIG Daily Cron"
10370  run_on:
10371  - rhel62-small
10372  batchtime: 1440 # 1 day
10373  stepback: false
10374  tasks:
10375# Test lifecycle is temporarily disabled to reduce load on Evergreen API.
10376# - name: update_test_lifecycle
10377  - name: fetch_test_lifecycle
10378  - name: lint_fuzzer_sanity_all
10379
10380- name: enterprise-rhel-62-64-bit-mmapv1
10381  display_name: Enterprise RHEL 6.2 MMAPv1
10382  modules:
10383  - enterprise
10384  run_on:
10385  - rhel62-small
10386  batchtime: 1440 # 1 day
10387  expansions:
10388    test_flags: --storageEngine=mmapv1 --excludeWithAnyTags=requires_wiredtiger,requires_document_locking,requires_majority_read_concern
10389    compile_flags: >-
10390      --ssl MONGO_DISTMOD=rhel62 -j$(grep -c ^processor /proc/cpuinfo) --release
10391      --variables-files=etc/scons/mongodbtoolchain_gcc.vars
10392    multiversion_platform: rhel62
10393    multiversion_edition: enterprise
10394    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
10395    has_packages: true
10396    packager_script: packager-enterprise.py
10397    packager_arch: x86_64
10398    packager_distro: rhel62
10399    repo_edition: enterprise
10400    use_scons_cache: true
10401    tooltags: "ssl sasl"
10402    build_mongoreplay: true
10403  tasks:
10404  - name: compile
10405  - name: aggregation
10406  - name: audit
10407  - name: auth
10408  - name: auth_audit
10409  - name: bulk_gle_passthrough
10410  - name: concurrency
10411  - name: concurrency_replication
10412  - name: concurrency_sharded
10413  - name: concurrency_sharded_causal_consistency
10414  - name: concurrency_sharded_causal_consistency_and_balancer
10415  - name: concurrency_simultaneous
10416  - name: dbtest
10417  - name: disk
10418  - name: dur_jscore_passthrough
10419  - name: durability
10420  - name: gle_auth
10421  - name: gle_auth_basics_passthrough
10422  - name: gle_auth_basics_passthrough_write_cmd
10423  - name: gle_auth_write_cmd
10424  - name: jsCore
10425  - name: jsCore_compatibility
10426  - name: jsCore_decimal
10427  - name: jsCore_op_query
10428  - name: jstestfuzz
10429  - name: jstestfuzz_concurrent
10430  - name: jstestfuzz_concurrent_replication
10431  - name: jstestfuzz_concurrent_replication_session
10432  - name: jstestfuzz_concurrent_sharded
10433  - name: jstestfuzz_concurrent_sharded_causal_consistency
10434  - name: jstestfuzz_concurrent_sharded_continuous_stepdown
10435  - name: jstestfuzz_concurrent_sharded_session
10436  - name: jstestfuzz_replication
10437  - name: jstestfuzz_replication_initsync
10438  - name: jstestfuzz_replication_resync
10439  - name: jstestfuzz_replication_session
10440  - name: jstestfuzz_sharded
10441  - name: jstestfuzz_sharded_causal_consistency
10442  - name: jstestfuzz_sharded_continuous_stepdown
10443  - name: jstestfuzz_sharded_session
10444  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
10445  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
10446  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
10447  - name: master_slave
10448  - name: master_slave_jscore_passthrough
10449  - name: mmap
10450  - name: multiversion
10451  - name: multiversion_auth
10452  - name: noPassthrough
10453  - name: noPassthroughWithMongod
10454  - name: parallel
10455  - name: parallel_compatibility
10456  - name: read_concern_linearizable_passthrough
10457    distros:
10458    - rhel62-large
10459  - name: read_only
10460  - name: read_only_sharded
10461  - name: replica_sets
10462    distros:
10463    - rhel62-large
10464  - name: replica_sets_initsync_jscore_passthrough
10465    distros:
10466    - rhel62-large
10467  - name: replica_sets_initsync_static_jscore_passthrough
10468    distros:
10469    - rhel62-large
10470  - name: replica_sets_jscore_passthrough
10471    distros:
10472    - rhel62-large
10473  - name: replica_sets_jscore_fcv34_passthrough
10474    distros:
10475    - rhel62-large
10476  - name: replica_sets_resync_static_jscore_passthrough
10477    distros:
10478    - rhel62-large
10479  - name: rollback_fuzzer
10480  - name: serial_run
10481  - name: sharded_collections_jscore_passthrough
10482  - name: sharding
10483    distros:
10484    - rhel62-large
10485  - name: sharding_gle_auth_basics_passthrough
10486  - name: sharding_gle_auth_basics_passthrough_write_cmd
10487  - name: sharding_jscore_passthrough
10488  - name: slow1
10489  - name: snmp
10490  - name: tool
10491  - name: update_fuzzer
10492  - name: update_fuzzer_replication
10493
10494- name: enterprise-windows-64-2k8-mmapv1
10495  display_name: Enterprise Windows 2008R2 MMAPv1
10496  modules:
10497  - enterprise
10498  run_on:
10499  - windows-64-vs2015-small
10500  batchtime: 1440 # 1 day
10501  expansions:
10502    test_flags: --storageEngine=mmapv1 --excludeWithAnyTags=requires_wiredtiger,requires_document_locking,requires_majority_read_concern
10503    platform_decompress: unzip
10504    exe: .exe
10505    multiversion_platform: windows
10506    multiversion_edition: enterprise
10507    msi_target: msi
10508    content_type: application/zip
10509    compile_flags: >-
10510      --release --ssl MONGO_DISTMOD=windows-64 CPPPATH="c:/openssl/include
10511      c:/sasl/include c:/snmp/include c:/curl/include"  LIBPATH="c:/openssl/lib c:/sasl/lib
10512      c:/snmp/lib c:/curl/lib" -j$(( $(grep -c ^processor /proc/cpuinfo) / 2 )) --dynamic-windows
10513      --win-version-min=ws08r2
10514    num_scons_compile_all_jobs_available: $(( $(grep -c ^processor /proc/cpuinfo) / 4 ))
10515    python: python
10516    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
10517    ext: zip
10518    use_scons_cache: true
10519    tooltags: "ssl sasl"
10520    build_mongoreplay: false
10521  tasks:
10522  - name: compile
10523  - name: aggregation
10524  - name: audit
10525  - name: auth
10526  - name: auth_audit
10527  - name: bulk_gle_passthrough
10528  - name: concurrency
10529    distros:
10530    - windows-64-vs2015-large
10531  - name: concurrency_replication
10532    distros:
10533    - windows-64-vs2015-large
10534  - name: concurrency_sharded
10535    distros:
10536    - windows-64-vs2015-large
10537  - name: concurrency_sharded_causal_consistency
10538    distros:
10539    - windows-64-vs2015-large
10540  - name: concurrency_sharded_causal_consistency_and_balancer
10541    distros:
10542    - windows-64-vs2015-large
10543  - name: concurrency_simultaneous
10544    distros:
10545    - windows-64-vs2015-large
10546  - name: dbtest
10547  - name: disk
10548  - name: dur_jscore_passthrough
10549  - name: durability
10550  - name: gle_auth
10551  - name: gle_auth_basics_passthrough
10552  - name: gle_auth_basics_passthrough_write_cmd
10553  - name: gle_auth_write_cmd
10554  - name: jsCore
10555  - name: jsCore_compatibility
10556  - name: jsCore_decimal
10557  - name: jsCore_op_query
10558  - name: jstestfuzz
10559  - name: jstestfuzz_concurrent
10560  - name: jstestfuzz_concurrent_replication
10561  - name: jstestfuzz_concurrent_replication_session
10562  - name: jstestfuzz_concurrent_sharded
10563  - name: jstestfuzz_concurrent_sharded_causal_consistency
10564  - name: jstestfuzz_concurrent_sharded_continuous_stepdown
10565  - name: jstestfuzz_concurrent_sharded_session
10566  - name: jstestfuzz_replication
10567  - name: jstestfuzz_replication_initsync
10568  - name: jstestfuzz_replication_resync
10569  - name: jstestfuzz_replication_session
10570  - name: jstestfuzz_sharded
10571  - name: jstestfuzz_sharded_causal_consistency
10572  - name: jstestfuzz_sharded_continuous_stepdown
10573  - name: jstestfuzz_sharded_session
10574  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
10575  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
10576  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
10577  - name: master_slave
10578  - name: master_slave_jscore_passthrough
10579  - name: mmap
10580  - name: noPassthrough
10581  - name: noPassthroughWithMongod
10582  - name: parallel
10583  - name: parallel_compatibility
10584  - name: read_concern_linearizable_passthrough
10585    distros:
10586    - windows-64-vs2015-large
10587  - name: read_only
10588  - name: read_only_sharded
10589  - name: replica_sets
10590    distros:
10591    - windows-64-vs2015-large
10592  - name: replica_sets_initsync_jscore_passthrough
10593    distros:
10594    - windows-64-vs2015-large
10595  - name: replica_sets_initsync_static_jscore_passthrough
10596    distros:
10597    - windows-64-vs2015-large
10598  - name: replica_sets_jscore_passthrough
10599    distros:
10600    - windows-64-vs2015-large
10601  - name: replica_sets_jscore_fcv34_passthrough
10602    distros:
10603    - windows-64-vs2015-large
10604  - name: replica_sets_resync_static_jscore_passthrough
10605    distros:
10606    - windows-64-vs2015-large
10607  - name: rollback_fuzzer
10608  - name: serial_run
10609  - name: sharded_collections_jscore_passthrough
10610  - name: sharding
10611    distros:
10612    - windows-64-vs2015-large
10613  - name: sharding_gle_auth_basics_passthrough
10614  - name: sharding_gle_auth_basics_passthrough_write_cmd
10615  - name: sharding_jscore_passthrough
10616  - name: slow1
10617  - name: snmp
10618  - name: tool
10619  - name: update_fuzzer
10620  - name: update_fuzzer_replication
10621
10622- name: enterprise-osx-1010-mmapv1
10623  display_name: Enterprise OS X 10.10 MMAPv1
10624  modules:
10625  - enterprise
10626  run_on:
10627  - macos-1012
10628  batchtime: 1440 # 1 day
10629  expansions:
10630    test_flags: --storageEngine=mmapv1 --excludeWithAnyTags=requires_wiredtiger,requires_ssl_mongo_tools,requires_document_locking,requires_majority_read_concern
10631    compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app
10632    compile_flags: >-
10633      --ssl -j$(sysctl -n hw.logicalcpu) --release --libc++ CCFLAGS="-mmacosx-version-min=10.10"
10634      LINKFLAGS="-mmacosx-version-min=10.10" LIBPATH="$PWD/openssl_install_dir/lib"
10635      CPPPATH="$PWD/openssl_install_dir/include"
10636    multiversion_platform: osx
10637    multiversion_edition: enterprise
10638    num_jobs_available: 1
10639    tooltags: "ssl sasl"
10640    build_mongoreplay: true
10641    build_openssl: true
10642    openssl_config_flags: "-mmacosx-version-min=10.10"
10643    openssl_make_flags: "-j$(sysctl -n hw.logicalcpu)"
10644  tasks:
10645  - name: compile
10646  - name: aggregation
10647  - name: audit
10648  - name: auth
10649  - name: auth_audit
10650  - name: bulk_gle_passthrough
10651  - name: concurrency
10652  - name: concurrency_replication
10653  - name: concurrency_sharded
10654  - name: concurrency_sharded_causal_consistency
10655  - name: concurrency_sharded_causal_consistency_and_balancer
10656  - name: concurrency_simultaneous
10657  - name: dbtest
10658  - name: disk
10659  - name: dur_jscore_passthrough
10660  - name: durability
10661  - name: gle_auth
10662  - name: gle_auth_basics_passthrough
10663  - name: gle_auth_basics_passthrough_write_cmd
10664  - name: gle_auth_write_cmd
10665  - name: jsCore
10666  - name: jsCore_compatibility
10667  - name: jsCore_decimal
10668  - name: jsCore_op_query
10669  - name: jstestfuzz
10670  - name: jstestfuzz_concurrent
10671  - name: jstestfuzz_concurrent_replication
10672  - name: jstestfuzz_concurrent_replication_session
10673  - name: jstestfuzz_concurrent_sharded
10674  - name: jstestfuzz_concurrent_sharded_causal_consistency
10675  - name: jstestfuzz_concurrent_sharded_continuous_stepdown
10676  - name: jstestfuzz_concurrent_sharded_session
10677  - name: jstestfuzz_replication
10678  - name: jstestfuzz_replication_initsync
10679  - name: jstestfuzz_replication_resync
10680  - name: jstestfuzz_replication_session
10681  - name: jstestfuzz_sharded
10682  - name: jstestfuzz_sharded_causal_consistency
10683  - name: jstestfuzz_sharded_continuous_stepdown
10684  - name: jstestfuzz_sharded_session
10685  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
10686  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
10687  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
10688  - name: master_slave
10689  - name: master_slave_jscore_passthrough
10690  - name: mmap
10691  - name: noPassthrough
10692  - name: noPassthroughWithMongod
10693  - name: parallel
10694  - name: parallel_compatibility
10695  - name: read_concern_linearizable_passthrough
10696  - name: read_only
10697  - name: read_only_sharded
10698  - name: replica_sets
10699  - name: replica_sets_initsync_jscore_passthrough
10700  - name: replica_sets_initsync_static_jscore_passthrough
10701  - name: replica_sets_jscore_passthrough
10702  - name: replica_sets_jscore_fcv34_passthrough
10703  - name: replica_sets_resync_static_jscore_passthrough
10704  - name: rollback_fuzzer
10705  - name: serial_run
10706  - name: sharded_collections_jscore_passthrough
10707  - name: sharding_gle_auth_basics_passthrough
10708  - name: sharding_gle_auth_basics_passthrough_write_cmd
10709  - name: sharding_jscore_passthrough
10710  - name: slow1
10711  - name: tool
10712  - name: update_fuzzer
10713
10714- name: linux-64-duroff-mmapv1
10715  display_name: Linux (No Journal) MMAPv1
10716  run_on:
10717  - rhel62-small
10718  batchtime: 1440 # 1 day
10719  expansions:
10720    push_path: linux
10721    push_bucket: downloads.mongodb.org
10722    push_name: linux-duroff
10723    push_arch: x86_64
10724    compile_flags: -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_gcc.vars
10725    num_jobs_available: $(grep -c ^processor /proc/cpuinfo)
10726    test_flags: --nojournal --storageEngine=mmapv1 --excludeWithAnyTags=requires_wiredtiger,requires_journaling,requires_document_locking,requires_majority_read_concern
10727    use_scons_cache: true
10728    tooltags: ""
10729    build_mongoreplay: false
10730  tasks:
10731  - name: compile
10732    distros:
10733    - rhel62-large
10734  - name: compile_all
10735    distros:
10736    - rhel62-large
10737  - name: aggregation
10738  - name: auth
10739  - name: bulk_gle_passthrough
10740  - name: concurrency
10741  - name: concurrency_replication
10742  - name: concurrency_sharded
10743  - name: concurrency_simultaneous
10744  - name: dbtest
10745  - name: disk
10746  - name: durability
10747  - name: dur_jscore_passthrough
10748  - name: failpoints
10749  - name: failpoints_auth
10750  - name: jsCore
10751  - name: jsCore_auth
10752  - name: jsCore_compatibility
10753  - name: jstestfuzz
10754  - name: jstestfuzz_concurrent
10755  - name: jstestfuzz_concurrent_replication
10756  - name: jstestfuzz_concurrent_sharded
10757  - name: jstestfuzz_replication
10758  - name: jstestfuzz_sharded
10759  - name: logical_session_cache_replication_1sec_refresh_jscore_passthrough
10760  - name: logical_session_cache_sharding_1sec_refresh_jscore_passthrough
10761  - name: logical_session_cache_standalone_1sec_refresh_jscore_passthrough
10762  - name: master_slave
10763  - name: master_slave_jscore_passthrough
10764  - name: mmap
10765  - name: noPassthrough
10766  - name: noPassthroughWithMongod
10767  - name: parallel
10768  - name: parallel_compatibility
10769  - name: replica_sets
10770  - name: replica_sets_auth
10771  - name: replica_sets_jscore_passthrough
10772  - name: serial_run
10773  - name: sharding
10774  - name: sharding_auth
10775  - name: sharding_jscore_passthrough
10776  - name: slow1
10777  - name: tool
10778