diff --git a/tests/boulder-integration.sh b/tests/boulder-integration.sh index 0b726ccde..f01c0eff3 100755 --- a/tests/boulder-integration.sh +++ b/tests/boulder-integration.sh @@ -29,14 +29,22 @@ common() { # TODO: boulder#985 common_dvsni() { - common --dvsni-port 5001 --simple-http-port 0 "$@" + common \ + --standalone-supported-challenges dvsni \ + --dvsni-port 5001 \ + --simple-http-port 0 \ + "$@" } common_http() { - common --dvsni-port 0 --simple-http-port ${SIMPLE_HTTP_PORT:-5001} "$@" + common \ + --standalone-supported-challenges simpleHttp \ + --dvsni-port 0 \ + --simple-http-port ${SIMPLE_HTTP_PORT:-5001} \ + "$@" } -common_dvsni --domains le1.wtf --standalone-supported-challenges dvsni auth -common_http --domains le2.wtf --standalone-supported-challenges simpleHttp run +common_dvsni --domains le1.wtf auth +common_http --domains le2.wtf run common_http -a manual -d le.wtf auth export CSR_PATH="${root}/csr.der" KEY_PATH="${root}/key.pem" \ diff --git a/tools/dev-release.sh b/tools/dev-release.sh index cebe5001c..6bbc6ced4 100755 --- a/tools/dev-release.sh +++ b/tools/dev-release.sh @@ -10,8 +10,8 @@ RELEASE_GPG_KEY="${RELEASE_GPG_KEY:-148C30F6F7E429337A72D992B00B9CC82D7ADF2C}" PORT=${PORT:-1234} # subpackages to be released -SUBPKGS=${SUBPKGS:-"acme letsencrypt_apache letsencrypt_nginx letshelp_letsencrypt"} -subpkgs_dirs="$(echo $SUBPKGS | sed s/_/-/g)" +SUBPKGS=${SUBPKGS:-"acme letsencrypt-apache letsencrypt-nginx letshelp-letsencrypt"} +subpkgs_modules="$(echo $SUBPKGS | sed s/-/_/g)" # letsencrypt_compatibility_test is not packaged because: # - it is not meant to be used by anyone else than Let's Encrypt devs # - it causes problems when running nosetests - the latter tries to @@ -22,14 +22,27 @@ tag="v$version" mv "dist.$version" "dist.$version.$(date +%s).bak" || true git tag --delete "$tag" || true +tmpvenv=$(mktemp -d) +virtualenv --no-site-packages $tmpvenv +. $tmpvenv/bin/activate +# update setuptools/pip just like in other places in the repo +pip install -U setuptools +pip install -U pip # latest pip => no --pre for dev releases +pip install -U wheel # setup.py bdist_wheel + +# newer versions of virtualenv inherit setuptools/pip/wheel versions +# from current env when creating a child env +pip install -U virtualenv + root="$(mktemp -d -t le.$version.XXX)" echo "Cloning into fresh copy at $root" # clean repo = no artificats git clone . $root +git rev-parse HEAD cd $root git branch -f "$DEV_RELEASE_BRANCH" git checkout "$DEV_RELEASE_BRANCH" -for pkg_dir in $subpkgs_dirs +for pkg_dir in $SUBPKGS do sed -i $x "s/^version.*/version = '$version'/" $pkg_dir/setup.py done @@ -41,7 +54,7 @@ git tag --local-user "$RELEASE_GPG_KEY" \ --sign --message "Release $version" "$tag" echo "Preparing sdists and wheels" -for pkg_dir in . $subpkgs_dirs +for pkg_dir in . $SUBPKGS do cd $pkg_dir @@ -61,7 +74,7 @@ done mkdir "dist.$version" mv dist "dist.$version/letsencrypt" -for pkg_dir in $subpkgs_dirs +for pkg_dir in $SUBPKGS do mv $pkg_dir/dist "dist.$version/$pkg_dir/" done @@ -74,9 +87,10 @@ python -m SimpleHTTPServer $PORT & # installed from local PyPI rather than current directory (repo root) virtualenv --no-site-packages ../venv . ../venv/bin/activate -# Now, use our local PyPI. --pre allows installation of pre-release (incl. dev) +pip install -U setuptools +pip install -U pip +# Now, use our local PyPI pip install \ - --pre \ --extra-index-url http://localhost:$PORT \ letsencrypt $SUBPKGS # stop local PyPI @@ -88,7 +102,7 @@ mkdir ../kgs kgs="../kgs/$version" pip freeze | tee $kgs pip install nose -nosetests letsencrypt $SUBPKGS +nosetests letsencrypt $subpkgs_modules echo "New root: $root" echo "KGS is at $root/kgs" diff --git a/tox.ini b/tox.ini index 877b8f5af..8ea3e518f 100644 --- a/tox.ini +++ b/tox.ini @@ -8,15 +8,23 @@ skipsdist = true envlist = py26,py27,py33,py34,cover,lint +# nosetest -v => more verbose output, allows to detect busy waiting +# loops, especially on Travis + [testenv] +# packages installed separately to ensure that dowstream deps problems +# are detected, c.f. #1002 commands = - pip install -r requirements.txt -e acme -e .[testing] -e letsencrypt-apache -e letsencrypt-nginx -e letshelp-letsencrypt - # -q does not suppress errors - python setup.py test - python setup.py test -s acme - python setup.py test -s letsencrypt_apache - python setup.py test -s letsencrypt_nginx - python setup.py test -s letshelp_letsencrypt + pip install -e acme[testing] + nosetests -v acme + pip install -r requirements.txt -e .[testing] + nosetests -v letsencrypt + pip install -e letsencrypt-apache + nosetests -v letsencrypt_apache + pip install -e letsencrypt-nginx + nosetests -v letsencrypt_nginx + pip install -e letshelp-letsencrypt + nosetests -v letshelp_letsencrypt setenv = PYTHONPATH = {toxinidir} @@ -26,12 +34,12 @@ setenv = [testenv:py33] commands = pip install -e acme[testing] - nosetests acme + nosetests -v acme [testenv:py34] commands = pip install -e acme[testing] - nosetests acme + nosetests -v acme [testenv:cover] basepython = python2.7