Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/certbot/certbot.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Warren <bmw@users.noreply.github.com>2017-10-13 03:00:13 +0300
committerGitHub <noreply@github.com>2017-10-13 03:00:13 +0300
commit7c1115881012d62c9903c60a0fd57023b641b8d4 (patch)
tree97aae9407e8ac12ba73bf843fef86fb14f888229
parent232f5a92d193b1b4a955d0d5f2d1ea639215331d (diff)
Retry failures to start boulder (#5176)
Occasionally a network error prevents Docker from starting boulder causing Travis tests to fail like it did at https://travis-ci.org/certbot/certbot/jobs/282923098. This works around the problem by using travis_retry to try to start boulder again if it fails. This also moves the logic of waiting for boulder to start into tests/boulder-fetch.sh so people running integration tests locally can benefit.
-rw-r--r--.travis.yml4
-rwxr-xr-xtests/boulder-fetch.sh6
-rwxr-xr-xtests/tox-boulder-integration.sh12
-rwxr-xr-xtests/travis-integration.sh14
4 files changed, 21 insertions, 15 deletions
diff --git a/.travis.yml b/.travis.yml
index b27081c24..48b9b43cb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -161,7 +161,9 @@ addons:
- libapache2-mod-macro
install: "travis_retry pip install tox coveralls"
-script: 'travis_retry tox && ([ "xxx$BOULDER_INTEGRATION" = "xxx" ] || ./tests/travis-integration.sh)'
+script:
+ - travis_retry tox
+ - '[ -z "${BOULDER_INTEGRATION+x}" ] || (travis_retry tests/boulder-fetch.sh && tests/tox-boulder-integration.sh)'
after_success: '[ "$TOXENV" == "cover" ] && coveralls'
diff --git a/tests/boulder-fetch.sh b/tests/boulder-fetch.sh
index 60538362e..08eb736c2 100755
--- a/tests/boulder-fetch.sh
+++ b/tests/boulder-fetch.sh
@@ -17,3 +17,9 @@ FAKE_DNS=$(ifconfig docker0 | grep "inet addr:" | cut -d: -f2 | awk '{ print $1}
[ -z "$FAKE_DNS" ] && echo Unable to find the IP for docker0 && exit 1
sed -i "s/FAKE_DNS: .*/FAKE_DNS: ${FAKE_DNS}/" docker-compose.yml
docker-compose up -d
+
+set +x # reduce verbosity while waiting for boulder
+until curl http://localhost:4000/directory 2>/dev/null; do
+ echo waiting for boulder
+ sleep 1
+done
diff --git a/tests/tox-boulder-integration.sh b/tests/tox-boulder-integration.sh
new file mode 100755
index 000000000..8c8a967fd
--- /dev/null
+++ b/tests/tox-boulder-integration.sh
@@ -0,0 +1,12 @@
+#!/bin/bash -e
+# A simple wrapper around tests/boulder-integration.sh that activates the tox
+# virtual environment defined by the environment variable TOXENV before running
+# integration tests.
+
+if [ -z "${TOXENV+x}" ]; then
+ echo "The environment variable TOXENV must be set to use this script!" >&2
+ exit 1
+fi
+
+source .tox/$TOXENV/bin/activate
+tests/boulder-integration.sh
diff --git a/tests/travis-integration.sh b/tests/travis-integration.sh
deleted file mode 100755
index b42617400..000000000
--- a/tests/travis-integration.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-set -o errexit
-
-./tests/boulder-fetch.sh
-
-source .tox/$TOXENV/bin/activate
-
-until curl http://boulder:4000/directory 2>/dev/null; do
- echo waiting for boulder
- sleep 1
-done
-
-./tests/boulder-integration.sh