kodak/Makefile

54 lines
1.7 KiB
Makefile
Raw Normal View History

2021-10-29 03:17:00 +00:00
# kodak makefile
2020-09-16 07:41:53 +00:00
2021-10-29 03:17:00 +00:00
PROJECT = kodak
VERSION = $(shell poetry version --short)
2020-09-16 07:41:53 +00:00
.PHONY: help
# Put it first so that "make" without argument is like "make help"
# Adapted from:
# https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
help: ## List Makefile targets
$(info Makefile documentation)
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-10s\033[0m %s\n", $$1, $$2}'
clean-tox:
rm --recursive --force ./.mypy_cache
rm --recursive --force ./.tox
rm --force .coverage
rm --force ./$(PROJECT)/openapi.yaml
find ./tests -type d -name __pycache__ -prune -exec rm --recursive --force {} \;
2020-09-16 07:41:53 +00:00
clean-py:
rm --recursive --force ./dist
rm --recursive --force ./build
rm --recursive --force ./*.egg-info
find ./$(PROJECT) -type d -name __pycache__ -prune -exec rm --recursive --force {} \;
2020-09-16 07:41:53 +00:00
2021-10-28 23:52:01 +00:00
clean: clean-tox clean-py ## Clean temp build/cache files and directories
2021-05-02 22:12:04 +00:00
rm --force ./*db*
2020-09-16 07:41:53 +00:00
prep:
cp ./openapi.yaml ./$(PROJECT)/openapi.yaml
wheel: prep ## Build Python binary distribution wheel package
2020-09-16 07:41:53 +00:00
poetry build --format wheel
source: prep ## Build Python source distribution package
2020-09-16 07:41:53 +00:00
poetry build --format sdist
image: prep
docker build . --tag $(PROJECT):$(VERSION)
docker image save $(PROJECT):$(VERSION) --output dist/$(PROJECT)-$(VERSION)-docker.tar.gz
build: clean wheel source image; ## Build all distribution packages
test: clean-tox prep ## Run the project testsuite(s)
2021-05-08 02:02:43 +00:00
poetry run tox
publish: clean test build ## Build and upload to pypi (requires $PYPI_API_KEY be set)
@poetry publish --username __token__ --password $(PYPI_API_KEY)
2020-09-16 07:41:53 +00:00
2021-05-08 02:12:13 +00:00
dev: ## Create local dev environment
poetry install --remove-untracked
poetry run pre-commit install