Random Repo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

86 lines
2.0 KiB

PIPENV := pipenv run
PYTESTARGS ?= -x -vvl
BLACKARGS := --line-length 128 --check --diff
.PHONY: help
help:
@echo "Make targets:\n"
@$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | egrep -v -e '^[^[:alnum:]]' -e '^$@$$'
################################################################################
#
# Environment Setup
#
################################################################################
.PHONY: setup setup-dev
Pipfile.lock: Pipfile
pipenv lock
requirements.txt: Pipfile.lock
pipenv lock -r > $@
setup.done: Pipfile.lock
pipenv sync
touch setup.done
setup-dev.done: Pipfile.lock setup.done
pipenv sync --dev
touch setup-dev.done
setup: setup.done
setup-dev: setup-dev.done
################################################################################
#
# Release management
#
################################################################################
.PHONY: publish release release-major release-micro
release: setup-dev.done
$(PIPENV) bumpversion --verbose minor
release-major: setup-dev.done
$(PIPENV) bumpversion --verbose major
release-micro: setup-dev.done
$(PIPENV) bumpversion --verbose patch
publish:
git push -v --progress
git push -v --progress --tags
################################################################################
#
# Checking and Linting
#
################################################################################
.PHONY: black check cruft-check lint linting pytest test
check: cruft-check lint test
cruft-check:
cruft check
cruft diff --exit-code
test: pytest
pytest: setup-dev.done
$(PIPENV) pytest ${PYTESTARGS} .
black: setup-dev.done
$(PIPENV) black ${BLACKARGS} .
lint: linting
linting: black
################################################################################
#
# Custom options
#
################################################################################
.PHONY: clean
clean:
rm -rvf tmp