Commit 2df1131d authored by Kenneth Reitz's avatar Kenneth Reitz

remove bpwatch

parent af079526
...@@ -40,11 +40,8 @@ PIP_VERSION="9.0.1" ...@@ -40,11 +40,8 @@ PIP_VERSION="9.0.1"
export WARNINGS_LOG=$(mktemp) export WARNINGS_LOG=$(mktemp)
export RECOMMENDED_PYTHON_VERSION=$DEFAULT_PYTHON_VERSION export RECOMMENDED_PYTHON_VERSION=$DEFAULT_PYTHON_VERSION
# Setup bpwatch # Add vendor to path.
export PATH=$PATH:$ROOT_DIR/vendor/:$ROOT_DIR/vendor/bpwatch export PATH=$PATH:$ROOT_DIR/vendor/
LOGPLEX_KEY="t.b90d9d29-5388-4908-9737-b4576af1d4ce"
export BPWATCH_STORE_PATH=$CACHE_DIR/bpwatch.json
BUILDPACK_VERSION=v28
# Setup pip-pop (pip-diff) # Setup pip-pop (pip-diff)
export PATH=$PATH:$ROOT_DIR/vendor/pip-pop export PATH=$PATH:$ROOT_DIR/vendor/pip-pop
...@@ -59,12 +56,6 @@ unset GIT_DIR PYTHONHOME PYTHONPATH ...@@ -59,12 +56,6 @@ unset GIT_DIR PYTHONHOME PYTHONPATH
unset RECEIVE_DATA RUN_KEY BUILD_INFO DEPLOY LOG_TOKEN DYNO unset RECEIVE_DATA RUN_KEY BUILD_INFO DEPLOY LOG_TOKEN DYNO
unset CYTOKINE_LOG_FILE GEM_PATH unset CYTOKINE_LOG_FILE GEM_PATH
# Setup buildpack instrumentation.
bpwatch init $LOGPLEX_KEY
bpwatch build python $BUILDPACK_VERSION $REQUEST_ID
bpwatch start compile
# Syntax sugar. # Syntax sugar.
source $BIN_DIR/utils source $BIN_DIR/utils
...@@ -102,9 +93,7 @@ if [[ ! -f Procfile ]]; then ...@@ -102,9 +93,7 @@ if [[ ! -f Procfile ]]; then
fi fi
# Experimental pre_compile hook. # Experimental pre_compile hook.
bpwatch start pre_compile source $BIN_DIR/steps/hooks/pre_compile
source $BIN_DIR/steps/hooks/pre_compile
bpwatch stop pre_compile
# Sticky runtimes. # Sticky runtimes.
if [ -f $CACHE_DIR/.heroku/python-version ]; then if [ -f $CACHE_DIR/.heroku/python-version ]; then
...@@ -130,25 +119,21 @@ fi ...@@ -130,25 +119,21 @@ fi
mkdir -p $CACHE_DIR mkdir -p $CACHE_DIR
# Purge "old-style" virtualenvs. # Purge "old-style" virtualenvs.
bpwatch start clear_old_venvs [ -d $CACHE_DIR/$LEGACY_TRIGGER ] && rm -fr $CACHE_DIR/.heroku/bin $CACHE_DIR/.heroku/lib $CACHE_DIR/.heroku/include
[ -d $CACHE_DIR/$LEGACY_TRIGGER ] && rm -fr $CACHE_DIR/.heroku/bin $CACHE_DIR/.heroku/lib $CACHE_DIR/.heroku/include [ -d $CACHE_DIR/$VIRTUALENV_LOC ] && rm -fr $CACHE_DIR/.heroku/venv $CACHE_DIR/.heroku/src
[ -d $CACHE_DIR/$VIRTUALENV_LOC ] && rm -fr $CACHE_DIR/.heroku/venv $CACHE_DIR/.heroku/src
bpwatch stop clear_old_venvs
# Restore old artifacts from the cache. # Restore old artifacts from the cache.
bpwatch start restore_cache mkdir -p .heroku
mkdir -p .heroku
cp -R $CACHE_DIR/.heroku/python .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/python .heroku/ &> /dev/null || true cp -R $CACHE_DIR/.heroku/python-stack .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/python-stack .heroku/ &> /dev/null || true cp -R $CACHE_DIR/.heroku/python-version .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/python-version .heroku/ &> /dev/null || true cp -R $CACHE_DIR/.heroku/vendor .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/vendor .heroku/ &> /dev/null || true cp -R $CACHE_DIR/.heroku/venv .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/venv .heroku/ &> /dev/null || true if [[ -d $CACHE_DIR/.heroku/src ]]; then
if [[ -d $CACHE_DIR/.heroku/src ]]; then cp -R $CACHE_DIR/.heroku/src .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/src .heroku/ &> /dev/null || true fi
fi
bpwatch stop restore_cache
mkdir -p $(dirname $PROFILE_PATH) mkdir -p $(dirname $PROFILE_PATH)
mkdir -p /app/.heroku/src mkdir -p /app/.heroku/src
...@@ -221,9 +206,7 @@ set-default-env PYTHONPATH /app/ ...@@ -221,9 +206,7 @@ set-default-env PYTHONPATH /app/
cp $ROOT_DIR/vendor/python.gunicorn.sh $GUNICORN_PROFILE_PATH cp $ROOT_DIR/vendor/python.gunicorn.sh $GUNICORN_PROFILE_PATH
# Experimental post_compile hook. # Experimental post_compile hook.
bpwatch start post_compile source $BIN_DIR/steps/hooks/post_compile
source $BIN_DIR/steps/hooks/post_compile
bpwatch stop post_compile
set +e set +e
# rewrite build dir in egg links to /app so things are found at runtime # rewrite build dir in egg links to /app so things are found at runtime
...@@ -236,26 +219,20 @@ find .heroku/python/lib-python/*/site-packages/ -name "*.pth" -print0 2> /dev/n ...@@ -236,26 +219,20 @@ find .heroku/python/lib-python/*/site-packages/ -name "*.pth" -print0 2> /dev/n
set -e set -e
# Store new artifacts in cache. # Store new artifacts in cache.
bpwatch start dump_cache
rm -rf $CACHE_DIR/.heroku/python
rm -rf $CACHE_DIR/.heroku/python rm -rf $CACHE_DIR/.heroku/python-version
rm -rf $CACHE_DIR/.heroku/python-version rm -rf $CACHE_DIR/.heroku/python-stack
rm -rf $CACHE_DIR/.heroku/python-stack rm -rf $CACHE_DIR/.heroku/vendor
rm -rf $CACHE_DIR/.heroku/vendor rm -rf $CACHE_DIR/.heroku/venv
rm -rf $CACHE_DIR/.heroku/venv rm -rf $CACHE_DIR/.heroku/src
rm -rf $CACHE_DIR/.heroku/src
mkdir -p $CACHE_DIR/.heroku
mkdir -p $CACHE_DIR/.heroku cp -R .heroku/python $CACHE_DIR/.heroku/
cp -R .heroku/python $CACHE_DIR/.heroku/ cp -R .heroku/python-version $CACHE_DIR/.heroku/
cp -R .heroku/python-version $CACHE_DIR/.heroku/ cp -R .heroku/python-stack $CACHE_DIR/.heroku/ &> /dev/null || true
cp -R .heroku/python-stack $CACHE_DIR/.heroku/ &> /dev/null || true cp -R .heroku/vendor $CACHE_DIR/.heroku/ &> /dev/null || true
cp -R .heroku/vendor $CACHE_DIR/.heroku/ &> /dev/null || true cp -R .heroku/venv $CACHE_DIR/.heroku/ &> /dev/null || true
cp -R .heroku/venv $CACHE_DIR/.heroku/ &> /dev/null || true if [[ -d .heroku/src ]]; then
if [[ -d .heroku/src ]]; then cp -R .heroku/src $CACHE_DIR/.heroku/ &> /dev/null || true
cp -R .heroku/src $CACHE_DIR/.heroku/ &> /dev/null || true fi
fi
bpwatch stop dump_cache
# Fin.
bpwatch stop compile
...@@ -22,8 +22,6 @@ MANAGE_FILE=${MANAGE_FILE:-fakepath} ...@@ -22,8 +22,6 @@ MANAGE_FILE=${MANAGE_FILE:-fakepath}
# Ensure that Django is explicitly specified in requirements.txt # Ensure that Django is explicitly specified in requirements.txt
pip-grep -s requirements.txt django Django && DJANGO_INSTALLED=1 pip-grep -s requirements.txt django Django && DJANGO_INSTALLED=1
bpwatch start collectstatic # metrics collection
if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALLED" ]; then if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALLED" ]; then
set +e set +e
...@@ -63,5 +61,3 @@ if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALL ...@@ -63,5 +61,3 @@ if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALL
echo echo
fi fi
bpwatch stop collectstatic # metrics collection
...@@ -17,8 +17,6 @@ PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH" ...@@ -17,8 +17,6 @@ PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
# Syntax sugar. # Syntax sugar.
source $BIN_DIR/utils source $BIN_DIR/utils
bpwatch start libffi_install
# If a package using cffi exists within requirements, use vendored libffi. # If a package using cffi exists within requirements, use vendored libffi.
if (pip-grep -s requirements.txt argon2-cffi bcrypt cffi cryptography django[argon2] Django[argon2] django[bcrypt] Django[bcrypt] PyNaCl pyOpenSSL PyOpenSSL requests[security] misaka &> /dev/null) then if (pip-grep -s requirements.txt argon2-cffi bcrypt cffi cryptography django[argon2] Django[argon2] django[bcrypt] Django[bcrypt] PyNaCl pyOpenSSL PyOpenSSL requests[security] misaka &> /dev/null) then
...@@ -31,5 +29,3 @@ if (pip-grep -s requirements.txt argon2-cffi bcrypt cffi cryptography django[arg ...@@ -31,5 +29,3 @@ if (pip-grep -s requirements.txt argon2-cffi bcrypt cffi cryptography django[arg
export LIBFFI=$(pwd)/vendor export LIBFFI=$(pwd)/vendor
fi fi
bpwatch stop libffi_install
...@@ -17,8 +17,6 @@ PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH" ...@@ -17,8 +17,6 @@ PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
# Syntax sugar. # Syntax sugar.
source $BIN_DIR/utils source $BIN_DIR/utils
bpwatch start gdal_install
# If GDAL exists within requirements, use vendored gdal. # If GDAL exists within requirements, use vendored gdal.
if (pip-grep -s requirements.txt GDAL gdal pygdal &> /dev/null) then if (pip-grep -s requirements.txt GDAL gdal pygdal &> /dev/null) then
...@@ -31,5 +29,3 @@ if (pip-grep -s requirements.txt GDAL gdal pygdal &> /dev/null) then ...@@ -31,5 +29,3 @@ if (pip-grep -s requirements.txt GDAL gdal pygdal &> /dev/null) then
export GDAL=$(pwd)/vendor export GDAL=$(pwd)/vendor
fi fi
bpwatch stop gdal_install
...@@ -19,8 +19,6 @@ PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH" ...@@ -19,8 +19,6 @@ PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
# Syntax sugar. # Syntax sugar.
source $BIN_DIR/utils source $BIN_DIR/utils
bpwatch start geo_libs_install
# If GDAL exists within requirements, use vendored gdal. # If GDAL exists within requirements, use vendored gdal.
if [[ "$BUILD_WITH_GEO_LIBRARIES" ]]; then if [[ "$BUILD_WITH_GEO_LIBRARIES" ]]; then
...@@ -35,5 +33,3 @@ if [[ "$BUILD_WITH_GEO_LIBRARIES" ]]; then ...@@ -35,5 +33,3 @@ if [[ "$BUILD_WITH_GEO_LIBRARIES" ]]; then
export GDAL=$(pwd)/vendor export GDAL=$(pwd)/vendor
fi fi
bpwatch stop geo_libs_install
# Install Mercurial if it appears to be required. # Install Mercurial if it appears to be required.
if (grep -Fiq "hg+" requirements.txt) then if (grep -Fiq "hg+" requirements.txt) then
bpwatch start mercurial_install
/app/.heroku/python/bin/pip install mercurial | cleanup | indent /app/.heroku/python/bin/pip install mercurial | cleanup | indent
bpwatch stop mercurial_install
fi fi
...@@ -12,8 +12,6 @@ ...@@ -12,8 +12,6 @@
# Syntax sugar. # Syntax sugar.
source $BIN_DIR/utils source $BIN_DIR/utils
bpwatch start nltk_download
# Check that nltk was installed by pip, otherwise obviously not needed # Check that nltk was installed by pip, otherwise obviously not needed
python -m nltk.downloader -h >/dev/null 2>&1 python -m nltk.downloader -h >/dev/null 2>&1
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
...@@ -29,5 +27,3 @@ if [ $? -eq 0 ]; then ...@@ -29,5 +27,3 @@ if [ $? -eq 0 ]; then
fi fi
fi fi
bpwatch stop nltk_download
...@@ -13,9 +13,6 @@ find .heroku/python/lib-python/*/site-packages/ -name "*.egg-link" -print0 2> /d ...@@ -13,9 +13,6 @@ find .heroku/python/lib-python/*/site-packages/ -name "*.egg-link" -print0 2> /d
find .heroku/python/lib-python/*/site-packages/ -name "*.pth" -print0 2> /dev/null | xargs -r -0 -n 1 sed -i -e "s#/app/#/$(pwd)/#" &> /dev/null find .heroku/python/lib-python/*/site-packages/ -name "*.pth" -print0 2> /dev/null | xargs -r -0 -n 1 sed -i -e "s#/app/#/$(pwd)/#" &> /dev/null
set -e set -e
[ ! "$FRESH_PYTHON" ] && bpwatch start pip_install
[ "$FRESH_PYTHON" ] && bpwatch start pip_install_first
set +e set +e
/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 /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]}" PIP_STATUS="${PIPESTATUS[0]}"
...@@ -32,7 +29,4 @@ fi ...@@ -32,7 +29,4 @@ fi
cp requirements.txt .heroku/python/requirements-declared.txt cp requirements.txt .heroku/python/requirements-declared.txt
/app/.heroku/python/bin/pip freeze --disable-pip-version-check > .heroku/python/requirements-installed.txt /app/.heroku/python/bin/pip freeze --disable-pip-version-check > .heroku/python/requirements-installed.txt
[ ! "$FRESH_PYTHON" ] && bpwatch stop pip_install
[ "$FRESH_PYTHON" ] && bpwatch stop pip_install_first
echo echo
set +e set +e
# Install dependencies with Pip. # Install dependencies with Pip.
bpwatch start pip_uninstall
if [[ -f .heroku/python/requirements-declared.txt ]]; then if [[ -f .heroku/python/requirements-declared.txt ]]; then
cp .heroku/python/requirements-declared.txt requirements-declared.txt cp .heroku/python/requirements-declared.txt requirements-declared.txt
...@@ -14,5 +14,4 @@ if [[ -f .heroku/python/requirements-declared.txt ]]; then ...@@ -14,5 +14,4 @@ if [[ -f .heroku/python/requirements-declared.txt ]]; then
/app/.heroku/python/bin/pip uninstall -r .heroku/python/requirements-stale.txt -y --exists-action=w | cleanup | indent /app/.heroku/python/bin/pip uninstall -r .heroku/python/requirements-stale.txt -y --exists-action=w | cleanup | indent
fi fi
fi fi
bpwatch stop pip_uninstall
set -e set -e
...@@ -15,9 +15,6 @@ VENDORED_MEMCACHED="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor ...@@ -15,9 +15,6 @@ VENDORED_MEMCACHED="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor
# Syntax sugar. # Syntax sugar.
source $BIN_DIR/utils source $BIN_DIR/utils
bpwatch start pylibmc_install
# If pylibmc exists within requirements, use vendored libmemcached. # If pylibmc exists within requirements, use vendored libmemcached.
if (pip-grep -s requirements.txt pylibmc &> /dev/null) then if (pip-grep -s requirements.txt pylibmc &> /dev/null) then
...@@ -30,5 +27,3 @@ if (pip-grep -s requirements.txt pylibmc &> /dev/null) then ...@@ -30,5 +27,3 @@ if (pip-grep -s requirements.txt pylibmc &> /dev/null) then
export LIBMEMCACHED=$(pwd)/vendor export LIBMEMCACHED=$(pwd)/vendor
fi fi
bpwatch stop pylibmc_install
...@@ -4,25 +4,20 @@ PYTHON_VERSION=$(cat runtime.txt) ...@@ -4,25 +4,20 @@ PYTHON_VERSION=$(cat runtime.txt)
# Install Python. # Install Python.
if [ -f .heroku/python-version ]; then if [ -f .heroku/python-version ]; then
if [ ! $(cat .heroku/python-version) = $PYTHON_VERSION ]; then if [ ! $(cat .heroku/python-version) = $PYTHON_VERSION ]; then
bpwatch start uninstall_python puts-step "Found $(cat .heroku/python-version), removing"
puts-step "Found $(cat .heroku/python-version), removing" rm -fr .heroku/python
rm -fr .heroku/python
bpwatch stop uninstall_python
else else
SKIP_INSTALL=1 SKIP_INSTALL=1
fi fi
fi fi
if [ ! $STACK = $CACHED_PYTHON_STACK ]; then if [ ! $STACK = $CACHED_PYTHON_STACK ]; then
bpwatch start uninstall_python rm -fr .heroku/python .heroku/python-stack .heroku/vendor
rm -fr .heroku/python .heroku/python-stack .heroku/vendor unset SKIP_INSTALL
unset SKIP_INSTALL
bpwatch stop uninstall_python
fi fi
if [ ! "$SKIP_INSTALL" ]; then if [ ! "$SKIP_INSTALL" ]; then
bpwatch start install_python
puts-step "Installing $PYTHON_VERSION" puts-step "Installing $PYTHON_VERSION"
# Prepare destination directory. # Prepare destination directory.
...@@ -35,8 +30,6 @@ if [ ! "$SKIP_INSTALL" ]; then ...@@ -35,8 +30,6 @@ if [ ! "$SKIP_INSTALL" ]; then
exit 1 exit 1
fi fi
bpwatch stop install_python
# Record for future reference. # Record for future reference.
echo $PYTHON_VERSION > .heroku/python-version echo $PYTHON_VERSION > .heroku/python-version
echo $STACK > .heroku/python-stack echo $STACK > .heroku/python-stack
...@@ -49,19 +42,12 @@ fi ...@@ -49,19 +42,12 @@ fi
if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then
WORKING_DIR=$(pwd) WORKING_DIR=$(pwd)
bpwatch start prepare_environment
TMPTARDIR=$(mktemp -d) TMPTARDIR=$(mktemp -d)
trap "rm -rf $TMPTARDIR" RETURN trap "rm -rf $TMPTARDIR" RETURN
bpwatch start install_pip puts-step "Bootstrapping pip"
python $ROOT_DIR/vendor/get-pip.py
puts-step "Bootstrapping pip"
python $ROOT_DIR/vendor/get-pip.py
bpwatch stop install_pip
bpwatch stop prepare_environment
fi fi
set -e set -e
......
[packages] [packages]
maya = "*" "delegator.py" = "*"
#!/usr/bin/python
import os
import sys
DEFAULT_PATH = '{0}.zip'.format(os.path.abspath(__file__))
BPWATCH_DISTRO_PATH = os.environ.get('BPWATCH_DISTRO_PATH', DEFAULT_PATH)
sys.path.insert(0, BPWATCH_DISTRO_PATH)
import bp_cli
bp_cli.main()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment