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.
 
 

76 lines
1.7 KiB

ROLES := $(wildcard roles/*/.)
PIPENV := pipenv run
BLACKARGS ?= --line-length 128 --check --diff
.PHONY: help update
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 '^$@$$'
update:
cruft update
################################################################################
#
# 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
pipenv sync --dev
touch setup-dev.done
setup: setup.done
setup-dev: setup-dev.done
################################################################################
#
# Release management
#
################################################################################
.PHONY: 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
################################################################################
#
# Custom targets
#
################################################################################
.PHONY: build clean lint push test $(ROLES)
lint: setup-dev.done
$(PIPENV) ansible-lint roles
$(PIPENV) black ${BLACKARGS} .
$(PIPENV) yamllint .
push:
git push -v --progress
git push -v --progress --tags
clean:
rm -rvf tmp
test: $(ROLES)
$(ROLES):
$(MAKE) -C $@ test