mirror of
https://github.com/weaveworks/scope.git
synced 2026-02-14 10:00:13 +00:00
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.
This commit is contained in:
109
bin/setup-circleci-secrets
Executable file
109
bin/setup-circleci-secrets
Executable file
@@ -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
|
||||
@@ -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
|
||||
|
||||
3
integration/.gitignore
vendored
Normal file
3
integration/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
insecure_private_key
|
||||
.vagrant
|
||||
.ssh_known_hosts
|
||||
10
integration/100_launch_test.sh
Executable file
10
integration/100_launch_test.sh
Executable file
@@ -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
|
||||
14
integration/200_clustering_test.sh
Normal file
14
integration/200_clustering_test.sh
Normal file
@@ -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
|
||||
52
integration/README.md
Normal file
52
integration/README.md
Normal file
@@ -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 <var>HOSTS</var> to the
|
||||
space-separated list of IP addresses of the docker hosts, and set the
|
||||
environment variable <var>SSH</var> 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.
|
||||
25
integration/config.sh
Normal file
25
integration/config.sh
Normal file
@@ -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 "$@"
|
||||
}
|
||||
8
integration/gce.sh
Executable file
8
integration/gce.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
. ./config.sh
|
||||
|
||||
export PROJECT=scope-integration-tests
|
||||
. "$WEAVE_ROOT/test/gce.sh" "$@"
|
||||
7
integration/run_all.sh
Executable file
7
integration/run_all.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
. ./config.sh
|
||||
|
||||
NO_SCHEDULER=1 "$WEAVE_ROOT/test/run_all.sh" "$@"
|
||||
17
integration/setup.sh
Executable file
17
integration/setup.sh
Executable file
@@ -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
|
||||
Reference in New Issue
Block a user