82 lines
1.8 KiB
Makefile
82 lines
1.8 KiB
Makefile
.PHONY: \
|
|
poetry in-project-venv dev-env use-env install install-dev tests \
|
|
docker docker-build-run docker-build docker-run \
|
|
docker-rm docker-rm-container docker-rm-image \
|
|
pre-commit get-licenses prep-commit \
|
|
docs sphinx_html sphinx_apidoc
|
|
.DEFAULT_GOAL := run
|
|
|
|
export DOCKER=docker
|
|
export DOCKERFILE=Dockerfile
|
|
export IMAGE_NAME=rule_engine-image
|
|
export CONTAINER_NAME=rule_engine-container
|
|
export HOST_PORT=9999
|
|
export CONTAINER_PORT=9999
|
|
export PYTHON_VERSION=python3.8
|
|
|
|
# all commands should be executed in the root dir or the project,
|
|
# specific environments should be deactivated
|
|
|
|
poetry: in-project-venv use-env dev-env
|
|
|
|
in-project-venv:
|
|
poetry config virtualenvs.in-project true
|
|
|
|
use-env:
|
|
poetry env use ${PYTHON_VERSION}
|
|
|
|
dev-env:
|
|
poetry install --with dev
|
|
|
|
install:
|
|
poetry add $(pkg)
|
|
|
|
install-dev:
|
|
poetry add --dev $(pkg)
|
|
|
|
requirements:
|
|
poetry export --without-hashes --output ./src/requirements.txt
|
|
|
|
update-version:
|
|
poetry version prerelease
|
|
|
|
docker: docker-rm docker-build-run
|
|
|
|
docker-build-run: docker-build docker-run
|
|
|
|
docker-build:
|
|
$(DOCKER) build \
|
|
--no-cache --progress=plain \
|
|
-t $(IMAGE_NAME) -f $(DOCKERFILE) .
|
|
|
|
docker-run:
|
|
$(DOCKER) run -it --rm -p $(HOST_PORT):$(CONTAINER_PORT)/tcp --name $(CONTAINER_NAME) $(IMAGE_NAME) python app.py
|
|
|
|
docker-rm: docker-rm-container docker-rm-image
|
|
|
|
docker-rm-container:
|
|
-$(DOCKER) rm $(CONTAINER_NAME)
|
|
|
|
docker-rm-image:
|
|
-$(DOCKER) image rm $(IMAGE_NAME)
|
|
|
|
tests:
|
|
poetry run pytest ./tests
|
|
|
|
prep-commit:
|
|
docs get-license update-version pre-commit
|
|
|
|
pre-commit:
|
|
pre-commit run --all-files
|
|
|
|
get-licenses:
|
|
pip-licenses --format=json --order=license --with-urls > pkg-licenses.json
|
|
|
|
docs: sphinx_apidoc sphinx_html
|
|
|
|
sphinx_html:
|
|
poetry run sphinx-build -b html docs/source/ docs/build/html -E -a
|
|
|
|
sphinx_apidoc:
|
|
poetry run sphinx-apidoc -o ./docs/source/modules ./src/rule_engine
|