mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
c112ef81ad
The pip-uninstall step has been unused for pip-using apps since #925,
since the buildpack now invalidates the entire package cache instead.
Whilst the step appears to still be used for pipenv-using apps, the
code is not run, since `SKIP_PIP_INSTALL=1` is set too early.
This bug was introduced in a334672a1a
which landed straight to `master` two days after the feature was
introduced in #650.
Longer term we should likely get pipenv installs to do something similar
to pip (invalidate the whole cache based on checksum of the lockfile),
however for now I'm removing this deadcode since it's the last consumer
of the `pip-diff` script which we want to remove.
Closes @W-8386830@.
[skip changelog]
59 lines
2.2 KiB
Makefile
59 lines
2.2 KiB
Makefile
# These targets are not files
|
|
.PHONY: check test builder-image buildenv deploy-runtimes tools
|
|
|
|
STACK ?= heroku-18
|
|
STACKS ?= heroku-16 heroku-18 heroku-20
|
|
TEST_CMD ?= test/run-versions && test/run-features && test/run-deps
|
|
ENV_FILE ?= builds/dockerenv.default
|
|
BUILDER_IMAGE_PREFIX := heroku-python-build
|
|
|
|
# Converts a stack name of `heroku-NN` to its build Docker image tag of `heroku/heroku:NN-build`.
|
|
STACK_IMAGE_TAG := heroku/$(subst -,:,$(STACK))-build
|
|
|
|
check:
|
|
@shellcheck -x bin/compile bin/detect bin/release bin/test-compile bin/utils bin/warnings bin/default_pythons
|
|
@shellcheck -x bin/steps/collectstatic bin/steps/eggpath-fix bin/steps/eggpath-fix2 bin/steps/nltk bin/steps/pip-install bin/steps/pipenv bin/steps/pipenv-python-version bin/steps/python
|
|
@shellcheck -x bin/steps/hooks/*
|
|
|
|
test:
|
|
@echo "Running tests using: STACK=$(STACK) TEST_CMD='$(TEST_CMD)'"
|
|
@echo
|
|
@docker run --rm -it -v $(PWD):/buildpack:ro -e "STACK=$(STACK)" "$(STACK_IMAGE_TAG)" bash -c 'cp -r /buildpack /buildpack_test && cd /buildpack_test && $(TEST_CMD)'
|
|
@echo
|
|
|
|
builder-image:
|
|
@echo "Generating binary builder image for $(STACK)..."
|
|
@echo
|
|
@docker build --pull -f builds/$(STACK).Dockerfile -t "$(BUILDER_IMAGE_PREFIX)-$(STACK)" .
|
|
@echo
|
|
|
|
buildenv: builder-image
|
|
@echo "Starting build environment for $(STACK)..."
|
|
@echo
|
|
@echo "Usage..."
|
|
@echo
|
|
@echo " $$ bob build runtimes/python-X.Y.Z"
|
|
@echo
|
|
@docker run --rm -it --env-file="$(ENV_FILE)" -v $(PWD)/builds:/app/builds "$(BUILDER_IMAGE_PREFIX)-$(STACK)" bash
|
|
|
|
deploy-runtimes:
|
|
ifndef RUNTIMES
|
|
$(error No runtimes specified! Use: "make deploy-runtimes RUNTIMES='python-X.Y.Z ...' [STACKS='heroku-18 ...'] [ENV_FILE=...]")
|
|
endif
|
|
@echo "Using: RUNTIMES='$(RUNTIMES)' STACKS='$(STACKS)' ENV_FILE='$(ENV_FILE)'"
|
|
@echo
|
|
@set -eu; for stack in $(STACKS); do \
|
|
$(MAKE) builder-image STACK=$${stack}; \
|
|
for runtime in $(RUNTIMES); do \
|
|
echo "Generating/deploying $${runtime} for $${stack}..."; \
|
|
echo; \
|
|
docker run --rm -it --env-file="$(ENV_FILE)" "$(BUILDER_IMAGE_PREFIX)-$${stack}" bob deploy "runtimes/$${runtime}"; \
|
|
echo; \
|
|
done; \
|
|
done
|
|
|
|
tools:
|
|
git clone https://github.com/kennethreitz/pip-pop.git
|
|
mv pip-pop/bin/* vendor/pip-pop/
|
|
rm -rf pip-pop
|