46 lines
1.1 KiB
Makefile
46 lines
1.1 KiB
Makefile
ifeq (run,$(firstword $(MAKECMDGOALS)))
|
|
# use the rest as arguments for "run"
|
|
RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
|
|
# ...and turn them into do-nothing targets
|
|
$(eval $(RUN_ARGS):;@:)
|
|
endif
|
|
|
|
.PHONY: all build run test
|
|
|
|
# code quality
|
|
all: black typehint lint
|
|
|
|
black:
|
|
uv run isort --multi-line 3 --profile black src/ tests/
|
|
uv run black --target-version py311 src/ tests/
|
|
|
|
typehint:
|
|
uv run mypy --ignore-missing-imports src/ tests/
|
|
|
|
lint:
|
|
uv run pylint src/
|
|
|
|
# check
|
|
check: all
|
|
|
|
# test
|
|
test:
|
|
PYTHONPATH=src/ uv run coverage run -m --source=stacosys pytest --junitxml=junit.xml tests
|
|
uv run genbadge tests -i junit.xml
|
|
uv run coverage xml
|
|
uv run genbadge coverage -i coverage.xml
|
|
|
|
# build
|
|
build:
|
|
# https://stackoverflow.com/questions/24347450/how-do-you-add-additional-files-to-a-wheel
|
|
rm -rf build/* dist/* *.egg-info
|
|
uv sync
|
|
uv build --wheel --out-dir dist
|
|
docker build -t source.madyanne.fr/yax/stacosys .
|
|
|
|
publish:
|
|
docker push source.madyanne.fr/yax/stacosys
|
|
|
|
# run
|
|
run:
|
|
PYTHONPATH=src/ uv run python src/stacosys/run.py $(RUN_ARGS)
|