summaryrefslogtreecommitdiff
path: root/src/mongo/gotools/common.yml
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/gotools/common.yml')
-rw-r--r--src/mongo/gotools/common.yml1535
1 files changed, 1535 insertions, 0 deletions
diff --git a/src/mongo/gotools/common.yml b/src/mongo/gotools/common.yml
new file mode 100644
index 00000000000..8bf5b266d89
--- /dev/null
+++ b/src/mongo/gotools/common.yml
@@ -0,0 +1,1535 @@
+#######################################
+# Tools Driver Config for MCI #
+#######################################
+# default command type
+command_type: system
+
+# run the same task in the previous revision if the current task fails
+stepback: true
+disable_cleanup: true
+
+mongo_tools_variables:
+
+## List of tests to run on each buildvariant
+ mongo_tools_task_lists:
+ osx_1010_task_list: &osx_1010_tasks
+ - name: db
+ - name: dist
+ - name: integration
+ - name: integration-auth
+ - name: legacy28
+ - name: legacy26
+ - name: legacy24
+ - name: qa-tests
+ - name: qa-dump-restore-archiving
+ - name: qa-dump-restore-gzip
+ - name: unit
+ osx_1010_ssl_task_list: &osx_1010_ssl_tasks
+ - name: dist
+ - name: qa-tests
+ solaris_task_list: &solaris_tasks
+ - name: db
+ - name: dist
+ - name: integration
+ - name: integration-auth
+ - name: legacy28
+ - name: legacy26
+ - name: legacy24
+ ubuntu1204_task_list: &ubuntu1204_tasks
+ - name: db
+ - name: dist
+ - name: integration
+ - name: integration-auth
+ - name: legacy28
+ - name: legacy28-wt
+ - name: lint-go
+ - name: lint-js
+ - name: qa-tests
+ - name: qa-tests-unstable
+ - name: qa-dump-restore-archiving
+ - name: qa-dump-restore-gzip
+ - name: qa-tests-wt
+ - name: text
+ - name: unit
+ - name: util
+ - name: vet
+ ubuntu1204_ssl_task_list: &ubuntu1204_ssl_tasks
+ - name: dist
+ - name: integration
+ - name: integration-auth
+ - name: legacy28
+ - name: qa-tests
+ - name: qa-tests-unstable
+ ubuntu1204_enterprise_task_list: &ubuntu1204_enterprise_tasks
+ - name: db
+ - name: dist
+ - name: integration
+ - name: integration-auth
+ - name: kerberos
+ - name: legacy28
+ - name: legacy26
+ - name: legacy24
+ - name: qa-tests
+ - name: text
+ - name: util
+ ubuntu1204_race_task_list: &ubuntu1204_race_tasks
+ - name: db
+ - name: dist
+ - name: integration
+ - name: integration-auth
+ - name: legacy28
+ - name: legacy28-wt
+ - name: legacy26
+ - name: legacy24
+ - name: qa-tests
+ - name: qa-tests-wt
+ - name: text
+ - name: unit
+ - name: util
+ windows_32_task_list: &windows_32_tasks
+ - name: db
+ distros:
+ - windows-64-vs2013-test
+ - name: dist
+ - name: integration
+ - name: integration-auth
+ - name: legacy28
+ distros:
+ - windows-64-vs2013-test
+ - name: legacy26
+ distros:
+ - windows-64-vs2013-test
+ - name: legacy24
+ distros:
+ - windows-64-vs2013-test
+ - name: unit
+ windows_64_task_list: &windows_64_tasks
+ - name: db
+ - name: dist
+ - name: integration
+ - name: integration-auth
+ - name: legacy28
+ distros:
+ - windows-64-vs2013-test
+ - name: legacy26
+ distros:
+ - windows-64-vs2013-test
+ - name: legacy24
+ distros:
+ - windows-64-vs2013-test
+ - name: qa-tests
+ distros:
+ - windows-64-vs2013-test
+ - name: qa-dump-restore-archiving
+ distros:
+ - windows-64-vs2013-test
+ - name: qa-dump-restore-gzip
+ distros:
+ - windows-64-vs2013-test
+ - name: unit
+ windows_64_ssl_task_list: &windows_64_ssl_tasks
+ - name: dist
+ - name: integration
+ - name: integration-auth
+ - name: legacy28
+ - name: qa-tests
+ windows_64_enterprise_task_list: &windows_64_enterprise_tasks
+ - name: db
+ - name: dist
+ - name: integration
+ - name: integration-auth
+ - name: kerberos
+ - name: legacy28
+ distros:
+ - windows-64-vs2013-test
+ - name: qa-tests
+ distros:
+ - windows-64-vs2013-test
+ - name: unit
+ rhel71_enterprise_task_list: &rhel71_enterprise_tasks
+ - name: db
+ - name: dist
+ - name: integration
+ - name: integration-auth
+ #- name: kerberos
+ - name: qa-dump-restore-archiving
+ - name: qa-dump-restore-gzip
+ - name: qa-tests
+ - name: qa-tests-unstable
+ - name: qa-tests-wt
+ - name: text
+ - name: util
+
+
+## Common mongodb arguments
+ mongod_arguments:
+ default: &mongod_default_startup_args
+ mongod_args: &mongod_default_startup_args_string "--port 33333"
+ ssl: &mongod_ssl_startup_args
+ mongod_args: "--port 33333 --sslMode requireSSL --sslCAFile common/db/openssl/testdata/ca.pem --sslPEMKeyFile common/db/openssl/testdata/server.pem"
+ # Set storage engine as mmapv1 for 32 bit variants because WiredTiger requires 64 bit support.
+ win32: &mongod_win32_startup_args
+ mongod_args: "--port 33333 --storageEngine=mmapv1"
+
+ mongo_arguments:
+ default: &mongo_default_startup_args
+ mongo_args: &mongo_default_startup_args_string "--port 33333"
+ ssl: &mongo_ssl_startup_args
+ mongo_args: "--port 33333 --ssl --sslCAFile ./common/db/openssl/testdata/ca.pem --sslPEMKeyFile ./common/db/openssl/testdata/server.pem --sslAllowInvalidCertificates"
+
+functions:
+ "run legacy tests":
+ command: shell.exec
+ type: test
+ params:
+ working_dir: src
+ script: |
+ mv ./mongodb/mongod${extension} .
+ mv ./mongodb/mongo${extension} .
+ mv ${test_path}/* .
+ chmod +x mongo*
+ python buildscripts/smoke.py ${smoke_use_ssl} --nopreallocj --with-cleanbb --mongod ./mongod --mongo ./mongo --report-file report.json --continue-on-failure --buildlogger-builder MCI_${build_variant} --buildlogger-buildnum ${builder_num|} --buildlogger-credentials ./mci.buildlogger --buildlogger-phase ${task_name}_${execution} ${smoke_args} tool
+
+ "run qa-tests":
+ command: shell.exec
+ type: test
+ params:
+ working_dir: src
+ script: |
+ set -o verbose
+ set -e
+ mv ./mongodb/mongod${extension} .
+ mv ./mongodb/mongo${extension} .
+ mv ./mongodb/mongos${extension} .
+ mv test/qa-tests/* .
+ chmod +x mongo*
+ if [ -f bsondump ]; then
+ chmod +x bsondump
+ fi
+ rm -rf /data/install /data/multiversion
+ if [ "${multiversion_override}" != "skip" ]; then
+ python buildscripts/setup_multiversion_mongodb.py /data/install /data/multiversion ${arch} ${multiversion_override|2.6 2.4} --latest ${smoke_use_ssl} --os="${mongo_os}"
+ fi
+ chmod 400 jstests/libs/key*
+
+ PATH=$PATH:/data/multiversion python buildscripts/resmoke.py --suite=${resmoke_suite} --continueOnFailure --log=buildlogger --reportFile=report.json ${resmoke_args}
+
+ "build tool":
+ command: shell.exec
+ type: test
+ params:
+ working_dir: src
+ script: |
+ echo "Building ${tool}..."
+ if [ "Windows_NT" = "$OS" ]; then
+ set -o igncr
+ fi;
+ if [ '${library_path}' != '' ]; then
+ export ${library_path}
+ fi
+
+ # In RHEL 5.5, /usr/bin/ld can't handle --build-id parameters, so
+ # use a wrapper if it's present on the system
+ #
+ if [ -d /opt/ldwrapper/bin ]
+ then
+ export PATH=/opt/ldwrapper/bin:$PATH
+ fi
+
+ sed -i.bak "s/built-without-version-string/$(git describe)/" common/options/options.go
+ sed -i.bak "s/built-without-git-spec/$(git rev-parse HEAD)/" common/options/options.go
+
+ . ./set_gopath.sh
+ ${gorootvars} go build ${args} ${build_tags} -o bin/${tool} ${tool}/main/${tool}.go
+ ./bin/${tool} --version
+
+ "download mongod":
+ command: shell.exec
+ params:
+ working_dir: src
+ script: |
+ set -x
+ mongotarget=$(if [ "${mongo_target}" ]; then echo "${mongo_target}"; else echo "${mongo_os}"; fi)
+ dlurl=$(python binaryurl.py --edition=${mongo_edition} --target=$mongotarget --version=${mongo_version})
+ filename=$(echo $dlurl | sed -e "s_.*/__")
+ mkdir mongodb
+ cd mongodb
+ curl -s $dlurl --output $filename
+ ${decompress} $filename
+ rm $filename
+ chmod +x ./mongodb-*/bin/*
+ if [ "${only_shell}" ]; then
+ mv -f ./mongodb-*/bin/mongo${extension} .
+ else
+ mv -f ./mongodb-*/bin/* .
+ fi
+ rm -rf ./mongodb-*
+
+ "fetch tool" :
+ command: s3.get
+ params:
+ bucket: mciuploads
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ local_file: src/${tool}${extension}
+ remote_file: mongo-tools/binaries/${build_id}/${edition|community}/${tool}${extension}
+
+ "generate coverage html + text":
+ command: shell.exec
+ type: test
+ params:
+ working_dir: src
+ script: |
+ set -o verbose
+ if [ "${coverage}" = "true" ]; then
+ if [ "Windows_NT" = "$OS" ]; then
+ set -o igncr
+ fi;
+ . ./set_gopath.sh
+ go tool cover -html=coverage.out -o coverage.html
+ go tool cover -func=coverage.out -o coverage.txt
+ fi;
+
+ "get buildnumber":
+ command: keyval.inc
+ params:
+ key: "${build_variant}_tools"
+ destination: "builder_num"
+
+ "move coverage data":
+ command: shell.exec
+ params:
+ working_dir: src
+ script: |
+ set -o verbose
+ if [ "${coverage}" = "true" ]; then
+ mv ${package}/coverage.out .
+ fi
+
+ "run unit test":
+ command: shell.exec
+ type: test
+ params:
+ working_dir: src
+ script: |
+ if [ "Windows_NT" = "$OS" ]; then
+ set -o igncr
+ fi;
+ . ./set_gopath.sh
+ if [ '${library_path}' != '' ]; then
+ export ${library_path}
+ fi
+ export MONGODB_KERBEROS_PASSWORD=${kerberos_password}
+ export basedir=`pwd`
+ cd ${package}
+ go test ${coverage_args} ${args} ${build_tags} -test.v > unit.suite
+ export exitcode=$?
+ cat unit.suite
+ cp unit.suite $basedir/.
+ exit $exitcode
+
+ "setup integration test":
+ command: shell.exec
+ params:
+ working_dir: src
+ # Set up Kerberos stuff: run kinit if necessary, and add KDC to registry
+ # on Windows (see https://wiki.mongodb.com/display/DH/Testing+Kerberos)
+ script: |
+ if [ '${run_kinit}' = 'true' ]
+ then
+ echo "${kerberos_password}" | kinit -p drivers@LDAPTEST.10GEN.CC;
+ fi;
+ if [ "Windows_NT" = "$OS" ]; then
+ cmd /c "REG ADD HKLM\SYSTEM\ControlSet001\Control\Lsa\Kerberos\Domains\LDAPTEST.10GEN.CC /v KdcNames /d ldaptest.10gen.cc /t REG_MULTI_SZ /f"
+ fi;
+
+ "setup permissions":
+ command: shell.exec
+ params:
+ working_dir: src
+ script: |
+ chmod 700 set_gopath.sh
+
+ "run tool unit tests":
+ command: shell.exec
+ type: test
+ params:
+ working_dir: src
+ script: |
+ if [ "Windows_NT" = "$OS" ]; then
+ set -o igncr
+ fi;
+ . ./set_gopath.sh
+
+ # run unit tests under common package
+ for i in "common/bsonutil" "common/json" "common/archive" "common/log" "common/options" "common/progress" "common/text"; do
+ cd $i
+ COMMON_SUBPKG=$(basename $i)
+ COVERAGE_ARGS=""
+ if [ "${run_coverage}" ]; then
+ COVERAGE_ARGS="-coverprofile=coverage_$COMMON_SUBPKG.out"
+ fi;
+ ${library_path} go test $COVERAGE_ARGS ${args} ${build_tags} -test.v > $COMMON_SUBPKG.suite
+ if [ $? -ne 0 ]; then
+ echo "suite failed, will exit with error on finish"
+ export exitcode=1
+ fi
+ cat $COMMON_SUBPKG.suite
+ cp $COMMON_SUBPKG.suite ../../
+ cd ../..
+ done
+
+ #TODO mongotop needs a test
+ for i in mongoimport mongoexport mongostat mongooplog mongorestore mongodump mongofiles; do
+ cd $i
+ COVERAGE_ARGS=""
+ if [ "${run_coverage}" ]; then
+ COVERAGE_ARGS="-coverprofile=coverage_$i.out"
+ fi;
+ ${library_path} go test $COVERAGE_ARGS ${args} ${build_tags} -test.v > $i.suite
+ if [ $? -ne 0 ]; then
+ echo "suite failed, will exit with error on finish"
+ export exitcode=1
+ fi
+ cat $i.suite
+ cp $i.suite ../.
+ cd ..
+ done
+ exit $exitcode
+
+ "run tool integration tests":
+ command: shell.exec
+ type: test
+ params:
+ working_dir: src
+ script: |
+ if [ "Windows_NT" = "$OS" ]; then
+ set -o igncr
+ export MONGODB_KERBEROS_PASSWORD=${kerberos_password}
+ fi;
+ . ./set_gopath.sh
+ if [ "${library_path}" != "" ]; then
+ export ${library_path}
+ fi;
+
+ if [ "${create_mongod_users_command}" != "" ]; then
+ export AUTH_USERNAME=${auth_username}
+ export AUTH_PASSWORD=${auth_password}
+ echo "${create_mongod_users_command}" | ./mongodb/mongo${extension} ${mongo_args} admin
+ fi;
+
+ for i in mongoimport mongoexport mongostat mongooplog mongorestore mongodump mongofiles; do
+ cd $i
+ COVERAGE_ARGS=""
+ if [ "${run_coverage}" ]; then
+ COVERAGE_ARGS="-coverprofile=coverage_$i.out"
+ fi;
+ ${library_path} go test $COVERAGE_ARGS -test.v ${args} ${build_tags} > $i.suite
+ if [ $? -ne 0 ]; then
+ echo "suite failed, will exit with error on finish"
+ export exitcode=1
+ fi
+ cat $i.suite
+ cp $i.suite ../.
+ cd ..
+ done
+ exit $exitcode
+
+ "create coverage reports":
+ command: shell.exec
+ type: test
+ params:
+ working_dir: src
+ script: |
+ if [ "Windows_NT" = "$OS" ]; then
+ set -o igncr
+ fi;
+
+ . ./set_gopath.sh
+
+ for i in mongoimport mongoexport mongostat mongooplog mongorestore mongodump mongofiles; do
+ cd $i
+ perl -pe 's/.*src/github.com\/mongodb\/mongo-tools/' coverage_$i.out > coverage_$i_rewrite.out
+ ${library_path} go tool cover -html=coverage_$i_rewrite.out -o coverage_$i.html
+ ${library_path} go tool cover -func=coverage_$i_rewrite.out -o coverage_$i.txt
+ cd ..
+ done
+
+ "upload html coverage":
+ command: s3.put
+ params:
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ local_file: src/${coverage_pkg}/coverage_${coverage_pkg}.html
+ remote_file: mongo-tools/coverage/${coverage_pkg}/${task_id}.html
+ bucket: mciuploads
+ permissions: public-read
+ content_type: text/html
+ build_variants: ["ubuntu", "windows-64"]
+ display_name: ${coverage_pkg}-html
+
+ "upload text coverage":
+ command: s3.put
+ params:
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ local_file: src/${coverage_pkg}/coverage_${coverage_pkg}.txt
+ remote_file: mongo-tools/coverage/${coverage_pkg}/${task_id}.txt
+ bucket: mciuploads
+ permissions: public-read
+ content_type: text/plain
+ build_variants: ["ubuntu", "windows-64"]
+ display_name: ${coverage_pkg}-text
+
+ "setup credentials" :
+ command: shell.exec
+ params:
+ working_dir: src
+ silent: true
+ script: |
+ cat > mci.buildlogger <<END_OF_CREDS
+ slavename='${slave}'
+ passwd='${passwd}'
+ builder='MCI_${build_variant}'
+ build_num=${builder_num}
+ build_phase='${task_name}_${execution}'
+ END_OF_CREDS
+
+ "start mongod":
+ command: shell.exec
+ params:
+ working_dir: src
+ background: true
+ script: |
+ set -o verbose
+ rm -rf mongodb/${db_files_dir|db_files} mongodb/${logfile|run.log};
+ mkdir mongodb/${db_files_dir|db_files};
+ echo "Starting mongod...";
+ ./mongodb/mongod${extension} ${mongod_args} --dbpath mongodb/db_files --setParameter=enableTestCommands=1
+
+ "wait for mongod to be ready":
+ command: shell.exec
+ params:
+ working_dir: src
+ script: |
+ set -o verbose
+ SECONDS=0
+ while true ; do
+ ./mongodb/mongo${extension} ${mongo_args} </dev/null 2>/dev/null >/dev/null
+ if [ "$?" = "0" ]; then
+ echo "mongod ready";
+ exit 0
+ else
+ SECONDS=`expr $SECONDS + 1`
+ if [ $SECONDS -gt 20 ]; then
+ echo "mongod not ready after 20 seconds"
+ exit 1
+ fi
+ echo "waiting for mongod to be ready..." ;
+ sleep 1 ;
+ fi
+ done
+
+ "upload tool":
+ command: s3.put
+ params:
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ local_file: src/bin/${tool}
+ remote_file: mongo-tools/binaries/${build_id}/${edition|community}/${tool}${extension}
+ bucket: mciuploads
+ permissions: public-read
+ content_type: application/octet-stream
+ display_name: ${tool}
+
+pre:
+ - command: shell.exec
+ params:
+ silent: true
+ script: |
+ ${killall_mci|pkill -9 mongo; pkill -9 mongodump; pkill -9 mongoexport; pkill -9 mongoimport; pkill -9 mongofiles; pkill -9 mongooplog; pkill -9 mongorestore; pkill -9 mongostat; pkill -9 mongotop; pkill -9 mongod; pkill -9 mongos; pkill -f buildlogger.py; pkill -f smoke.py} >/dev/null 2>&1
+ rm -rf src /data/db/*
+ exit 0
+
+post:
+ - command: attach.results
+ params:
+ file_location: src/report.json
+ - command: shell.exec
+ params:
+ silent: true
+ script: |
+ ${killall_mci|pkill -9 mongo; pkill -9 mongodump; pkill -9 mongoexport; pkill -9 mongoimport; pkill -9 mongofiles; pkill -9 mongooplog; pkill -9 mongorestore; pkill -9 mongostat; pkill -9 mongotop; pkill -9 mongod; pkill -9 mongos; pkill -f buildlogger.py; pkill -f smoke.py} >/dev/null 2>&1
+ exit 0
+ - command: gotest.parse_files
+ params:
+ files: ["src/*.suite"]
+ - command: shell.exec
+ params:
+ script: |
+ rm -rf /data/db/*
+ exit 0
+
+
+tasks:
+- name: db
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - command: expansions.update
+ params:
+ updates:
+ - key: "package"
+ value: "common/db"
+ - key: "args"
+ value: "-test.types=db"
+ - func: "download mongod"
+ vars:
+ mongo_version: "3.2"
+ - func: "start mongod"
+ - func: "wait for mongod to be ready"
+ - func: "setup integration test"
+ - func: "run unit test"
+
+- name: dist
+ depends_on:
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - command: shell.exec
+ params:
+ working_dir: src
+ script: |
+ rm -rf bin/
+ mkdir bin
+ # bsondump
+ - func: "build tool"
+ vars:
+ tool: bsondump
+ - func: "upload tool"
+ vars:
+ tool: bsondump
+ # mongodump
+ - func: "build tool"
+ vars:
+ tool: mongodump
+ - func: "upload tool"
+ vars:
+ tool: mongodump
+ # mongoexport
+ - func: "build tool"
+ vars:
+ tool: mongoexport
+ - func: "upload tool"
+ vars:
+ tool: mongoexport
+ # mongofiles
+ - func: "build tool"
+ vars:
+ tool: mongofiles
+ - func: "upload tool"
+ vars:
+ tool: mongofiles
+ # mongoimport
+ - func: "build tool"
+ vars:
+ tool: mongoimport
+ - func: "upload tool"
+ vars:
+ tool: mongoimport
+ # mongooplog
+ - func: "build tool"
+ vars:
+ tool: mongooplog
+ - func: "upload tool"
+ vars:
+ tool: mongooplog
+ # mongorestore
+ - func: "build tool"
+ vars:
+ tool: mongorestore
+ - func: "upload tool"
+ vars:
+ tool: mongorestore
+ # mongostat
+ - func: "build tool"
+ vars:
+ tool: mongostat
+ - func: "upload tool"
+ vars:
+ tool: mongostat
+ # mongotop
+ - func: "build tool"
+ vars:
+ tool: mongotop
+ - func: "upload tool"
+ vars:
+ tool: mongotop
+
+- name: integration
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - command: expansions.update
+ params:
+ updates:
+ - key: "args"
+ value: "-test.types=${integration_test_args}"
+ - func: "download mongod"
+ vars:
+ mongo_version: "3.2"
+ - func: "start mongod"
+ - func: "wait for mongod to be ready"
+ - func: "run tool integration tests"
+
+- name: integration-auth
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ # Concat auth args
+ - command: expansions.update
+ params:
+ updates:
+ - key: "args"
+ value: "-test.types=${integration_test_args},auth"
+ - key: "mongod_args"
+ concat: " --auth"
+ - key: "auth_username"
+ value: "passwordIsTaco"
+ - key: "auth_password"
+ value: "Taco"
+ - key: "create_mongod_users_command"
+ value: "db.createUser({ user: '${auth_username}', pwd: '${auth_password}', roles: [{ role: '__system', db: 'admin' }] });"
+ - func: "download mongod"
+ vars:
+ mongo_version: "3.2"
+ - func: "start mongod"
+ - func: "wait for mongod to be ready"
+ - func: "run tool integration tests"
+
+- name: kerberos
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ # Explicitly run ONLY Kerberos tests
+ - command: expansions.update
+ params:
+ updates:
+ - key: "args"
+ value: "-test.types=kerberos"
+ - func: "setup integration test"
+ - func: "run tool integration tests"
+
+- name: legacy28
+ depends_on:
+ - name: dist
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - func: "get buildnumber"
+ - func: "setup credentials"
+ - func: "download mongod"
+ vars:
+ mongo_version: "3.0"
+ - func: "fetch tool"
+ vars:
+ tool: mongoimport
+ - func: "fetch tool"
+ vars:
+ tool: mongoexport
+ - func: "fetch tool"
+ vars:
+ tool: mongodump
+ - func: "fetch tool"
+ vars:
+ tool: mongostat
+ - func: "fetch tool"
+ vars:
+ tool: mongorestore
+ - func: "fetch tool"
+ vars:
+ tool: mongooplog
+ - func: "fetch tool"
+ vars:
+ tool: mongofiles
+ - func: "run legacy tests"
+ vars:
+ test_path: "test/legacy28"
+ smoke_args: "--authMechanism SCRAM-SHA-1"
+
+- name: legacy28-wt
+ depends_on:
+ - name: dist
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - func: "get buildnumber"
+ - func: "setup credentials"
+ - func: "download mongod"
+ vars:
+ mongo_version: "3.0"
+ - func: "fetch tool"
+ vars:
+ tool: mongoimport
+ - func: "fetch tool"
+ vars:
+ tool: mongoexport
+ - func: "fetch tool"
+ vars:
+ tool: mongodump
+ - func: "fetch tool"
+ vars:
+ tool: mongostat
+ - func: "fetch tool"
+ vars:
+ tool: mongorestore
+ - func: "fetch tool"
+ vars:
+ tool: mongooplog
+ - func: "fetch tool"
+ vars:
+ tool: mongofiles
+ - func: "run legacy tests"
+ vars:
+ test_path: "test/legacy28"
+ smoke_args: "--authMechanism SCRAM-SHA-1 --storageEngine=wiredTiger"
+
+- name: legacy26
+ depends_on:
+ - name: dist
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - func: "get buildnumber"
+ - func: "setup credentials"
+ - func: "download mongod"
+ vars:
+ mongo_version: "2.6"
+ - func: "fetch tool"
+ vars:
+ tool: mongoimport
+ - func: "fetch tool"
+ vars:
+ tool: mongoexport
+ - func: "fetch tool"
+ vars:
+ tool: mongodump
+ - func: "fetch tool"
+ vars:
+ tool: mongostat
+ - func: "fetch tool"
+ vars:
+ tool: mongorestore
+ - func: "fetch tool"
+ vars:
+ tool: mongooplog
+ - func: "fetch tool"
+ vars:
+ tool: mongofiles
+ - func: "run legacy tests"
+ vars:
+ test_path: "test/legacy26"
+ smoke_use_ssl: ""
+
+- name: legacy24
+ depends_on:
+ - name: dist
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - func: "get buildnumber"
+ - func: "setup credentials"
+ - func: "download mongod"
+ vars:
+ mongo_version: "2.4"
+ - func: "download mongod"
+ vars:
+ mongo_version: "2.6"
+ only_shell: true
+ - func: "fetch tool"
+ vars:
+ tool: mongoimport
+ - func: "fetch tool"
+ vars:
+ tool: mongoexport
+ - func: "fetch tool"
+ vars:
+ tool: mongodump
+ - func: "fetch tool"
+ vars:
+ tool: mongostat
+ - func: "fetch tool"
+ vars:
+ tool: mongorestore
+ - func: "fetch tool"
+ vars:
+ tool: mongooplog
+ - func: "fetch tool"
+ vars:
+ tool: mongofiles
+ - func: "run legacy tests"
+ vars:
+ test_path: "test/legacy24"
+ smoke_use_ssl: ""
+
+- name: lint-go
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - command: shell.exec
+ type: test
+ params:
+ working_dir: src
+ script: |
+ set -o errexit
+ set -o verbose
+ retVal=$(. ./set_gopath.sh && go run vendor/src/github.com/3rf/mongo-lint/golint/golint.go mongo* bson* common/*);
+ if [ "$retVal" = "" ]; then exit 0; else echo $retVal; exit 1; fi;
+
+- name: lint-js
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - command: shell.exec
+ type: test
+ params:
+ working_dir: src
+ script: |
+ set -o verbose
+ /opt/node/bin/npm install eslint@3.2
+ /opt/node/bin/node node_modules/eslint/bin/eslint.js test/qa-tests/jstests/**/*.js
+
+- name: qa-tests-unstable
+ depends_on:
+ - name: dist
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - func: "get buildnumber"
+ - func: "setup credentials"
+ - func: "download mongod"
+ vars:
+ mongo_version: "latest"
+ - func: "fetch tool"
+ vars:
+ tool: mongoimport
+ - func: "fetch tool"
+ vars:
+ tool: mongoexport
+ - func: "fetch tool"
+ vars:
+ tool: mongodump
+ - func: "fetch tool"
+ vars:
+ tool: mongorestore
+ - func: "fetch tool"
+ vars:
+ tool: mongostat
+ - func: "fetch tool"
+ vars:
+ tool: mongotop
+ - func: "fetch tool"
+ vars:
+ tool: mongooplog
+ - func: "fetch tool"
+ vars:
+ tool: mongofiles
+ - func: "fetch tool"
+ vars:
+ tool: bsondump
+ - func: "run qa-tests"
+ vars:
+ resmoke_suite: "core${resmoke_use_ssl}"
+
+- name: qa-tests
+ depends_on:
+ - name: dist
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - func: "get buildnumber"
+ - func: "setup credentials"
+ - func: "download mongod"
+ vars:
+ mongo_version: "3.2"
+ - func: "fetch tool"
+ vars:
+ tool: mongoimport
+ - func: "fetch tool"
+ vars:
+ tool: mongoexport
+ - func: "fetch tool"
+ vars:
+ tool: mongodump
+ - func: "fetch tool"
+ vars:
+ tool: mongorestore
+ - func: "fetch tool"
+ vars:
+ tool: mongostat
+ - func: "fetch tool"
+ vars:
+ tool: mongotop
+ - func: "fetch tool"
+ vars:
+ tool: mongooplog
+ - func: "fetch tool"
+ vars:
+ tool: mongofiles
+ - func: "fetch tool"
+ vars:
+ tool: bsondump
+ - func: "run qa-tests"
+ vars:
+ resmoke_suite: "core${resmoke_use_ssl}"
+
+- name: qa-dump-restore-archiving
+ depends_on:
+ - name: dist
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - func: "get buildnumber"
+ - func: "setup credentials"
+ - func: "download mongod"
+ vars:
+ mongo_version: "3.2"
+ - func: "fetch tool"
+ vars:
+ tool: mongodump
+ - func: "fetch tool"
+ vars:
+ tool: mongorestore
+ - func: "run qa-tests"
+ vars:
+ resmoke_suite: "restore_archive"
+
+- name: qa-dump-restore-gzip
+ depends_on:
+ - name: dist
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - func: "get buildnumber"
+ - func: "setup credentials"
+ - func: "download mongod"
+ vars:
+ mongo_version: "3.2"
+ - func: "fetch tool"
+ vars:
+ tool: mongodump
+ - func: "fetch tool"
+ vars:
+ tool: mongorestore
+ - func: "run qa-tests"
+ vars:
+ resmoke_suite: "restore_gzip"
+
+- name: qa-tests-wt
+ depends_on:
+ - name: dist
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - func: "get buildnumber"
+ - func: "setup credentials"
+ - func: "download mongod"
+ vars:
+ mongo_version: "3.2"
+ - func: "fetch tool"
+ vars:
+ tool: mongoimport
+ - func: "fetch tool"
+ vars:
+ tool: mongoexport
+ - func: "fetch tool"
+ vars:
+ tool: mongodump
+ - func: "fetch tool"
+ vars:
+ tool: mongorestore
+ - func: "fetch tool"
+ vars:
+ tool: mongostat
+ - func: "fetch tool"
+ vars:
+ tool: mongotop
+ - func: "fetch tool"
+ vars:
+ tool: mongooplog
+ - func: "fetch tool"
+ vars:
+ tool: mongofiles
+ - func: "fetch tool"
+ vars:
+ tool: bsondump
+ - func: "run qa-tests"
+ vars:
+ resmoke_suite: "core"
+ resmoke_args: "--storageEngine=wiredTiger ${resmoke_args}"
+
+- name: text
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - command: expansions.update
+ params:
+ updates:
+ - key: "package"
+ value: "common/text"
+ - func: "run unit test"
+
+- name: unit
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - key: "run_coverage"
+ value: "true"
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - func: "run tool unit tests"
+ - func: "create coverage reports"
+ - command: expansions.update
+ params:
+ updates:
+ - key: "coverage_pkg"
+ value: "mongoimport"
+ - func: "upload html coverage"
+ - func: "upload text coverage"
+ - command: expansions.update
+ params:
+ updates:
+ - key: "coverage_pkg"
+ value: "mongoexport"
+ - func: "upload html coverage"
+ - func: "upload text coverage"
+ - command: expansions.update
+ params:
+ updates:
+ - key: "coverage_pkg"
+ value: "mongostat"
+ - func: "upload html coverage"
+ - func: "upload text coverage"
+ - command: expansions.update
+ params:
+ updates:
+ - key: "coverage_pkg"
+ value: "mongooplog"
+ - func: "upload html coverage"
+ - func: "upload text coverage"
+ - command: expansions.update
+ params:
+ updates:
+ - key: "coverage_pkg"
+ value: "mongodump"
+ - func: "upload html coverage"
+ - func: "upload text coverage"
+ - command: expansions.update
+ params:
+ updates:
+ - key: "coverage_pkg"
+ value: "mongorestore"
+ - func: "upload html coverage"
+ - func: "upload text coverage"
+
+- name: util
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - command: expansions.update
+ params:
+ updates:
+ - key: "package"
+ value: "common/util"
+ - func: "run unit test"
+
+- name: vet
+ commands:
+ - command: git.get_project
+ params:
+ directory: src
+ - command: git.apply_patch
+ params:
+ directory: src
+ - command: shell.exec
+ type: test
+ params:
+ working_dir: src
+ script: |
+ set -o verbose
+ . ./set_gopath.sh
+ go tool vet bsondump common mongo*
+
+buildvariants:
+#######################################
+# OSX Buildvariant #
+#######################################
+- name: osx-1010
+ display_name: OSX 10.10 64-bit
+ run_on:
+ - osx-1010
+ expansions:
+ <<: *mongod_default_startup_args
+ <<: *mongo_default_startup_args
+ mongo_os: "osx"
+ arch: "osx/x86_64"
+ build_tags: -tags "ssl"
+ resmoke_args: --excludeWithAnyTags=requires_many_files
+ tasks: *osx_1010_tasks
+
+- name: osx-1010-ssl
+ display_name: OSX 10.10 64-bit SSL
+ run_on:
+ - osx-1010
+ expansions:
+ <<: *mongod_ssl_startup_args
+ <<: *mongo_ssl_startup_args
+ mongo_os: "osx"
+ mongo_target: "osx-ssl"
+ arch: "osx/x86_64"
+ build_tags: -tags "ssl"
+ edition: ssl
+ resmoke_args: --excludeWithAnyTags=requires_many_files
+ tasks: *osx_1010_ssl_tasks
+
+#######################################
+# Ubuntu Buildvariants #
+#######################################
+
+- name: ubuntu
+ display_name: Linux 64-bit
+ run_on:
+ - ubuntu1204-test
+ expansions:
+ <<: *mongod_default_startup_args
+ <<: *mongo_default_startup_args
+ mongo_os: "ubuntu1204"
+ mongo_edition: "targeted"
+ build_tags: -tags "ssl"
+ arch: "linux/x86_64"
+ integration_test_args: integration
+ resmoke_args: --jobs $(grep -c ^processor /proc/cpuinfo)
+ tasks: *ubuntu1204_tasks
+
+- name: ubuntu-ssl
+ display_name: Linux 64-bit SSL
+ run_on:
+ - ubuntu1204-test
+ expansions:
+ <<: *mongod_ssl_startup_args
+ <<: *mongo_ssl_startup_args
+ mongo_os: "ubuntu1204"
+ mongo_edition: "enterprise"
+ build_tags: -tags "ssl"
+ edition: ssl
+ arch: "linux/x86_64"
+ smoke_use_ssl: --use-ssl
+ resmoke_use_ssl: _ssl
+ resmoke_args: --jobs $(grep -c ^processor /proc/cpuinfo)
+ integration_test_args: "integration,ssl"
+ tasks: *ubuntu1204_ssl_tasks
+
+- name: ubuntu-enterprise
+ display_name: Linux 64-bit Enterprise
+ run_on:
+ - ubuntu1204-test
+ expansions:
+ <<: *mongod_default_startup_args
+ <<: *mongo_default_startup_args
+ mongo_os: "ubuntu1204"
+ mongo_edition: "enterprise"
+ build_tags: -tags "ssl sasl"
+ smoke_use_ssl: --use-ssl
+ resmoke_use_ssl: _ssl
+ arch: "linux/x86_64"
+ edition: enterprise
+ run_kinit: true
+ integration_test_args: integration
+ resmoke_args: --jobs $(grep -c ^processor /proc/cpuinfo)
+ tasks: *ubuntu1204_enterprise_tasks
+
+- name: rhel71-ppc64le-enterprise
+ display_name: Linux PPC64LE RHEL 7.1 Enterprise
+ run_on:
+ - rhel71-power8-test
+ expansions:
+ <<: *mongod_default_startup_args
+ <<: *mongo_default_startup_args
+ mongo_os: "rhel71"
+ mongo_edition: "enterprise"
+ # RHEL 7.1 PPC64LE machines kerberos setup does not work for mongo-tools
+ #build_tags: -gccgoflags "$(pkg-config --libs --cflags libssl libsasl2)" -tags 'sasl ssl'
+ build_tags: -gccgoflags "$(pkg-config --libs --cflags libssl)" -tags 'ssl'
+ resmoke_use_ssl: _ssl
+ library_path: PATH="/opt/mongodbtoolchain/v2/bin/:$PATH"
+ resmoke_args: --excludeWithAnyTags=requires_mmap_available,requires_large_ram,requires_mongo_24,requires_mongo_26,requires_mongo_30 -j 4
+ multiversion_override: "skip"
+ arch: "linux/ppc64le"
+ edition: enterprise
+ run_kinit: true
+ integration_test_args: integration
+ tasks: *rhel71_enterprise_tasks
+
+#######################################
+# Solaris Buildvariant #
+#######################################
+- name: solaris
+ display_name: Solaris 64-bit
+ run_on:
+ - solaris
+ expansions:
+ <<: *mongod_default_startup_args
+ <<: *mongo_default_startup_args
+ mongo_os: "sunos5"
+ library_path: PATH="/opt/mongodbtoolchain/v2/bin/:$PATH"
+ build_tags: -gccgoflags "-lsocket -lnsl"
+ resmoke_args: --excludeWithAnyTags=requires_large_ram -j$(kstat cpu | sort -u | grep -c "^module")
+ tasks: *solaris_tasks
+
+#######################################
+# Windows Buildvariants #
+#######################################
+- name: windows-32
+ display_name: Windows 32-bit
+ run_on:
+ - windows-32
+ expansions:
+ <<: *mongod_win32_startup_args
+ <<: *mongo_default_startup_args
+ mongo_target: "windows_i686"
+ extension: .exe
+ preproc_gpm: "perl -pi -e 's/\\r\\n/\\n/g' "
+ resmoke_args: --excludeWithAnyTags=requires_large_ram
+ integration_test_args: "integration"
+ tasks: *windows_32_tasks
+
+- name: windows-64
+ display_name: Windows 64-bit
+ run_on:
+ - windows-64-vs2013-test
+ expansions:
+ <<: *mongod_default_startup_args
+ <<: *mongo_default_startup_args
+ mongo_os: "windows-64"
+ mongo_target: "windows_x86_64-2008plus"
+ resmoke_args: --excludeWithAnyTags=requires_large_ram
+ extension: .exe
+ arch: "win32/x86_64"
+ preproc_gpm: "perl -pi -e 's/\\r\\n/\\n/g' "
+ integration_test_args: "integration"
+ tasks: *windows_64_tasks
+
+- name: windows-64-ssl
+ display_name: Windows 64-bit SSL
+ run_on:
+ - windows-64-vs2013-compile
+ expansions:
+ <<: *mongod_ssl_startup_args
+ <<: *mongo_ssl_startup_args
+ mongo_os: "windows-64"
+ mongo_target: "windows_x86_64-2008plus-ssl"
+ build_tags: -tags "ssl"
+ edition: ssl
+ smoke_use_ssl: --use-ssl
+ resmoke_use_ssl: _ssl
+ resmoke_args: --excludeWithAnyTags=requires_large_ram,requires_mongo_24
+ multiversion_override: "2.6"
+ extension: .exe
+ arch: "win32/x86_64"
+ library_path: PATH="/cygdrive/c/mingw-w64/x86_64-4.9.1-posix-seh-rt_v3-rev1/mingw64/bin:/cygdrive/c/sasl/:$PATH"
+ preproc_gpm: "perl -pi -e 's/\\r\\n/\\n/g' "
+ integration_test_args: "integration,ssl"
+ tasks: *windows_64_ssl_tasks
+
+- name: windows-64-enterprise
+ display_name: Windows 64-bit Enterprise
+ run_on:
+ - windows-64-vs2013-compile
+ expansions:
+ <<: *mongod_default_startup_args
+ <<: *mongo_default_startup_args
+ mongo_os: "windows-64"
+ mongo_edition: "enterprise"
+ mongo_target: "windows"
+ build_tags: -tags "sasl ssl"
+ smoke_use_ssl: --use-ssl
+ resmoke_use_ssl: _ssl
+ resmoke_args: --excludeWithAnyTags=requires_large_ram,requires_mongo_24
+ multiversion_override: "2.6"
+ edition: enterprise
+ extension: .exe
+ arch: "win32/x86_64"
+ library_path: PATH="/cygdrive/c/mingw-w64/x86_64-4.9.1-posix-seh-rt_v3-rev1/mingw64/bin:/cygdrive/c/sasl/:$PATH"
+ preproc_gpm: "perl -pi -e 's/\\r\\n/\\n/g' "
+ integration_test_args: "integration"
+ tasks: *windows_64_enterprise_tasks
+
+#######################################
+# Experimental Buildvariants #
+#######################################
+
+- name: ubuntu-race
+ stepback: false
+ batchtime: 1440 # daily
+ display_name: z Race Detector Linux 64-bit
+ run_on:
+ - ubuntu1204-test
+ expansions:
+ <<: *mongod_default_startup_args
+ <<: *mongo_default_startup_args
+ mongo_os: "ubuntu1204"
+ mongo_edition: "enterprise"
+ build_tags: -tags "ssl"
+ arch: "linux/x86_64"
+ args: "-race"
+ resmoke_args: --excludeWithAnyTags=requires_large_ram
+ integration_test_args: integration
+ tasks: *ubuntu1204_race_tasks
+
+#######################################
+# Dist only Buildvariants #
+#######################################
+
+- name: suse11
+ display_name: SUSE 11 SSL
+ run_on:
+ - suse11-test
+ expansions:
+ build_tags: -tags "sasl ssl"
+ tasks:
+ - name: dist
+
+- name: suse12
+ display_name: SUSE 12 SSL
+ run_on:
+ - suse12-test
+ expansions:
+ build_tags: -tags "sasl ssl"
+ tasks:
+ - name: dist
+
+- name: rhel55
+ display_name: RHEL 5.5 SSL
+ run_on:
+ - rhel55
+ expansions:
+ gorootvars: GOROOT=/opt/go PATH="/opt/go/bin:$PATH"
+ build_tags: -tags "sasl ssl"
+ tasks:
+ - name: dist
+
+- name: rhel62
+ display_name: RHEL 6.2 SSL
+ run_on:
+ - rhel62-test
+ expansions:
+ gorootvars: GOROOT=/opt/go PATH="/opt/go/bin:$PATH"
+ build_tags: -tags "sasl ssl"
+ tasks:
+ - name: dist
+
+- name: rhel70
+ display_name: RHEL 7.0 SSL
+ run_on:
+ - rhel70
+ expansions:
+ gorootvars: GOROOT=/opt/go PATH="/opt/go/bin:$PATH"
+ build_tags: -tags "sasl ssl"
+ tasks:
+ - name: dist
+
+- name: ubuntu1404
+ display_name: Ubuntu 14.04 SSL
+ run_on:
+ - ubuntu1404-test
+ expansions:
+ build_tags: -tags "sasl ssl"
+ tasks:
+ - name: dist
+
+- name: debian71
+ display_name: Debian 7.1 SSL
+ run_on:
+ - debian71-test
+ expansions:
+ gorootvars: GOROOT=/opt/go PATH="/opt/go/bin:$PATH"
+ build_tags: -tags "sasl ssl"
+ tasks:
+ - name: dist