mirror of
https://github.com/certbot/certbot.git
synced 2026-05-28 04:34:11 -04:00
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.
25 lines
1.1 KiB
Bash
Executable file
25 lines
1.1 KiB
Bash
Executable file
#!/bin/bash
|
|
# Download and run Boulder instance for integration testing
|
|
set -xe
|
|
|
|
# Clone Boulder into a GOPATH-style directory structure even if Go isn't
|
|
# installed, because Boulder's docker-compose.yml file wll look for it there.
|
|
export GOPATH=${GOPATH:-$HOME/gopath}
|
|
BOULDERPATH=${BOULDERPATH:-$GOPATH/src/github.com/letsencrypt/boulder}
|
|
if [ ! -d ${BOULDERPATH} ]; then
|
|
git clone --depth=1 https://github.com/letsencrypt/boulder ${BOULDERPATH}
|
|
fi
|
|
|
|
cd ${BOULDERPATH}
|
|
FAKE_DNS=$(ifconfig docker0 | grep "inet addr:" | cut -d: -f2 | awk '{ print $1}')
|
|
[ -z "$FAKE_DNS" ] && FAKE_DNS=$(ifconfig docker0 | grep "inet " | xargs | cut -d ' ' -f 2)
|
|
[ -z "$FAKE_DNS" ] && FAKE_DNS=$(ip addr show dev docker0 | grep "inet " | xargs | cut -d ' ' -f 2 | cut -d '/' -f 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
|