####################################### # 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 mongo_tools_variables: ## Common download URLs (merge in as hashes) mongo_download_urls: osx_108: &mongo_url_osx108 mongo_os: "osx" mongo_url: "https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-latest.tgz" mongo32_url: "https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-3.2.0.tgz" mongo30_url: "https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-3.0.7.tgz" mongo26_url: "https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.6.5.tgz" mongo24_url: "https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.4.12.tgz" solaris: &mongo_url_solaris mongo_url: "https://fastdl.mongodb.org/sunos5/mongodb-sunos5-x86_64-latest.tgz" mongo32_url: "https://fastdl.mongodb.org/sunos5/mongodb-sunos5-x86_64-3.2.0.tgz" mongo30_url: "https://fastdl.mongodb.org/sunos5/mongodb-sunos5-x86_64-3.0.7.tgz" mongo26_url: "https://fastdl.mongodb.org/sunos5/mongodb-sunos5-x86_64-2.6.5.tgz" mongo24_url: "https://fastdl.mongodb.org/sunos5/mongodb-sunos5-x86_64-2.4.12.tgz" linux_64_bit: &mongo_url_ubuntu1204 mongo_os: "ubuntu1204" mongo_url: "http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-ubuntu1204-latest.tgz" mongo32_url: "http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-ubuntu1204-3.2.0.tgz" mongo30_url: "http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-ubuntu1204-3.0.7.tgz" mongo26_url: "http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-ubuntu1204-2.6.5.tgz" mongo24_url: "http://downloads.10gen.com/linux/mongodb-linux-x86_64-subscription-ubuntu1204-2.4.12.tgz" linux_64_bit_enterprise: &mongo_url_ubuntu1204_enterprise mongo_os: "ubuntu1204" mongo_url: "http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-ubuntu1204-latest.tgz" mongo32_url: "http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-ubuntu1204-3.2.0.tgz" mongo30_url: "http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-ubuntu1204-3.0.7.tgz" mongo26_url: "http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-ubuntu1204-2.6.5.tgz" mongo24_url: "http://downloads.10gen.com/linux/mongodb-linux-x86_64-subscription-ubuntu1204-2.4.12.tgz" linux_ppc64le_bit_enterprise: &mongo_url_ubuntu1504_ppc64le_enterprise mongo_os: "ubuntu1504" mongo_url: "http://downloads.10gen.com/linux/mongodb-linux-ppc64le-enterprise-ubuntu1504-3.3.1.tgz" mongo32_url: "http://downloads.10gen.com/linux/mongodb-linux-ppc64le-enterprise-ubuntu1504-3.3.1.tgz" mongo30_url: "http://downloads.10gen.com/linux/mongodb-linux-ppc64le-enterprise-ubuntu1504-3.3.1.tgz" mongo26_url: "http://downloads.10gen.com/linux/mongodb-linux-ppc64le-enterprise-ubuntu1504-3.3.1.tgz" mongo24_url: "http://downloads.10gen.com/linux/mongodb-linux-ppc64le-enterprise-ubuntu1504-3.3.1.tgz" windows_32_bit: &mongo_url_windows32 mongo_url: "https://fastdl.mongodb.org/win32/mongodb-win32-i386-latest.zip" mongo32_url: "https://fastdl.mongodb.org/win32/mongodb-win32-i386-3.2.0.zip" mongo30_url: "https://fastdl.mongodb.org/win32/mongodb-win32-i386-3.0.7.zip" mongo26_url: "https://fastdl.mongodb.org/win32/mongodb-win32-i386-2.6.5.zip" mongo24_url: "https://fastdl.mongodb.org/win32/mongodb-win32-i386-2.4.12.zip" windows_64_bit: &mongo_url_windows64 mongo_os: "windows-64" mongo_url: "https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-latest.zip" mongo32_url: "https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-3.2.0.zip" mongo30_url: "https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-3.0.7.zip" mongo26_url: "https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.6.5.zip" mongo24_url: "https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.4.12.zip" windows_64_bit_enterprise: &mongo_url_windows64_enterprise mongo_os: "windows-64" mongo_url: "http://downloads.10gen.com/win32/mongodb-win32-x86_64-enterprise-windows-64-latest.zip" mongo32_url: "http://downloads.10gen.com/win32/mongodb-win32-x86_64-enterprise-windows-64-3.2.0.zip" mongo30_url: "http://downloads.10gen.com/win32/mongodb-win32-x86_64-enterprise-windows-64-3.0.7.zip" mongo26_url: "http://downloads.10gen.com/win32/mongodb-win32-x86_64-enterprise-windows-64-2.6.5.zip" ## List of tests to run on each buildvariant mongo_tools_task_lists: osx_108_task_list: &osx_108_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_108_ssl_task_list: &osx_108_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: bsonutil - name: db - name: dist - name: integration - name: integration-auth - name: json - name: legacy28 - name: legacy28-wt - name: legacy26 - name: legacy24 - name: lint - name: log - name: progress - 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: bsonutil - name: db - name: dist - name: integration - name: integration-auth - name: json - name: kerberos - name: legacy28 - name: lint - name: log - name: progress - name: qa-tests - name: text - name: util - name: vet ubuntu1204_race_task_list: &ubuntu1204_race_tasks - name: bsonutil - name: db - name: dist - name: integration - name: integration-auth - name: json - name: legacy28 - name: legacy28-wt - name: legacy26 - name: legacy24 - name: log - 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 ubuntu1504_enterprise_task_list: &ubuntu1504_enterprise_tasks - name: bsonutil - name: db - name: dist - name: integration - name: integration-auth - name: json #- name: kerberos - name: lint - name: log - name: progress - name: qa-dump-restore-archiving - name: qa-dump-restore-gzip - name: qa-tests - name: qa-tests-unstable - name: qa-tests-wt - name: text - name: unit - name: util - name: vet ## 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: "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 . ./set_gopath.sh go build ${args} ${build_tags} -o bin/${tool} ${tool}/main/${tool}.go "download mongod": command: shell.exec params: working_dir: src script: | set -o verbose rm -rf mongodb mkdir mongodb cd mongodb curl -s ${mongo_url} --output mongodb.tgz ${decompress} mongodb.tgz chmod +x ./mongodb-*/bin/* mv ./mongodb-*/bin/* . "download & copy shell": command: shell.exec params: working_dir: src script: | set -o verbose rm -rf temp mkdir temp cd temp curl -s ${mongo_url} --output mongodb.tgz ${decompress} mongodb.tgz chmod +x ./mongodb-*/bin/* mv ./mongodb-*/bin/mongo${extension} ../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 # TODO bsondump needs tests # TODO mongotop needs tests 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 </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: expansions.fetch params: keys: - local_key: "aws_key" remote_key: "project_aws_key" - local_key: "aws_secret" remote_key: "project_aws_secret" - local_key: "slave" remote_key: "slave" - local_key: "passwd" remote_key: "passwd" - local_key: "kerberos_password" remote_key: "kerberos_password" - 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"] tasks: - name: bsonutil commands: - command: git.get_project params: directory: src - command: git.apply_patch params: directory: src - command: expansions.update params: updates: - key: "package" value: "common/bsonutil" - func: "run unit test" - 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_url: "${mongo32_url}" - 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_url: "${mongo32_url}" - 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_url: "${mongo32_url}" - func: "start mongod" - func: "wait for mongod to be ready" - func: "run tool integration tests" - name: json commands: - command: git.get_project params: directory: src - command: git.apply_patch params: directory: src - command: expansions.update params: updates: - key: "package" value: "common/json" - func: "run unit test" - 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_url: "${mongo30_url}" - 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 - command: shell.exec type: test params: working_dir: src script: | mv ./mongodb/mongod${extension} . mv ./mongodb/mongo${extension} . mv test/legacy28/* . 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} --authMechanism SCRAM-SHA-1 tool - 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_url: "${mongo30_url}" - 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 - command: shell.exec type: test params: working_dir: src script: | mv ./mongodb/mongod${extension} . mv ./mongodb/mongo${extension} . mv test/legacy28/* . 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} --authMechanism SCRAM-SHA-1 --storageEngine=wiredTiger tool - 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_url: "${mongo26_url}" - 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 - command: shell.exec type: test params: working_dir: src script: | mv ./mongodb/mongod${extension} . mv ./mongodb/mongo${extension} . mv test/legacy26/* . chmod +x mongo* python buildscripts/smoke.py --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} tool - 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_url: "${mongo24_url}" - func: "download & copy shell" vars: mongo_url: "${mongo26_url}" - 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 - command: shell.exec type: test params: working_dir: src script: | mv ./mongodb/mongod${extension} . mv ./mongodb/mongo${extension} . mv test/legacy24/* . chmod +x mongo* python buildscripts/smoke.py --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} tool - name: lint 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: log commands: - command: git.get_project params: directory: src - command: git.apply_patch params: directory: src - command: expansions.update params: updates: - key: "package" value: "common/log" - func: "run unit test" - name: progress commands: - command: git.get_project params: directory: src - command: git.apply_patch params: directory: src - command: expansions.update params: updates: - key: "package" value: "common/progress" - func: "run unit test" - 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_url: "${mongo_url}" - 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 - 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* chmod +x bsondump* rm -rf /data/install /data/multiversion python buildscripts/setup_multiversion_mongodb.py /data/install /data/multiversion ${arch} "2.6" "2.4" --latest ${smoke_use_ssl} --os="${mongo_os}" || true chmod 400 jstests/libs/key* PATH=$PATH:/data/multiversion python buildscripts/resmoke.py --suite=core${resmoke_use_ssl} --continueOnFailure --log=buildlogger --reportFile=report.json ${resmoke_args} - 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_url: "${mongo32_url}" - 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 - 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* chmod +x bsondump* rm -rf /data/install /data/multiversion python buildscripts/setup_multiversion_mongodb.py /data/install /data/multiversion ${arch} "2.6" "2.4" --latest ${smoke_use_ssl} --os="${mongo_os}" || true chmod 400 jstests/libs/key* PATH=$PATH:/data/multiversion python buildscripts/resmoke.py --suite=core${resmoke_use_ssl} --continueOnFailure --log=buildlogger --reportFile=report.json ${resmoke_args} - 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_url: "${mongo32_url}" - func: "fetch tool" vars: tool: mongodump - func: "fetch tool" vars: tool: mongorestore - 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* rm -rf /data/install /data/multiversion python buildscripts/setup_multiversion_mongodb.py /data/install /data/multiversion ${arch} "2.6" "2.4" --latest ${smoke_use_ssl} --os="${mongo_os}" || true chmod 400 jstests/libs/key* PATH=$PATH:/data/multiversion python buildscripts/resmoke.py --suite=restore_archive --continueOnFailure --log=buildlogger --reportFile=report.json ${resmoke_args} - 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_url: "${mongo32_url}" - func: "fetch tool" vars: tool: mongodump - func: "fetch tool" vars: tool: mongorestore - 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* rm -rf /data/install /data/multiversion python buildscripts/setup_multiversion_mongodb.py /data/install /data/multiversion ${arch} "2.6" "2.4" --latest ${smoke_use_ssl} --os="${mongo_os}" || true chmod 400 jstests/libs/key* PATH=$PATH:/data/multiversion python buildscripts/resmoke.py --suite=restore_gzip --continueOnFailure --log=buildlogger --reportFile=report.json ${resmoke_args} - 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_url: "${mongo32_url}" - 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 - command: shell.exec type: test params: working_dir: src script: | set -o verbose mv ./mongodb/mongod${extension} . mv ./mongodb/mongo${extension} . mv ./mongodb/mongos${extension} . mv test/qa-tests/* . chmod +x mongo* chmod +x bsondump* rm -rf /data/install /data/multiversion python buildscripts/setup_multiversion_mongodb.py /data/install /data/multiversion ${arch} "2.6" "2.4" --latest ${smoke_use_ssl} --os="${mongo_os}" || true chmod 400 jstests/libs/key* PATH=$PATH:/data/multiversion python buildscripts/resmoke.py --suite=core --continueOnFailure --log=buildlogger --reportFile=report.json --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 retVal=$(. ./set_gopath.sh && go tool vet .); if [ "$retVal" = "" ]; then exit 0; else exit 1; fi; buildvariants: ####################################### # OSX Buildvariant # ####################################### - name: osx-108 display_name: OSX 10.8 64-bit run_on: - osx-108 expansions: <<: *mongo_url_osx108 <<: *mongod_default_startup_args <<: *mongo_default_startup_args arch: "osx/x86_64" build_tags: -tags "ssl" tasks: *osx_108_tasks - name: osx-108-ssl display_name: OSX 10.8 64-bit SSL run_on: - osx-108 expansions: <<: *mongo_url_osx108 <<: *mongod_ssl_startup_args <<: *mongo_ssl_startup_args arch: "osx/x86_64" build_tags: -tags "ssl" edition: ssl tasks: *osx_108_ssl_tasks ####################################### # Ubuntu Buildvariants # ####################################### - name: ubuntu display_name: Linux 64-bit run_on: - ubuntu1204-test expansions: <<: *mongo_url_ubuntu1204 <<: *mongod_default_startup_args <<: *mongo_default_startup_args build_tags: -tags "ssl" arch: "linux/x86_64" integration_test_args: integration tasks: *ubuntu1204_tasks - name: ubuntu-ssl display_name: Linux 64-bit SSL run_on: - ubuntu1204-test expansions: <<: *mongo_url_ubuntu1204_enterprise <<: *mongod_ssl_startup_args <<: *mongo_ssl_startup_args build_tags: -tags "ssl" edition: ssl arch: "linux/x86_64" smoke_use_ssl: --use-ssl resmoke_use_ssl: _ssl integration_test_args: "integration,ssl" tasks: *ubuntu1204_ssl_tasks - name: ubuntu-enterprise display_name: Linux 64-bit Enterprise run_on: - ubuntu1204-test expansions: <<: *mongo_url_ubuntu1204_enterprise <<: *mongod_default_startup_args <<: *mongo_default_startup_args 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 tasks: *ubuntu1204_enterprise_tasks - name: ubuntu-ppc64le-enterprise display_name: Linux PPC64LE Enterprise run_on: - ubuntu-1504-power8-build expansions: <<: *mongo_url_ubuntu1504_ppc64le_enterprise <<: *mongod_default_startup_args <<: *mongo_default_startup_args # Ubuntu 1504 does not include gcc 5.3 yet so SSL is disabled #build_tags: -tags "ssl sasl" #resmoke_use_ssl: _ssl resmoke_args: --excludeWithAnyTags=requires_mongo_24,requires_mongo_26,requires_mongo_30 arch: "linux/ppc64le" edition: enterprise run_kinit: true integration_test_args: integration tasks: *ubuntu1504_enterprise_tasks ####################################### # Solaris Buildvariant # ####################################### - name: solaris display_name: Solaris 64-bit run_on: - solaris expansions: <<: *mongo_url_solaris <<: *mongod_default_startup_args <<: *mongo_default_startup_args tasks: *solaris_tasks ####################################### # Windows Buildvariants # ####################################### - name: windows-32 display_name: Windows 32-bit run_on: - windows-32 expansions: <<: *mongo_url_windows32 <<: *mongod_win32_startup_args <<: *mongo_default_startup_args extension: .exe preproc_gpm: "perl -pi -e 's/\\r\\n/\\n/g' " integration_test_args: "integration" tasks: *windows_32_tasks - name: windows-64 display_name: Windows 64-bit run_on: - windows-64-vs2013-test expansions: <<: *mongo_url_windows64 <<: *mongod_default_startup_args <<: *mongo_default_startup_args 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: <<: *mongo_url_windows64_enterprise <<: *mongod_ssl_startup_args <<: *mongo_ssl_startup_args build_tags: -tags "ssl" edition: ssl smoke_use_ssl: --use-ssl resmoke_use_ssl: _ssl 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: <<: *mongo_url_windows64_enterprise <<: *mongod_default_startup_args <<: *mongo_default_startup_args build_tags: -tags "sasl ssl" smoke_use_ssl: --use-ssl resmoke_use_ssl: _ssl 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: <<: *mongo_url_ubuntu1204 <<: *mongod_default_startup_args <<: *mongo_default_startup_args build_tags: -tags "ssl" arch: "linux/x86_64" args: "-race" integration_test_args: integration tasks: *ubuntu1204_race_tasks