a4ffaecd57
I'm not exposing this via the Makefile help, it's not likely to be useful to passersby. Switch the avocado runner to the 'legacy' runner for now, as the new runner seems to obscure coverage reports, again. Usage is to enter your venv of choice and then: `make check-coverage && xdg-open htmlcov/index.html`. Signed-off-by: John Snow <jsnow@redhat.com> Message-id: 20210915162955.333025-28-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
112 lines
3.0 KiB
Makefile
112 lines
3.0 KiB
Makefile
QEMU_VENV_DIR=.dev-venv
|
|
QEMU_TOX_EXTRA_ARGS ?=
|
|
|
|
.PHONY: help
|
|
help:
|
|
@echo "python packaging help:"
|
|
@echo ""
|
|
@echo "make check-pipenv:"
|
|
@echo " Run tests in pipenv's virtual environment."
|
|
@echo " These tests use the oldest dependencies."
|
|
@echo " Requires: Python 3.6 and pipenv."
|
|
@echo " Hint (Fedora): 'sudo dnf install python3.6 pipenv'"
|
|
@echo ""
|
|
@echo "make check-tox:"
|
|
@echo " Run tests against multiple python versions."
|
|
@echo " These tests use the newest dependencies."
|
|
@echo " Requires: Python 3.6 - 3.10, and tox."
|
|
@echo " Hint (Fedora): 'sudo dnf install python3-tox python3.10'"
|
|
@echo " The variable QEMU_TOX_EXTRA_ARGS can be use to pass extra"
|
|
@echo " arguments to tox".
|
|
@echo ""
|
|
@echo "make check-dev:"
|
|
@echo " Run tests in a venv against your default python3 version."
|
|
@echo " These tests use the newest dependencies."
|
|
@echo " Requires: Python 3.x"
|
|
@echo ""
|
|
@echo "make check:"
|
|
@echo " Run tests in your *current environment*."
|
|
@echo " Performs no environment setup of any kind."
|
|
@echo ""
|
|
@echo "make develop:"
|
|
@echo " Install deps needed for for 'make check',"
|
|
@echo " and install the qemu package in editable mode."
|
|
@echo " (Can be used in or outside of a venv.)"
|
|
@echo ""
|
|
@echo "make pipenv"
|
|
@echo " Creates pipenv's virtual environment (.venv)"
|
|
@echo ""
|
|
@echo "make dev-venv"
|
|
@echo " Creates a simple venv for check-dev. ($(QEMU_VENV_DIR))"
|
|
@echo ""
|
|
@echo "make clean:"
|
|
@echo " Remove package build output."
|
|
@echo ""
|
|
@echo "make distclean:"
|
|
@echo " remove pipenv/venv files, qemu package forwarder,"
|
|
@echo " built distribution files, and everything from 'make clean'."
|
|
@echo ""
|
|
@echo -e "Have a nice day ^_^\n"
|
|
|
|
.PHONY: pipenv
|
|
pipenv: .venv
|
|
.venv: Pipfile.lock
|
|
@PIPENV_VENV_IN_PROJECT=1 pipenv sync --dev --keep-outdated
|
|
rm -f pyproject.toml
|
|
@touch .venv
|
|
|
|
.PHONY: check-pipenv
|
|
check-pipenv: pipenv
|
|
@pipenv run make check
|
|
|
|
.PHONY: dev-venv
|
|
dev-venv: $(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate
|
|
$(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate: setup.cfg
|
|
@echo "VENV $(QEMU_VENV_DIR)"
|
|
@python3 -m venv $(QEMU_VENV_DIR)
|
|
@( \
|
|
echo "ACTIVATE $(QEMU_VENV_DIR)"; \
|
|
. $(QEMU_VENV_DIR)/bin/activate; \
|
|
echo "INSTALL qemu[devel] $(QEMU_VENV_DIR)"; \
|
|
make develop 1>/dev/null; \
|
|
)
|
|
@touch $(QEMU_VENV_DIR)
|
|
|
|
.PHONY: check-dev
|
|
check-dev: dev-venv
|
|
@( \
|
|
echo "ACTIVATE $(QEMU_VENV_DIR)"; \
|
|
. $(QEMU_VENV_DIR)/bin/activate; \
|
|
make check; \
|
|
)
|
|
|
|
.PHONY: develop
|
|
develop:
|
|
pip3 install --disable-pip-version-check -e .[devel]
|
|
|
|
.PHONY: check
|
|
check:
|
|
@avocado --config avocado.cfg run tests/
|
|
|
|
.PHONY: check-tox
|
|
check-tox:
|
|
@tox $(QEMU_TOX_EXTRA_ARGS)
|
|
|
|
.PHONY: check-coverage
|
|
check-coverage:
|
|
@coverage run -m avocado --config avocado.cfg run tests/*.py
|
|
@coverage combine
|
|
@coverage html
|
|
@coverage report
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
python3 setup.py clean --all
|
|
rm -f pyproject.toml
|
|
|
|
.PHONY: distclean
|
|
distclean: clean
|
|
rm -rf qemu.egg-info/ .venv/ .tox/ $(QEMU_VENV_DIR) dist/
|
|
rm -f .coverage .coverage.*
|
|
rm -rf htmlcov/
|