mirror of
https://github.com/certbot/certbot.git
synced 2026-04-28 17:51:04 -04:00
Travis CI setup for integration testing (fixes #530).
Candidate issues to be addressed: - race condition: start.sh might fail to start Boulder WFE before ./tests/boulder-integration.sh is run (unlikely, but possible, leading to flaky tests) - intertwined build logs (./start.sh boostraps in the background, integration test debug logs on server and client side)
This commit is contained in:
parent
8bde250ff2
commit
e0bc6aeb50
3 changed files with 35 additions and 16 deletions
23
.travis.yml
23
.travis.yml
|
|
@ -3,19 +3,24 @@ language: python
|
|||
# http://docs.travis-ci.com/user/ci-environment/#CI-environment-OS
|
||||
before_install: travis_retry sudo ./bootstrap/ubuntu.sh
|
||||
|
||||
install: "travis_retry pip install tox coveralls"
|
||||
script: "travis_retry tox"
|
||||
|
||||
after_success: '[ "$TOXENV" == "cover" ] && coveralls'
|
||||
|
||||
# using separate envs with different TOXENVs creates 4x1 Travis build
|
||||
# matrix, which allows us to clearly distinguish which component under
|
||||
# test has failed
|
||||
env:
|
||||
- TOXENV=py26
|
||||
- TOXENV=py27
|
||||
- TOXENV=lint
|
||||
- TOXENV=cover
|
||||
global:
|
||||
- GOPATH=/tmp/go
|
||||
matrix:
|
||||
- TOXENV=py26
|
||||
- TOXENV=py27
|
||||
- TOXENV=lint
|
||||
- TOXENV=cover
|
||||
|
||||
install: "travis_retry pip install tox coveralls"
|
||||
before_script: '[ "${TOXENV:0:2}" != "py" ] || ./tests/boulder-start.sh'
|
||||
# TODO: eliminate substring slice bashism
|
||||
script: 'travis_retry tox && ([ "${TOXENV:0:2}" != "py" ] || (source .tox/$TOXENV/bin/activate && ./tests/boulder-integration.sh))'
|
||||
|
||||
after_success: '[ "$TOXENV" == "cover" ] && coveralls'
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
#!/bin/sh
|
||||
# Simple integration test, run as "./boulder-integration.sh auth" or
|
||||
# adjust parameters: "./boulder-integration.sh --domain bang auth".
|
||||
#!/bin/sh -xe
|
||||
# Simple integration test, make sure to activate virtualenv beforehand
|
||||
# (source venv/bin/activate) and that you are running Boulder test
|
||||
# instance (see ./boulder-start.sh).
|
||||
|
||||
root="$(mktemp -d)"
|
||||
echo "\nRoot integration tests directory: $root"
|
||||
|
||||
# first three flags required, rest is handy defaults
|
||||
letsencrypt \
|
||||
|
|
@ -17,7 +19,4 @@ letsencrypt \
|
|||
--domains le.wtf \
|
||||
--authenticator standalone \
|
||||
-vvvvvvv \
|
||||
"$@"
|
||||
|
||||
# print at the end, so it's more visible
|
||||
echo "\nRoot integration tests directory: $root"
|
||||
auth
|
||||
|
|
|
|||
15
tests/boulder-start.sh
Executable file
15
tests/boulder-start.sh
Executable file
|
|
@ -0,0 +1,15 @@
|
|||
#!/bin/sh -xe
|
||||
# Download and run Boulder instance for integration testing
|
||||
|
||||
export GOPATH="${GOPATH:-/tmp/go}"
|
||||
|
||||
# $ go get github.com/letsencrypt/boulder
|
||||
# package github.com/letsencrypt/boulder
|
||||
# imports github.com/letsencrypt/boulder
|
||||
# imports github.com/letsencrypt/boulder: no buildable Go source files in /tmp/go/src/github.com/letsencrypt/boulder
|
||||
|
||||
go get -d github.com/letsencrypt/boulder/cmd/boulder
|
||||
cd $GOPATH/src/github.com/letsencrypt/boulder
|
||||
make -j4 # Travis has 2 cores per build instance.
|
||||
./start.sh &
|
||||
# Hopefully start.sh bootstraps before integration test is started...
|
||||
Loading…
Reference in a new issue