stepback: false command_type: system pre: post: - command: shell.exec params: working_dir: work script: | source ./dsienv.sh make_artifact.sh - command: s3.put params: aws_key: ${aws_key} aws_secret: ${aws_secret} local_file: work/dsi-artifacts.tgz remote_file: ${project_dir}/${build_variant}/${revision}/${task_id}/${version_id}/logs/dsi-artifacts-${task_name}-${build_id}-${execution}.${ext|tgz} bucket: mciuploads permissions: public-read content_type: ${content_type|application/x-gzip} display_name: Dsi Artifacts - Execution ${execution} - command: s3.put params: aws_key: ${aws_key} aws_secret: ${aws_secret} local_file: src/workloads/workloads/jsdoc/jsdocs-redirect.html remote_file: ${project_dir}/${build_variant}/${revision}/${task_id}/${version_id}/logs/workloads-${task_name}-${build_id}.html bucket: mciuploads permissions: public-read content_type: text/html display_name: workloads documentation - command: attach.results params: file_location: work/report.json - command: "json.send" params: name: "perf" file: "work/perf.json" - command: shell.exec params: working_dir: work script: | source ./dsienv.sh if [ -e /data/infrastructure_provisioning/terraform/provisioned.${cluster} ]; then mark_idle.sh fi - command: shell.exec params: working_dir: src script: | # removes files from the (local) scons cache when it's over a # threshold, to the $prune_ratio percentage. Ideally override # these default values in the distro config in evergreen. if [ -d "${scons_cache_path}" ]; then ${python|/opt/mongodbtoolchain/v2/bin/python2} buildscripts/scons_cache_prune.py --cache-dir ${scons_cache_path} --cache-size ${scons_cache_size|200} --prune-ratio ${scons_prune_ratio|0.8} fi functions: "git get project": &git_get_project command: git.get_project params: directory: src revisions: # for each module include revision as : ${_rev} dsi: ${dsi_rev} enterprise: ${enterprise_rev} linkbench: ${linkbench_rev} genny: ${genny_rev} workloads: ${workloads_rev} wtdevelop: ${wtdevelop_rev} "compile mongodb": - command: shell.exec params: working_dir: src script: | set -o errexit set -o verbose # We get the raw version string (r1.2.3-45-gabcdef) from git MONGO_VERSION=$(git describe) # If we're going to compile the upstream wtdevelop repository for wiredtiger, add # that githash to version string. if [ "${compile-variant|}" = "-wtdevelop" ]; then WT_VERSION=$(cd src/third_party/wtdevelop; git describe | cut -c 9-) MONGO_VERSION="$MONGO_VERSION-wtdevelop-$WT_VERSION" fi # If this is a patch build, we add the patch version id to the version string so we know # this build was a patch, and which evergreen task it came from if [ "${is_patch|}" = "true" ]; then MONGO_VERSION="$MONGO_VERSION-patch-${version_id}" fi # This script converts the generated version string into a sanitized version string for # use by scons and uploading artifacts as well as information about for the scons cache. MONGO_VERSION=$MONGO_VERSION USE_SCONS_CACHE=${use_scons_cache|false} ${python|/opt/mongodbtoolchain/v2/bin/python2} buildscripts/generate_compile_expansions.py --out compile_expansions.yml # Then we load the generated version data into the agent so we can use it in task definitions - command: expansions.update params: file: src/compile_expansions.yml - command: shell.exec params: working_dir: src/src/mongo/gotools/src/github.com/mongodb/mongo-tools script: | set -o verbose set -o errexit # make sure newlines in the scripts are handled correctly by windows if [ "Windows_NT" = "$OS" ]; then set -o igncr fi; # set_goenv provides set_goenv(), print_ldflags() and print_tags() used below . ./set_goenv.sh GOROOT="" set_goenv || exit go version build_tools="bsondump mongostat mongofiles mongoexport mongoimport mongorestore mongodump mongotop" if [ "${build_mongoreplay}" = "true" ]; then build_tools="$build_tools mongoreplay" fi for i in $build_tools; do go build -ldflags "$(print_ldflags)" ${args} -tags "$(print_tags ${tooltags})" -o "../../../../../../mongo-tools/$i${exe|}" $i/main/$i.go "../../../../../../mongo-tools/$i${exe|}" --version done - command: shell.exec params: working_dir: src script: | set -o errexit set -o verbose ${python|/opt/mongodbtoolchain/v2/bin/python2} ./buildscripts/scons.py ${compile_flags|} ${scons_cache_args|} mongo${extension} --use-new-tools mongod${extension} mongos${extension} MONGO_VERSION=${version} mkdir -p mongodb/bin mkdir -p mongodb/jstests/hooks mv mongo${extension|} mongodb/bin mv mongod${extension|} mongodb/bin mv mongos${extension|} mongodb/bin mv src/mongo-tools/* mongodb/bin if [ -d jstests/hooks ] then echo "Fetching JS test DB correctness checks from directory jstests" cp -a jstests/* mongodb/jstests echo "Now adding our own special run_validate_collections.js wrapper" mv mongodb/jstests/hooks/run_validate_collections.js mongodb/jstests/hooks/run_validate_collections.actual.js cat << EOF > mongodb/jstests/hooks/run_validate_collections.js print("NOTE: run_validate_collections.js will skip the oplog!"); TestData = { skipValidationNamespaces: ['local.oplog.rs'] }; load('jstests/hooks/run_validate_collections.actual.js'); EOF fi tar czf mongodb${compile-variant|}.tar.gz mongodb - command: s3.put params: aws_key: ${aws_key} aws_secret: ${aws_secret} local_file: src/mongodb${compile-variant|}.tar.gz remote_file: ${project_dir}/${version_id}/${revision}/${platform}/mongodb${compile-variant|}-${version_id}.tar.gz bucket: mciuploads permissions: public-read content_type: ${content_type|application/x-gzip} display_name: mongodb${compile-variant|}.tar.gz "use WiredTiger develop" : command: shell.exec params: working_dir: src script: | set -o errexit set -o verbose if [ "${compile-variant|}" = "-wtdevelop" ]; then cd src/third_party for wtdir in api dist examples ext lang src test tools ; do rm -rf wiredtiger/$wtdir mv wtdevelop/$wtdir wiredtiger/ done fi "prepare environment": - command: shell.exec params: script: | rm -rf ./* mkdir src mkdir work - command: manifest.load # Calling the git.get_project command here will clone the mongodb/mongo repository, as well as # the repositories defined in the build variant's "modules" section. - *git_get_project - command: shell.exec params: working_dir: work script: | cat > bootstrap.yml < runtime.yml < aws_ssh_key.pem chmod 400 aws_ssh_key.pem cat > runtime_secret.yml <- --ssl MONGO_DISTMOD=linux-64-amzn-build -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars platform: linux project_dir: &project_dir dsi tooltags: "" use_scons_cache: true run_on: - "linux-64-amzn-build" tasks: - name: compile - <<: *compile-linux-64-amzn name: wtdevelop-compile-linux-64-amzn display_name: WT Develop Compile on Linux64 Amazon modules: - wtdevelop expansions: <<: *compile-linux-64-amzn-expansions compile-variant: -wtdevelop - name: compile-amazon2 display_name: Compile on Amazon Linux 2 modules: - enterprise batchtime: 1440 # 24 hours expansions: <<: *compile-linux-64-amzn-expansions compile_flags: >- --ssl MONGO_DISTMOD=amazon2 -j$(grep -c ^processor /proc/cpuinfo) --release --variables-files=etc/scons/mongodbtoolchain_gcc.vars compile-variant: -enterprise run_on: - "amazon2-build" tasks: - name: compile ####################################### # Linux Buildvariants # ####################################### - name: linux-1-node-replSet display_name: Linux 1-Node ReplSet batchtime: 1440 # 24 hours modules: &modules - dsi - genny - workloads - linkbench expansions: setup: single-replica cluster: single platform: linux project_dir: *project_dir authentication: enabled storageEngine: wiredTiger run_on: - "rhel70-perf-single" depends_on: - name: compile variant: compile-linux-64-amzn tasks: &1nodetasks - name: industry_benchmarks - name: crud_workloads - name: mixed_workloads - name: misc_workloads - name: map_reduce_workloads - name: smoke_test - name: retryable_writes_workloads - name: non_sharded_workloads - name: bestbuy_agg - name: bestbuy_agg_out - name: bestbuy_query - name: change_streams_throughput - name: change_streams_latency - name: snapshot_reads - name: linkbench - name: tpcc - name: genny_workloads - name: big_update - name: linux-standalone display_name: Linux Standalone batchtime: 1440 # 24 hours modules: *modules expansions: setup: standalone cluster: single platform: linux project_dir: *project_dir authentication: enabled storageEngine: wiredTiger run_on: - "rhel70-perf-single" depends_on: - name: compile variant: compile-linux-64-amzn tasks: &standalonetasks - name: industry_benchmarks - name: crud_workloads - name: genny_workloads - name: mixed_workloads - name: misc_workloads - name: map_reduce_workloads - name: smoke_test - name: non_sharded_workloads - name: bestbuy_agg - name: bestbuy_agg_out - name: bestbuy_query - name: big_update - name: linux-standalone-audit display_name: Linux Standalone Audit batchtime: 10080 # 7 days modules: *modules expansions: setup: standalone-audit cluster: single platform: linux project_dir: *project_dir authentication: enabled storageEngine: wiredTiger compile-variant: -enterprise run_on: - "rhel70-perf-single" depends_on: - name: compile variant: compile-amazon2 tasks: - name: industry_benchmarks - name: crud_workloads - name: smoke_test - name: linux-3-shard display_name: Linux 3-Shard Cluster batchtime: 10080 # 7 days modules: *modules expansions: setup: shard cluster: shard platform: linux project_dir: *project_dir authentication: enabled storageEngine: wiredTiger run_on: - "rhel70-perf-shard" depends_on: - name: compile variant: compile-linux-64-amzn tasks: - name: industry_benchmarks - name: crud_workloads - name: genny_workloads - name: mixed_workloads - name: misc_workloads - name: map_reduce_workloads - name: smoke_test - name: industry_benchmarks_wmajority - name: mongos_workloads - name: mongos_large_catalog_workloads - name: change_streams_throughput - name: change_streams_latency - name: change_streams_multi_mongos - name: linux-shard-lite display_name: Linux Shard Lite Cluster batchtime: 1440 # 24 hours modules: *modules expansions: setup: shard-lite cluster: shard-lite platform: linux project_dir: *project_dir authentication: disabled storageEngine: wiredTiger run_on: - "rhel70-perf-shard-lite" depends_on: - name: compile variant: compile-linux-64-amzn tasks: &shardlitetasks - name: bestbuy_agg - name: bestbuy_agg_out - name: bestbuy_query - name: change_streams_latency - name: change_streams_throughput - name: industry_benchmarks - name: industry_benchmarks_wmajority - name: linkbench - name: mixed_workloads - name: mongos_workloads - name: mongos_large_catalog_workloads - name: move_chunk_workloads - name: move_chunk_waiting_workloads - name: retryable_writes_workloads - name: smoke_test - name: linux-3-node-replSet display_name: Linux 3-Node ReplSet batchtime: 1440 # 24 hours modules: *modules expansions: setup: replica cluster: replica platform: linux project_dir: *project_dir authentication: enabled storageEngine: wiredTiger run_on: - "rhel70-perf-replset" depends_on: - name: compile variant: compile-linux-64-amzn tasks: &3nodetasks - name: industry_benchmarks - name: industry_benchmarks_secondary_reads - name: crud_workloads - name: genny_workloads - name: mixed_workloads - name: misc_workloads - name: map_reduce_workloads - name: smoke_test - name: retryable_writes_workloads - name: industry_benchmarks_wmajority - name: secondary_performance - name: non_sharded_workloads - name: bestbuy_agg - name: bestbuy_agg_out - name: bestbuy_query - name: change_streams_throughput - name: change_streams_latency - name: snapshot_reads - name: secondary_reads - name: tpcc - name: linkbench - name: big_update - name: linux-3-node-replSet-initialsync display_name: Linux 3-Node ReplSet Initial Sync batchtime: 1440 # 24 hours modules: *modules expansions: setup: replica-2node cluster: replica platform: linux storageEngine: wiredTiger project_dir: *project_dir depends_on: - name: compile variant: compile-linux-64-amzn run_on: - "rhel70-perf-replset" tasks: - name: initialsync - name: initialsync-logkeeper-short - name: linux-replSet-initialsync-logkeeper display_name: Linux ReplSet Initial Sync LogKeeper batchtime: 10080 # 7 days modules: *modules expansions: setup: initialsync-logkeeper cluster: initialsync-logkeeper platform: linux storageEngine: wiredTiger project_dir: *project_dir run_on: - "rhel70-perf-initialsync-logkeeper" depends_on: - name: compile variant: compile-linux-64-amzn tasks: - name: initialsync-logkeeper ####################################### # WT Develop Linux Buildvariants # ####################################### - name: wtdevelop-1-node-replSet display_name: WT Develop 1-Node ReplSet batchtime: 1440 # 24 hours modules: *modules expansions: setup: single-replica cluster: single platform: linux project_dir: *project_dir compile-variant: -wtdevelop authentication: enabled storageEngine: wiredTiger run_on: - "rhel70-perf-single" depends_on: - name: compile variant: wtdevelop-compile-linux-64-amzn tasks: *1nodetasks - name: wtdevelop-standalone display_name: WT Develop Standalone batchtime: 1440 # 24 hours modules: *modules expansions: setup: standalone cluster: single platform: linux project_dir: *project_dir compile-variant: -wtdevelop authentication: enabled storageEngine: wiredTiger run_on: - "rhel70-perf-single" depends_on: - name: compile variant: wtdevelop-compile-linux-64-amzn tasks: *standalonetasks - name: wtdevelop-3-node-replSet display_name: WT Develop 3-Node ReplSet batchtime: 1440 # 24 hours modules: *modules expansions: setup: replica cluster: replica platform: linux project_dir: *project_dir compile-variant: -wtdevelop authentication: enabled storageEngine: wiredTiger run_on: - "rhel70-perf-replset" depends_on: - name: compile variant: wtdevelop-compile-linux-64-amzn tasks: *3nodetasks # Disabled: SERVER-35586 #- name: wtdevelop-shard-lite # display_name: WT Develop Shard Lite Cluster # batchtime: 1440 # 24 hours # modules: *modules # expansions: # setup: shard-lite # cluster: shard-lite # platform: linux # project_dir: *project_dir # compile-variant: -wtdevelop # authentication: enabled # storageEngine: wiredTiger # run_on: # - "rhel70-perf-shard-lite" # depends_on: # - name: compile # variant: wtdevelop-compile-linux-64-amzn # tasks: *shardlitetasks