diff options
author | Rui Zhang <rui.zhang@mongodb.com> | 2015-08-06 10:27:42 -0700 |
---|---|---|
committer | Rui Zhang <rui.zhang@mongodb.com> | 2015-08-06 10:27:42 -0700 |
commit | 56a5526012df68bb2707543ce4eb24835be93425 (patch) | |
tree | 5d96c68e6706e365845b9b8668e42c936b8096e5 /etc/longevity.yml | |
parent | 2a11d0957b397e2c9bcb4230da9d764b50aaac3b (diff) | |
download | mongo-56a5526012df68bb2707543ce4eb24835be93425.tar.gz |
SERVER-19463: Add longevity test into Evergreen loop
Diffstat (limited to 'etc/longevity.yml')
-rw-r--r-- | etc/longevity.yml | 232 |
1 files changed, 232 insertions, 0 deletions
diff --git a/etc/longevity.yml b/etc/longevity.yml new file mode 100644 index 00000000000..2200991cb8e --- /dev/null +++ b/etc/longevity.yml @@ -0,0 +1,232 @@ +stepback: false +command_type: system + +pre: + - command: shell.track + +post: + - command: shell.cleanup + - command: shell.exec + # destroy the cluster after the test is done + params: + working_dir: dsi + script: | + set -e + set -o verbose + cd ./clusters/${cluster} + # destroy the cluster post test + yes yes | ./terraform destroy + # clean all file to be safe + rm -rf * + echo "Cluster DESTROYED." + +functions: + "prepare environment": + - command: shell.exec + params: + script: | + rm -rf ./* + mkdir src + - command: shell.exec + # checkout and setup DSI environment + params: + script: | + set -e + set -v + git clone git@github.com:10gen/dsi.git + cd dsi + # setup execution environment + ./bin/setup-dsi-env.sh + - command: shell.exec + # configure environment, has private information, no logging + params: + working_dir: dsi + silent: true + script: | + cd ./clusters/${cluster} + # stage aws credential for terraform + ../../bin/make_terraform_env.sh ${terraform_key} ${terraform_secret} https://s3.amazonaws.com/mciuploads/longevity/${build_variant}/${revision}/mongodb-${build_id}.tar.gz + # generate aws private key file + echo "${ec2_pem}" > ../../keys/aws.pem + chmod 400 ../../keys/aws.pem + + "bring up 3 shard cluster": + - command: shell.exec + # bring up the cluster + params: + working_dir: dsi + silent: true + script: | + # to create a mongod EC2 cluster + set -e + set -o verbose + cd ./clusters/${cluster} + ./setup-cluster.sh + echo "EC2 Cluster CREATED." + + "configure mongodb cluster": + - command: shell.exec + # bring up the mongod + params: + working_dir: dsi + script: | + set -e + set -o verbose + cd ./clusters/${cluster} + # configure mongodb cluster with wiredTiger + ../../bin/config-${setup}.sh mongodb ${storageEngine} ${numShard} + echo "${cluster} MongoDB Cluster STARTED." + + "run test": + - command: shell.exec + params: + working_dir: dsi + script: | + set -e + set -v + cd ./clusters/${cluster} + # show cluster details + cat ips.sh + ./update_run_config.sh + cat run-${test}.json + # clean up old artifact from the last test + rm -f ../perf.json + rm -rf ./reports + rm -f ../../reports.tgz + echo "Run test for ${test} with setup ${setup}" + # run test + ./run-${test}.sh + mv perf.json .. + cd .. + cat perf.json >> perf_all.json + echo "Complete test for ${test} with setup ${setup}!" + - command: "json.send" + params: + name: "perf" + file: "dsi/clusters/perf.json" + + "destroy cluster": + - command: shell.exec + # destroy the cluster + params: + working_dir: dsi + script: | + set -e + set -o verbose + cd ./clusters/${cluster} + # destroy the EC2 cluster + yes yes | ./terraform destroy + # clean all file to be safe + rm -rf * + echo "Cluster DESTROYED." + echo "All perf results" + cd .. + cat perf_all.json | egrep "name|ops_per_sec" + + "make test log artifact": + - command: shell.exec + # destroy the cluster + params: + working_dir: dsi + script: | + set -e + set -o verbose + cd ./clusters/${cluster}/reports + # move additional file here + cp ../ips.sh . + cp ../../perf_all.json . + cd .. + rm -rf ../reports + mv ./reports .. + + - command: archive.targz_pack + params: + target: "reports.tgz" + source_dir: "dsi/clusters" + include: + - "reports/**" + + "upload log file": + - command: s3.put + params: + aws_key: ${aws_key} + aws_secret: ${aws_secret} + local_file: reports.tgz + remote_file: longevity/${build_variant}/${revision}/logs/${test}-${build_id}.${ext|tgz} + bucket: mciuploads + permissions: public-read + content_type: ${content_type|application/x-gzip} + display_name: ${test}-longevity-testlog + +tasks: +- name: compile + commands: + - command: git.get_project + params: + directory: src + - command: git.apply_patch + params: + directory: src + - command: shell.exec + params: + working_dir: src + script: | + set -o errexit + set -o verbose + ${scons|scons} ${compile_flags|} mongo mongod mongos + # strip binaries here + strip mongo + strip mongos + strip mongod + mkdir -p mongodb/bin + mv mongo mongodb/bin + mv mongod mongodb/bin + mv mongos mongodb/bin + tar cvf mongodb.tar mongodb + gzip mongodb.tar + - command: s3.put + params: + aws_key: ${aws_key} + aws_secret: ${aws_secret} + local_file: src/mongodb.tar.gz + remote_file: longevity/${build_variant}/${revision}/mongodb-${build_id}.tar.gz + bucket: mciuploads + permissions: public-read + content_type: ${content_type|application/x-gzip} + display_name: mongodb.tar.gz + +- name: shard_cluster_test + depends_on: + - name: compile + commands: + - func: "prepare environment" + - func: "bring up 3 shard cluster" + - func: "configure mongodb cluster" + - func: "run test" + vars: + test: "ycsb" + - func: "make test log artifact" + - func: "upload log file" + vars: + test: "ycsb" + - func: "destroy cluster" + +buildvariants: +- name: linux-wt-shard + display_name: Linux WT Shard + batchtime: 10080 # 1 week + expansions: + compile_flags: -j$(grep -c ^processor /proc/cpuinfo) CC=/opt/mongodbtoolchain/bin/gcc CXX=/opt/mongodbtoolchain/bin/g++ --release + setup: shard + cluster: longevity + numShard: 3 + storageEngine: wiredTiger + + run_on: + - "linux-64-amzn-perf-longevity" + tasks: + - name: compile + distros: + - rhel55 + - name: shard_cluster_test + |