From ff9771f1124c5a2eb44e227b34ce609c2e424ad1 Mon Sep 17 00:00:00 2001 From: Paul Bellamy Date: Mon, 22 Jun 2015 11:17:12 +0100 Subject: [PATCH 1/3] initial integration test setup Integration tests are only run on circle. They checkout the weave project, and use test helpers from there. There are just a few basic tests for now, to confirm it works. --- bin/setup-circleci-secrets | 109 +++++++++++++++++++++++++++++ circle.yml | 9 +++ integration/.gitignore | 3 + integration/100_launch_test.sh | 10 +++ integration/200_clustering_test.sh | 14 ++++ integration/README.md | 52 ++++++++++++++ integration/config.sh | 25 +++++++ integration/gce.sh | 8 +++ integration/run_all.sh | 7 ++ integration/setup.sh | 17 +++++ 10 files changed, 254 insertions(+) create mode 100755 bin/setup-circleci-secrets create mode 100644 integration/.gitignore create mode 100755 integration/100_launch_test.sh create mode 100644 integration/200_clustering_test.sh create mode 100644 integration/README.md create mode 100644 integration/config.sh create mode 100755 integration/gce.sh create mode 100755 integration/run_all.sh create mode 100755 integration/setup.sh diff --git a/bin/setup-circleci-secrets b/bin/setup-circleci-secrets new file mode 100755 index 000000000..d592253ef --- /dev/null +++ b/bin/setup-circleci-secrets @@ -0,0 +1,109 @@ +#!/bin/bash + +set -eu + +# openssl enc -in do-setup-circleci-secrets.orig -out setup-circleci-secrets.orig -e -aes256 -pass stdin +# openssl base64 < setup-circleci-secrets.orig + +openssl base64 -d << EOF \ + | openssl enc \ + -out bin/do-setup-circleci-secrets \ + -d -aes256 -pass pass:$1 +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 +EOF + +exec sh bin/do-setup-circleci-secrets diff --git a/circle.yml b/circle.yml index c53c034b3..6ab0829a1 100644 --- a/circle.yml +++ b/circle.yml @@ -2,6 +2,7 @@ general: branches: ignore: - gh-pages + - /pull\/.*/ machine: services: @@ -10,6 +11,7 @@ machine: GOPATH: /home/ubuntu:$GOPATH SRCDIR: /home/ubuntu/src/github.com/weaveworks/scope PATH: $PATH:$HOME/.local/bin + CLOUDSDK_CORE_DISABLE_PROMPTS: 1 SCOPE_UI_BUILD: $HOME/docker/scope_ui_build.tar dependencies: @@ -24,6 +26,8 @@ dependencies: mkdir -p $(dirname "$SCOPE_UI_BUILD"); mv scope_ui_build.tar $(dirname "$SCOPE_UI_BUILD"); fi + - curl https://sdk.cloud.google.com | bash + - bin/setup-circleci-secrets "$SECRET_PASSWORD" post: - go version - go clean -i net @@ -40,7 +44,12 @@ test: - cd $SRCDIR; make - cd $SRCDIR; ./bin/test -slow - cd $SRCDIR/experimental; make + - cd $SRCDIR/integration; ./gce.sh setup + - cd $SRCDIR/integration; . ./gce.sh hosts; ./setup.sh + - cd $SRCDIR/integration; . ./gce.sh hosts; ./run_all.sh: + timeout: 300 post: + - cd $SRCDIR/integration; ./gce.sh destroy - goveralls -repotoken $COVERALLS_REPO_TOKEN -coverprofile=$SRCDIR/profile.cov -service=circleci || true - cd $SRCDIR; cp coverage.html $CIRCLE_ARTIFACTS - cd $SRCDIR; cp scope.tar $CIRCLE_ARTIFACTS diff --git a/integration/.gitignore b/integration/.gitignore new file mode 100644 index 000000000..56dedd820 --- /dev/null +++ b/integration/.gitignore @@ -0,0 +1,3 @@ +insecure_private_key +.vagrant +.ssh_known_hosts diff --git a/integration/100_launch_test.sh b/integration/100_launch_test.sh new file mode 100755 index 000000000..aa308c3ec --- /dev/null +++ b/integration/100_launch_test.sh @@ -0,0 +1,10 @@ +#! /bin/bash + +. ./config.sh + +start_suite "Launch scope and check it boots" + +scope_on $HOST1 launch +assert_raises "curl $HOST1:4040" + +end_suite diff --git a/integration/200_clustering_test.sh b/integration/200_clustering_test.sh new file mode 100644 index 000000000..7820514b8 --- /dev/null +++ b/integration/200_clustering_test.sh @@ -0,0 +1,14 @@ +#! /bin/bash + +. ./config.sh + +start_suite "Launch 2 scopes and check they cluster" + +weave_on $HOST2 launch +container_id=$(start_container $HOST2) + +scope_on $HOST1 launch +scope_on $HOST2 launch +assert_raises "curl $HOST1:4040/api/topology/containers | grep '$container_id'" + +end_suite diff --git a/integration/README.md b/integration/README.md new file mode 100644 index 000000000..aba75469c --- /dev/null +++ b/integration/README.md @@ -0,0 +1,52 @@ +This directory contains integration tests for scope. + +## Requirements + +You need two VMs with docker >=1.3.1 installed and listening on TCP +port 2375 (see below). You also need to be able to ssh to these VMs, +preferably without having to input anything. + +The `Vagrantfile` in this directory constructs two such VMs. To meet +the aforementioned ssh requirement you may want to + + cp ~/.vagrant.d/insecure_private_key . + +## Running tests + + ./setup.sh + +Downloads a copy of weave (if not already downloaded) and calls it's +setup.sh script. Then, it uploads the scope images from where the +Makefile puts them (`/var/tmp`) to the two docker hosts, and copies +the scope script over. + +Then you can use, e.g., + + ./100_launch_test.sh + +to run an individual test, or + + ./run_all.sh + +to run everything named `*_test.sh`. + +## Using other VMs + +By default the tests assume the Vagrant VMs are used. + +To use other VMs, set the environment variable HOSTS to the +space-separated list of IP addresses of the docker hosts, and set the +environment variable SSH to a command that will log into +either (which may just be `ssh`). + +## Making docker available over TCP + +To make docker listen to a TCP socket, you will usually need to either +run it manually with an option like `-H tcp://0.0.0.0:2375`; or, for +apt-get installed docker (Ubuntu and Debian), add the line + +``` +DOCKER_OPTS="--host unix:///var/run/docker.sock --host tcp://0.0.0.0:2375" +``` + +to the file `/etc/default/docker`, then restart docker. diff --git a/integration/config.sh b/integration/config.sh new file mode 100644 index 000000000..cb90406fc --- /dev/null +++ b/integration/config.sh @@ -0,0 +1,25 @@ +# NB only to be sourced + +set -e + +# these ought to match what is in Vagrantfile +# exported to override weave config.sh +export SSH_DIR="$PWD" +export HOSTS + +WEAVE_REPO="github.com/weaveworks/weave" +WEAVE_ROOT="${GOPATH%%:*}/src/$WEAVE_REPO" +if [ ! -d "$WEAVE_ROOT" ] ; then + mkdir -p "$(dirname "$WEAVE_ROOT")" + git clone --depth 1 -b master https://$WEAVE_REPO.git "$WEAVE_ROOT" + go get $WEAVE_REPO/... +fi + +. "$WEAVE_ROOT/test/config.sh" + +scope_on() { + host=$1 + shift 1 + [ -z "$DEBUG" ] || greyly echo "Scope on $host: $@" >&2 + run_on $host "DOCKER_HOST=tcp://$host:$DOCKER_PORT" scope "$@" +} diff --git a/integration/gce.sh b/integration/gce.sh new file mode 100755 index 000000000..cdaef3554 --- /dev/null +++ b/integration/gce.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -e + +. ./config.sh + +export PROJECT=scope-integration-tests +. "$WEAVE_ROOT/test/gce.sh" "$@" diff --git a/integration/run_all.sh b/integration/run_all.sh new file mode 100755 index 000000000..91fc91b11 --- /dev/null +++ b/integration/run_all.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -e + +. ./config.sh + +NO_SCHEDULER=1 "$WEAVE_ROOT/test/run_all.sh" "$@" diff --git a/integration/setup.sh b/integration/setup.sh new file mode 100755 index 000000000..3a82d99b5 --- /dev/null +++ b/integration/setup.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +. ./config.sh + +echo Copying scope images and scripts to hosts +for HOST in $HOSTS; do + docker_on $HOST load -i ../scope.tar + upload_executable $HOST ../scope +done + +echo Installing weave +for HOST in $HOSTS; do + run_on $HOST "sudo curl -L git.io/weave -o /usr/local/bin/weave" + run_on $HOST "sudo chmod a+x /usr/local/bin/weave" +done From c92773f16fe115a0a398e5e04f3e73873c8383f1 Mon Sep 17 00:00:00 2001 From: Paul Bellamy Date: Mon, 29 Jun 2015 16:30:21 +0100 Subject: [PATCH 2/3] working on clustering test --- integration/200_clustering_test.sh | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/integration/200_clustering_test.sh b/integration/200_clustering_test.sh index 7820514b8..f42058632 100644 --- a/integration/200_clustering_test.sh +++ b/integration/200_clustering_test.sh @@ -5,10 +5,20 @@ start_suite "Launch 2 scopes and check they cluster" weave_on $HOST2 launch -container_id=$(start_container $HOST2) +docker_on $HOST2 run -dit --name db1 peterbourgon/tns-db +container_id=$(docker_on $HOST2 run -dit --name app1 --link db1:db1 peterbourgon/tns-app) -scope_on $HOST1 launch -scope_on $HOST2 launch -assert_raises "curl $HOST1:4040/api/topology/containers | grep '$container_id'" +scope_on $HOST1 launch $HOST2 +scope_on $HOST2 launch $HOST1 + +SUCCESS= +for i in {1..10}; do + if (curl $HOST1:4040/api/topology/containers | grep "$container_id" >/dev/null); then + SUCCESS=1 + break + fi + sleep 1 +done +assert "echo $SUCCESS" "1" end_suite From 0a0b3147c70b241a89614efe81b57eff5b5ebf67 Mon Sep 17 00:00:00 2001 From: Paul Bellamy Date: Thu, 2 Jul 2015 11:37:40 +0100 Subject: [PATCH 3/3] [circle] run tests on prs, but skip integration tests check before each integration test line is a bit ugly. Can combine them into one step, but then you don't get metrics on how long each step takes (in circle). --- circle.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/circle.yml b/circle.yml index 6ab0829a1..fc5afc1e8 100644 --- a/circle.yml +++ b/circle.yml @@ -2,7 +2,6 @@ general: branches: ignore: - gh-pages - - /pull\/.*/ machine: services: @@ -27,7 +26,7 @@ dependencies: mv scope_ui_build.tar $(dirname "$SCOPE_UI_BUILD"); fi - curl https://sdk.cloud.google.com | bash - - bin/setup-circleci-secrets "$SECRET_PASSWORD" + - test -z "$SECRET_PASSWORD" || bin/setup-circleci-secrets "$SECRET_PASSWORD" post: - go version - go clean -i net @@ -44,12 +43,12 @@ test: - cd $SRCDIR; make - cd $SRCDIR; ./bin/test -slow - cd $SRCDIR/experimental; make - - cd $SRCDIR/integration; ./gce.sh setup - - cd $SRCDIR/integration; . ./gce.sh hosts; ./setup.sh - - cd $SRCDIR/integration; . ./gce.sh hosts; ./run_all.sh: + - test -z "$SECRET_PASSWORD" || (cd $SRCDIR/integration; ./gce.sh setup) + - test -z "$SECRET_PASSWORD" || (cd $SRCDIR/integration; . ./gce.sh hosts; ./setup.sh) + - test -z "$SECRET_PASSWORD" || (cd $SRCDIR/integration; . ./gce.sh hosts; ./run_all.sh): timeout: 300 post: - - cd $SRCDIR/integration; ./gce.sh destroy + - test -z "$SECRET_PASSWORD" || (cd $SRCDIR/integration; ./gce.sh destroy) - goveralls -repotoken $COVERALLS_REPO_TOKEN -coverprofile=$SRCDIR/profile.cov -service=circleci || true - cd $SRCDIR; cp coverage.html $CIRCLE_ARTIFACTS - cd $SRCDIR; cp scope.tar $CIRCLE_ARTIFACTS