diff --git a/bin/steps/collectstatic b/bin/steps/collectstatic index 989490be420ae21ded15952f72b3c319b3fbb538..fbd9b880b99c1385073e3d7b6cdc3e326ebcbd97 100755 --- a/bin/steps/collectstatic +++ b/bin/steps/collectstatic @@ -39,6 +39,8 @@ if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALL # Display a warning if collectstatic failed. [ "$COLLECTSTATIC_STATUS" -ne 0 ] && { + mcount "failure.collectstatic" + echo echo " ! Error while running '$ python $MANAGE_FILE collectstatic --noinput'." echo " See traceback above for details." diff --git a/bin/steps/pip-install b/bin/steps/pip-install index 4cae628b7ab0e5bbcffee530f5d405f9e465f832..9818928aacbd30145069eed15b9f7a9428888ef0 100755 --- a/bin/steps/pip-install +++ b/bin/steps/pip-install @@ -15,10 +15,19 @@ if [ ! "$SKIP_PIP_INSTALL" ]; then fi set +e - + # Measure that we're using pip. mcount "tool.pip" + # Count expected build failures. + if grep -q 'wsgiref' requirements.txt; then + mcount "failure.wsgiref" + fi + if grep -q '==0.0.0' requirements.txt; then + mcount "failure.none-version" + fi + + /app/.heroku/python/bin/pip install -r "$BUILD_DIR/requirements.txt" --exists-action=w --src=/app/.heroku/src --disable-pip-version-check --no-cache-dir 2>&1 | tee "$WARNINGS_LOG" | cleanup | indent PIP_STATUS="${PIPESTATUS[0]}" set -e @@ -35,8 +44,8 @@ if [ ! "$SKIP_PIP_INSTALL" ]; then /app/.heroku/python/bin/pip freeze --disable-pip-version-check > .heroku/python/requirements-installed.txt echo - - # Install test dependencies, for CI. + + # Install test dependencies, for CI. if [ "$INSTALL_TEST" ]; then if [[ -f "$1/requirements-test.txt" ]]; then puts-step "Installing test dependencies…" diff --git a/bin/steps/pip-uninstall b/bin/steps/pip-uninstall index 9ec05394a2a7f2af92da0915c9d7eb7c177284e7..58fdbf055c4cb7b1d5bf379799bb5097ce89737e 100755 --- a/bin/steps/pip-uninstall +++ b/bin/steps/pip-uninstall @@ -11,7 +11,10 @@ if [ ! "$SKIP_PIP_INSTALL" ]; then cp .heroku/python/requirements-declared.txt requirements-declared.txt - pip-diff --stale requirements-declared.txt requirements.txt --exclude setuptools pip wheel > .heroku/python/requirements-stale.txt + + if ! pip-diff --stale requirements-declared.txt requirements.txt --exclude setuptools pip wheel > .heroku/python/requirements-stale.txt; then + mount "failure.bad-requirements" + fi rm -fr requirements-declared.txt diff --git a/bin/steps/pipenv b/bin/steps/pipenv index 5323add36a4df8d8008493da441e8c9c26cc7efc..7f9e3e554a2063466e6ec6b99966648c437c79d4 100755 --- a/bin/steps/pipenv +++ b/bin/steps/pipenv @@ -14,6 +14,7 @@ if [[ -f Pipfile.lock ]]; then # echo "To disable this functionality, run the following command:" # echo "" # echo " $ heroku config:set PIPENV_ALWAYS_INSTALL=1" | indent + mcount "tool.pipenv" export SKIP_PIPENV_INSTALL=1 export SKIP_PIP_INSTALL=1 fi