95 lines
2.3 KiB
Makefile
95 lines
2.3 KiB
Makefile
.PHONY: \
|
|
poetry in-project-venv dev-env use-env install install-dev tests \
|
|
update-version sync-version-with-git \
|
|
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 bom
|
|
.DEFAULT_GOAL := run
|
|
|
|
export DOCKER=docker
|
|
export DOCKERFILE=Dockerfile
|
|
export IMAGE_NAME=cv_analysis_service-image
|
|
export CONTAINER_NAME=cv_analysis_service-container
|
|
export HOST_PORT=9999
|
|
export CONTAINER_PORT=9999
|
|
export PYTHON_VERSION=python3.10
|
|
|
|
# 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 && poetry update
|
|
|
|
install:
|
|
poetry add $(pkg)
|
|
|
|
install-dev:
|
|
poetry add --dev $(pkg)
|
|
|
|
requirements:
|
|
poetry export --without-hashes --output requirements.txt
|
|
|
|
update-version:
|
|
poetry version prerelease
|
|
|
|
sync-version-with-git:
|
|
git pull -p && poetry version $(git rev-list --tags --max-count=1 | git describe --tags --abbrev=0)
|
|
|
|
bom:
|
|
cyclonedx-py poetry -o bom.json
|
|
|
|
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) \
|
|
--build-arg USERNAME=${USERNAME} \
|
|
--build-arg TOKEN=${GITLAB_TOKEN} \
|
|
.
|
|
|
|
docker-run:
|
|
$(DOCKER) run -it --rm -p $(HOST_PORT):$(CONTAINER_PORT)/tcp --name $(CONTAINER_NAME) $(IMAGE_NAME)
|
|
|
|
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 sync-version-with-git 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:
|
|
cp ./README.md ./docs/source/README.md && cp -r ./data ./docs/source/data/ && poetry run sphinx-apidoc ./src -o ./docs/source/modules --no-toc --module-first --follow-links --separate --force
|
|
|
|
bom:
|
|
cyclonedx-py poetry -o bom.json
|