summaryrefslogtreecommitdiff
path: root/etc/longevity.yml
diff options
context:
space:
mode:
authorRui Zhang <rui.zhang@mongodb.com>2015-08-06 10:27:42 -0700
committerRui Zhang <rui.zhang@mongodb.com>2015-08-06 10:27:42 -0700
commit56a5526012df68bb2707543ce4eb24835be93425 (patch)
tree5d96c68e6706e365845b9b8668e42c936b8096e5 /etc/longevity.yml
parent2a11d0957b397e2c9bcb4230da9d764b50aaac3b (diff)
downloadmongo-56a5526012df68bb2707543ce4eb24835be93425.tar.gz
SERVER-19463: Add longevity test into Evergreen loop
Diffstat (limited to 'etc/longevity.yml')
-rw-r--r--etc/longevity.yml232
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
+