bot18
Version:
A high-frequency cryptocurrency trading bot by Zenbot creator @carlos8f
630 lines (563 loc) • 18.7 kB
YAML
# When a task that used to pass starts to fail
# Go through all versions that may have been skipped to detect
# when the task started failing
stepback: true
# Mark a failure as a system/bootstrap failure (purple box) rather then a task
# failure by default.
# Actual testing tasks are marked with `type: test`
command_type: system
# Protect ourself against rogue test case, or curl gone wild, that runs forever
# Good rule of thumb: the averageish length a task takes, times 5
# That roughly accounts for variable system performance for various buildvariants
exec_timeout_secs: 1800 # 6 minutes is the longest we'll ever run
# What to do when evergreen hits the timeout (`post:` tasks are run automatically)
timeout:
- command: shell.exec
params:
script: |
ls -la
functions:
"fetch source":
# Executes git clone and applies the submitted patch, if any
- command: git.get_project
params:
directory: "src"
# Applies the submitted patch, if any
# Deprecated. Should be removed. But still needed for certain agents (ZAP)
- command: git.apply_patch
# Make an evergreen exapanstion file with dynamic values
- command: shell.exec
params:
working_dir: "src"
script: |
# Get the current unique version of this checkout
if [ "${is_patch}" = "true" ]; then
CURRENT_VERSION=$(git describe)-patch-${version_id}
else
CURRENT_VERSION=latest
fi
export DRIVERS_TOOLS="$(pwd)/../drivers-tools"
export PROJECT_DIRECTORY="$(pwd)"
export MONGODB_BINARIES="$DRIVERS_TOOLS/mongodb/bin"
export UPLOAD_BUCKET="${project}"
cat <<EOT > expansion.yml
CURRENT_VERSION: "$CURRENT_VERSION"
DRIVERS_TOOLS: "$DRIVERS_TOOLS"
MONGO_ORCHESTRATION_HOME: "$MONGO_ORCHESTRATION_HOME"
MONGODB_BINARIES: "$MONGODB_BINARIES"
UPLOAD_BUCKET: "$UPLOAD_BUCKET"
PROJECT_DIRECTORY: "$PROJECT_DIRECTORY"
PREPARE_SHELL: |
set -o errexit
set -o xtrace
export DRIVERS_TOOLS="$DRIVERS_TOOLS"
export MONGO_ORCHESTRATION_HOME="$MONGO_ORCHESTRATION_HOME"
export MONGODB_BINARIES="$MONGODB_BINARIES"
export UPLOAD_BUCKET="$UPLOAD_BUCKET"
export PROJECT_DIRECTORY="$PROJECT_DIRECTORY"
export TMPDIR="$MONGO_ORCHESTRATION_HOME/db"
export PATH="$MONGODB_BINARIES:$PATH"
export PROJECT="${project}"
EOT
# See what we've done
cat expansion.yml
# Load the expansion file to make an evergreen variable with the current unique version
- command: expansions.update
params:
file: src/expansion.yml
"prepare resources":
- command: shell.exec
params:
script: |
${PREPARE_SHELL}
rm -rf $DRIVERS_TOOLS
git clone git://github.com/mongodb-labs/drivers-evergreen-tools.git $DRIVERS_TOOLS
"run tests":
- command: shell.exec
type: test
params:
working_dir: "src"
script: |
${PREPARE_SHELL}
MONGODB_VERSION=${VERSION} TOPOLOGY=${TOPOLOGY} AUTH=${AUTH} SSL=${SSL} MONGODB_URI="${MONGODB_URI}" sh ${PROJECT_DIRECTORY}/.evergreen/run-tests.sh
"cleanup":
- command: shell.exec
params:
script: |
${PREPARE_SHELL}
rm -rf $DRIVERS_TOOLS || true
"fix absolute paths":
- command: shell.exec
params:
script: |
${PREPARE_SHELL}
for filename in $(find ${DRIVERS_TOOLS} -name \*.json); do
perl -p -i -e "s|ABSOLUTE_PATH_REPLACEMENT_TOKEN|${DRIVERS_TOOLS}|g" $filename
done
# "windows fix":
# - command: shell.exec
# params:
# script: |
# ${PREPARE_SHELL}
# for i in $(find ${DRIVERS_TOOLS}/.evergreen ${PROJECT_DIRECTORY}/.evergreen -name \*.sh); do
# cat $i | tr -d '\r' > $i.new
# mv $i.new $i
# done
# # Copy client certificate because symlinks do not work on Windows.
# cp ${DRIVERS_TOOLS}/.evergreen/x509gen/client.pem ${MONGO_ORCHESTRATION_HOME}/lib/client.pem
"make files executable":
- command: shell.exec
params:
script: |
${PREPARE_SHELL}
for i in $(find ${DRIVERS_TOOLS}/.evergreen ${PROJECT_DIRECTORY}/.evergreen -name \*.sh); do
chmod +x $i
done
"install dependencies":
- command: shell.exec
params:
working_dir: "src"
script: |
${PREPARE_SHELL}
NODE_LTS_NAME=${NODE_LTS_NAME} sh ${PROJECT_DIRECTORY}/.evergreen/install-dependencies.sh
pre:
- func: "fetch source"
- func: "prepare resources"
# - func: "windows fix"
- func: "fix absolute paths"
- func: "make files executable"
- func: "install dependencies"
post:
- func: "cleanup"
tasks:
# Standard test tasks {{{
- name: "test-2.6-standalone"
tags: ["2.6", "standalone"]
commands:
- func: "run tests"
vars:
VERSION: "2.6"
TOPOLOGY: "server"
- name: "test-2.6-replica_set"
tags: ["2.6", "replica_set"]
commands:
- func: "run tests"
vars:
VERSION: "2.6"
TOPOLOGY: "replica_set"
- name: "test-2.6-sharded_cluster"
tags: ["2.6", "sharded_cluster"]
commands:
- func: "run tests"
vars:
VERSION: "2.6"
TOPOLOGY: "sharded_cluster"
- name: "test-3.0-standalone"
tags: ["3.0", "standalone"]
commands:
- func: "run tests"
vars:
VERSION: "3.0"
TOPOLOGY: "server"
- name: "test-3.0-replica_set"
tags: ["3.0", "replica_set"]
commands:
- func: "run tests"
vars:
VERSION: "3.0"
TOPOLOGY: "replica_set"
- name: "test-3.0-sharded_cluster"
tags: ["3.0", "sharded_cluster"]
commands:
- func: "run tests"
vars:
VERSION: "3.0"
TOPOLOGY: "sharded_cluster"
- name: "test-3.2-standalone"
tags: ["3.2", "standalone"]
commands:
- func: "run tests"
vars:
VERSION: "3.2"
TOPOLOGY: "server"
- name: "test-3.2-replica_set"
tags: ["3.2", "replica_set"]
commands:
- func: "run tests"
vars:
VERSION: "3.2"
TOPOLOGY: "replica_set"
- name: "test-3.2-sharded_cluster"
tags: ["3.2", "sharded_cluster"]
commands:
- func: "run tests"
vars:
VERSION: "3.2"
TOPOLOGY: "sharded_cluster"
- name: "test-3.4-standalone"
tags: ["3.4", "standalone"]
commands:
- func: "run tests"
vars:
VERSION: "3.4"
TOPOLOGY: "server"
- name: "test-3.4-replica_set"
tags: ["3.4", "replica_set"]
commands:
- func: "run tests"
vars:
VERSION: "3.4"
TOPOLOGY: "replica_set"
- name: "test-3.4-sharded_cluster"
tags: ["3.4", "sharded_cluster"]
commands:
- func: "run tests"
vars:
VERSION: "3.4"
TOPOLOGY: "sharded_cluster"
- name: "test-3.6-standalone"
tags: ["3.6", "standalone"]
commands:
- func: "run tests"
vars:
VERSION: "3.6"
TOPOLOGY: "server"
- name: "test-3.6-replica_set"
tags: ["3.6", "replica_set"]
commands:
- func: "run tests"
vars:
VERSION: "3.6"
TOPOLOGY: "replica_set"
- name: "test-3.6-sharded_cluster"
tags: ["3.6", "sharded_cluster"]
commands:
- func: "run tests"
vars:
VERSION: "3.6"
TOPOLOGY: "sharded_cluster"
- name: "test-latest-standalone"
tags: ["latest", "standalone"]
commands:
- func: "run tests"
vars:
VERSION: "latest"
TOPOLOGY: "server"
- name: "test-latest-replica_set"
tags: ["latest", "replica_set"]
commands:
- func: "run tests"
vars:
VERSION: "latest"
TOPOLOGY: "replica_set"
- name: "test-latest-sharded_cluster"
tags: ["latest", "sharded_cluster"]
commands:
- func: "run tests"
vars:
VERSION: "latest"
TOPOLOGY: "sharded_cluster"
# }}}
axes:
- id: versions
display_name: MongoDB Version
values:
- id: "latest"
display_name: "latest"
variables:
VERSION: "latest"
- id: "3.6"
display_name: "3.6"
variables:
VERSION: "3.6"
- id: "3.4"
display_name: "3.4"
variables:
VERSION: "3.4"
- id: "3.2"
display_name: "3.2"
variables:
VERSION: "3.2"
- id: "3.0"
display_name: "3.0"
variables:
VERSION: "3.0"
- id: "2.6"
display_name: "2.6"
variables:
VERSION: "2.6"
- id: node-version
display_name: "Node.js Version"
values:
- id: "Argon"
display_name: "Node.js Argon"
variables:
NODE_LTS_NAME: "argon"
- id: "Boron"
display_name: "Node.js Boron"
variables:
NODE_LTS_NAME: "boron"
- id: "Carbon"
display_name: "Node.js Carbon"
variables:
NODE_LTS_NAME: "carbon"
# OSes that support versions of MongoDB>=2.6 with SSL.
- id: os-fully-featured
display_name: OS
values:
- id: linux-64-amzn-test
display_name: "Amazon Linux (Enterprise)"
run_on: linux-64-amzn-test
batchtime: 10080 # 7 days
- id: ubuntu-14.04
display_name: "Ubuntu 14.04"
run_on: ubuntu1404-test
batchtime: 10080 # 7 days
- id: rhel70
display_name: "RHEL 7.0"
run_on: rhel70-small
batchtime: 10080 # 7 days
- id: debian71-test
display_name: "Debian 7.1"
run_on: debian71-test
batchtime: 10080 # 7 days
# OSes that support versions of MongoDB without SSL.
- id: os-nossl
display_name: OS
values:
- id: archlinux-test
display_name: "Archlinux"
run_on: archlinux-test
batchtime: 10080 # 7 days
- id: macos-1012
display_name: "macOS 10.12"
run_on: macos-1012
# OSes that support versions of MongoDB>=3.2 with SSL.
- id: os-requires-32
display_name: OS
values:
- id: ubuntu-16.04
display_name: "Ubuntu 16.04"
run_on: ubuntu1604-test
batchtime: 10080 # 7 days
- id: suse12-x86-64-test
display_name: "SUSE 12 (x86_64)"
run_on: suse12-test
batchtime: 10080 # 7 days
- id: rhel71-power8-test
display_name: "RHEL 7.1 (POWER8)"
run_on: rhel71-power8-test
batchtime: 10080 # 7 days
# OSes that introduced support for SSL with MongoDB>=3.2.
- id: os-ssl-requires-32
display_name: OS
values:
- id: macos-1012
display_name: "macOS 10.12"
run_on: macos-1012
# OSes that support versions of MongoDB>=3.4 with SSL.
- id: os-requires-34
display_name: OS
values:
- id: debian81-test
display_name: "Debian 8.1"
run_on: debian81-test
batchtime: 10080 # 7 days
# NOTE: reenable when these are actually running 7.2, or we release a 7.4 rpm
# - id: rhel72-zseries-test
# display_name: "RHEL 7.2 (zSeries)"
# run_on: rhel72-zseries-test
# batchtime: 10080 # 7 days
- id: suse12-zseries-test
display_name: "SUSE 12 (zSeries)"
run_on: suse12-zseries-test
batchtime: 10080 # 7 days
- id: ubuntu1604-arm64-small
display_name: "Ubuntu 16.04 (ARM64)"
run_on: ubuntu1604-arm64-small
batchtime: 10080 # 7 days
- id: ubuntu1604-power8-test
display_name: "Ubuntu 16.04 (POWER8)"
run_on: ubuntu1604-power8-test
batchtime: 10080 # 7 days
- id: ubuntu1604-zseries-small
display_name: "Ubuntu 16.04 (zSeries)"
run_on: ubuntu1604-zseries-small
batchtime: 10080 # 7 days
# NOTE: reenable this when nvm supports windows, or we settle on an alternative tool
# - id: os-windows
# display_name: OS
# values:
# - id: windows-64-vs2010-test
# display_name: "Windows (VS2010)"
# run_on: windows-64-vs2010-test
# - id: windows-64-vs2013-test
# display_name: "Windows (VS2013)"
# run_on: windows-64-vs2013-test
# - id: windows-64-vs2015-test
# display_name: "Windows (VS2015)"
# run_on: windows-64-vs2015-test
- id: topology
display_name: Topology
values:
- id: standalone
display_name: Standalone
variables:
TOPOLOGY: "server"
- id: replicaset
display_name: Replica Set
variables:
TOPOLOGY: "replica_set"
- id: sharded-cluster
display_name: Sharded Cluster
variables:
TOPOLOGY: "sharded_cluster"
- id: auth
display_name: Authentication
values:
- id: auth
display_name: Auth
variables:
AUTH: "auth"
- id: noauth
display_name: NoAuth
variables:
AUTH: "noauth"
- id: ssl
display_name: SSL
values:
- id: ssl
display_name: SSL
variables:
SSL: "ssl"
- id: nossl
display_name: NoSSL
variables:
SSL: "nossl"
- id: storage-engine
display_name: Storage
values:
- id: mmapv1
display_name: MMAPv1
variables:
STORAGE_ENGINE: "mmapv1"
- id: wiredtiger
display_name: WiredTiger
variables:
STORAGE_ENGINE: "wiredtiger"
- id: inmemory
display_name: InMemory
variables:
STORAGE_ENGINE: "inmemory"
buildvariants:
- matrix_name: "tests-all"
matrix_spec: {"os-fully-featured": "*", node-version: "*" } # auth: "*", ssl: "*",
display_name: "${node-version} ${os-fully-featured} ${auth} ${ssl}"
tasks:
- name: "test-latest-replica_set"
- name: "test-latest-sharded_cluster"
- name: "test-latest-standalone"
- name: "test-3.6-replica_set"
- name: "test-3.6-sharded_cluster"
- name: "test-3.6-standalone"
- name: "test-3.4-replica_set"
- name: "test-3.4-sharded_cluster"
- name: "test-3.4-standalone"
- name: "test-3.2-replica_set"
- name: "test-3.2-sharded_cluster"
- name: "test-3.2-standalone"
- name: "test-3.0-replica_set"
- name: "test-3.0-sharded_cluster"
- name: "test-3.0-standalone"
- name: "test-2.6-replica_set"
- name: "test-2.6-sharded_cluster"
- name: "test-2.6-standalone"
# - matrix_name: "tests-nossl"
# matrix_spec: {"os-nossl": "*", auth: "*", ssl: "nossl", node-version: "*" }
# display_name: "${node-version} ${os-nossl} ${auth} ${ssl}"
# tasks:
# - name: "test-latest-replica_set"
# - name: "test-latest-sharded_cluster"
# - name: "test-latest-standalone"
# - name: "test-3.6-replica_set"
# - name: "test-3.6-sharded_cluster"
# - name: "test-3.6-standalone"
# - name: "test-3.4-replica_set"
# - name: "test-3.4-sharded_cluster"
# - name: "test-3.4-standalone"
# - name: "test-3.2-replica_set"
# - name: "test-3.2-sharded_cluster"
# - name: "test-3.2-standalone"
# - name: "test-3.0-replica_set"
# - name: "test-3.0-sharded_cluster"
# - name: "test-3.0-standalone"
# - name: "test-2.6-replica_set"
# - name: "test-2.6-sharded_cluster"
# - name: "test-2.6-standalone"
- matrix_name: "tests-os-requires-32"
matrix_spec: {"os-requires-32": "*", node-version: "*" } # auth: "*", ssl: "*",
display_name: "${node-version} ${os-requires-32} ${auth} ${ssl}"
tasks:
- name: "test-latest-replica_set"
- name: "test-latest-sharded_cluster"
- name: "test-latest-standalone"
- name: "test-3.6-replica_set"
- name: "test-3.6-sharded_cluster"
- name: "test-3.6-standalone"
- name: "test-3.4-replica_set"
- name: "test-3.4-sharded_cluster"
- name: "test-3.4-standalone"
- name: "test-3.2-replica_set"
- name: "test-3.2-sharded_cluster"
- name: "test-3.2-standalone"
# - matrix_name: "tests-ssl-requires-32"
# matrix_spec: {"os-ssl-requires-32": "*", auth: "*", ssl: "ssl", node-version: "*" }
# display_name: "${node-version} ${os-ssl-requires-32} ${auth} ${ssl}"
# tasks:
# - name: "test-latest-replica_set"
# - name: "test-latest-sharded_cluster"
# - name: "test-latest-standalone"
# - name: "test-3.6-replica_set"
# - name: "test-3.6-sharded_cluster"
# - name: "test-3.6-standalone"
# - name: "test-3.4-replica_set"
# - name: "test-3.4-sharded_cluster"
# - name: "test-3.4-standalone"
# - name: "test-3.2-replica_set"
# - name: "test-3.2-sharded_cluster"
# - name: "test-3.2-standalone"
- matrix_name: "tests-os-requires-34"
matrix_spec: {"os-requires-34": "*", node-version: ["Boron", "Carbon"]} # auth: "*", ssl: "*",
display_name: "${node-version} ${os-requires-34} ${auth} ${ssl}"
tasks:
- name: "test-latest-replica_set"
- name: "test-latest-sharded_cluster"
- name: "test-latest-standalone"
- name: "test-3.6-replica_set"
- name: "test-3.6-sharded_cluster"
- name: "test-3.6-standalone"
- name: "test-3.4-replica_set"
- name: "test-3.4-sharded_cluster"
- name: "test-3.4-standalone"
# - matrix_name: "tests-windows"
# matrix_spec: {os-windows: "*", node-version: "*" } # ssl: "*", auth: "*"
# display_name: "${node-version} ${os-windows} ${auth} ${ssl}"
# tasks:
# - name: "test-latest-replica_set"
# - name: "test-latest-sharded_cluster"
# - name: "test-latest-standalone"
# - name: "test-3.6-replica_set"
# - name: "test-3.6-sharded_cluster"
# - name: "test-3.6-standalone"
# - name: "test-3.4-replica_set"
# - name: "test-3.4-sharded_cluster"
# - name: "test-3.4-standalone"
# - name: "test-3.2-replica_set"
# - name: "test-3.2-sharded_cluster"
# - name: "test-3.2-standalone"
# - name: "test-3.0-replica_set"
# - name: "test-3.0-sharded_cluster"
# - name: "test-3.0-standalone"
# - name: "test-2.6-replica_set"
# - name: "test-2.6-sharded_cluster"
# - name: "test-2.6-standalone"