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

3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
  1. PIPENV := pipenv run
  2. PYTESTARGS ?= -x -vvl
  3. BLACKARGS := --line-length 128 --check --diff
  4. .PHONY: help
  5. help:
  6. @echo "Make targets:\n"
  7. @$(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 '^$@$$'
  8. ################################################################################
  9. #
  10. # Environment Setup
  11. #
  12. ################################################################################
  13. .PHONY: setup setup-dev
  14. Pipfile.lock: Pipfile
  15. pipenv lock
  16. requirements.txt: Pipfile.lock
  17. pipenv lock -r > $@
  18. setup.done: Pipfile.lock
  19. pipenv sync
  20. touch setup.done
  21. setup-dev.done: Pipfile.lock setup.done
  22. pipenv sync --dev
  23. touch setup-dev.done
  24. setup: setup.done
  25. setup-dev: setup-dev.done
  26. ################################################################################
  27. #
  28. # Release management
  29. #
  30. ################################################################################
  31. .PHONY: publish release release-major release-micro
  32. release: setup-dev.done
  33. $(PIPENV) bumpversion --verbose minor
  34. release-major: setup-dev.done
  35. $(PIPENV) bumpversion --verbose major
  36. release-micro: setup-dev.done
  37. $(PIPENV) bumpversion --verbose patch
  38. publish:
  39. git push -v --progress
  40. git push -v --progress --tags
  41. ################################################################################
  42. #
  43. # Checking and Linting
  44. #
  45. ################################################################################
  46. .PHONY: black check cruft-check lint linting pytest test
  47. check: cruft-check lint test
  48. cruft-check:
  49. cruft check
  50. cruft diff --exit-code
  51. test: pytest
  52. pytest: setup-dev.done
  53. $(PIPENV) pytest ${PYTESTARGS} .
  54. black: setup-dev.done
  55. $(PIPENV) black ${BLACKARGS} .
  56. lint: linting
  57. linting: black
  58. ################################################################################
  59. #
  60. # Custom options
  61. #
  62. ################################################################################
  63. .PHONY: clean
  64. clean:
  65. rm -rvf tmp