Provisioning and configuration being expensive time-wise, we create Google Cloud Platform images for each Docker/Kubernetes/Kubernetes CNI versions triple, and configure these once (instead of for each build), and then re-use these in subsequent builds, effectively implementing a 'cache' of images.
30 lines
1.1 KiB
Bash
Executable File
30 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
source "$STATE"
|
|
|
|
if [ -n "$TEST_AND_PUBLISH" ]; then
|
|
[ -n "$SECRET_KEY" ] || {
|
|
echo "Cannot run smoke tests: no secret key"
|
|
exit 1
|
|
}
|
|
# Install Terraform and Ansible:
|
|
curl -fsS https://releases.hashicorp.com/terraform/0.8.5/terraform_0.8.5_linux_amd64.zip | gunzip >terraform && chmod +x terraform && sudo mv terraform /usr/bin
|
|
sudo apt-get update || true
|
|
sudo apt-get install -qq -y python-pip python-dev libffi-dev libssl-dev && pip install --user -U cffi && pip install --user ansible
|
|
export PATH="$PATH:$HOME/.local/bin"
|
|
|
|
# Run integration tests:
|
|
export COVERAGE=true
|
|
export WEAVE_NET_SANITY_CHECKS_FILES="$CIRCLE_ARTIFACTS/weave_net_sanity_check_*.log"
|
|
export NAME="test-$CIRCLE_BUILD_NUM-$CIRCLE_NODE_INDEX"
|
|
export DISK_NAME_PREFIX="test-$CIRCLE_BUILD_NUM-0"
|
|
export USE_IMAGE=1
|
|
# Only attempt to create GCP image in first container, wait for it to be created otherwise:
|
|
[ "$CIRCLE_NODE_INDEX" == "0" ] && export CREATE_IMAGE=1
|
|
|
|
cd "$SRCDIR/test" # Ensures we generate code coverage files in the right folder.
|
|
./run-integration-tests.sh
|
|
fi
|