plugin.video.viervijfzes/Makefile

95 lines
3.1 KiB
Makefile
Raw Normal View History

2020-07-09 10:16:45 +02:00
export KODI_HOME := $(CURDIR)/tests/home
export KODI_INTERACTIVE := 0
PYTHON := python
2020-11-12 14:38:10 +01:00
KODI_PYTHON_ABIS := 3.0.0 2.26.0
2020-03-19 16:45:31 +01:00
# Collect information to build as sensible package name
name = $(shell xmllint --xpath 'string(/addon/@id)' addon.xml)
2020-03-19 16:45:31 +01:00
version = $(shell xmllint --xpath 'string(/addon/@version)' addon.xml)
git_branch = $(shell git rev-parse --abbrev-ref HEAD)
git_hash = $(shell git rev-parse --short HEAD)
2020-11-12 14:38:10 +01:00
ifdef release
zip_name = $(name)-$(version).zip
else
zip_name = $(name)-$(version)-$(git_branch)-$(git_hash).zip
endif
zip_dir = $(name)/
2020-03-19 16:45:31 +01:00
languages = $(filter-out en_gb, $(patsubst resources/language/resource.language.%, %, $(wildcard resources/language/*)))
2020-03-19 16:45:31 +01:00
all: check test build
zip: build
check: check-pylint check-tox check-translations
check-pylint:
@printf ">>> Running pylint checks\n"
@$(PYTHON) -m pylint *.py resources/lib/ tests/
2020-03-19 16:45:31 +01:00
check-tox:
@printf ">>> Running tox checks\n"
@$(PYTHON) -m tox -q
2020-03-19 16:45:31 +01:00
check-translations:
@printf ">>> Running translation checks\n"
@$(foreach lang,$(languages), \
msgcmp resources/language/resource.language.$(lang)/strings.po resources/language/resource.language.en_gb/strings.po; \
)
2020-04-20 16:09:00 +02:00
@tests/check_for_unused_translations.py
2020-03-19 16:45:31 +01:00
check-addon: clean build
@printf ">>> Running addon checks\n"
2020-03-19 16:45:31 +01:00
$(eval TMPDIR := $(shell mktemp -d))
@unzip ../${zip_name} -d ${TMPDIR}
cd ${TMPDIR} && kodi-addon-checker --branch=leia
@rm -rf ${TMPDIR}
codefix:
@isort -l 160 resources/
2020-03-19 16:45:31 +01:00
test: test-unit
test-unit:
@printf ">>> Running unit tests\n"
2020-11-28 17:13:21 +01:00
@$(PYTHON) -m pytest tests
2020-03-19 16:45:31 +01:00
clean:
@printf ">>> Cleaning up\n"
@find . -name '*.py[cod]' -type f -delete
2020-03-19 16:45:31 +01:00
@find . -name '__pycache__' -type d -delete
@rm -rf .pytest_cache/ .tox/ tests/cdm tests/userdata/temp
2020-03-19 16:45:31 +01:00
@rm -f *.log .coverage
build: clean
@printf ">>> Building package\n"
2020-03-19 16:45:31 +01:00
@rm -f ../$(zip_name)
@git archive --format zip --worktree-attributes -v -o ../$(zip_name) --prefix $(zip_dir) $(or $(shell git stash create), HEAD)
@printf ">>> Successfully wrote package as: ../$(zip_name)\n"
2020-03-19 16:45:31 +01:00
2020-11-12 14:38:10 +01:00
# You first need to run sudo gem install github_changelog_generator for this
release:
ifneq ($(release),)
@github_changelog_generator -u add-ons -p $(name) --no-issues --exclude-labels duplicate,question,invalid,wontfix release --future-release v$(release);
2020-11-12 14:38:10 +01:00
@printf "cd /addon/@version\nset $$release\nsave\nbye\n" | xmllint --shell addon.xml; \
2020-11-12 14:38:10 +01:00
date=$(shell date '+%Y-%m-%d'); \
printf "cd /addon/extension[@point='xbmc.addon.metadata']/news\nset v$$release ($$date)\nsave\nbye\n" | xmllint --shell addon.xml; \
2020-11-12 14:38:10 +01:00
# Next steps to release:
# - Modify the news-section of addons.xml
# - git add . && git commit -m "Prepare for v$(release)" && git push
# - git tag v$(release) && git push --tags
else
@printf "Usage: make release release=1.0.0\n"
2020-11-12 14:38:10 +01:00
endif
multizip: clean
@-$(foreach abi,$(KODI_PYTHON_ABIS), \
printf "cd /addon/requires/import[@addon='xbmc.python']/@version\nset $(abi)\nsave\nbye\n" | xmllint --shell addon.xml; \
2020-11-12 14:38:10 +01:00
matrix=$(findstring $(abi), $(word 1,$(KODI_PYTHON_ABIS))); \
if [ $$matrix ]; then version=$(version)+matrix.1; else version=$(version); fi; \
printf "cd /addon/@version\nset $$version\nsave\nbye\n" | xmllint --shell addon.xml; \
2020-11-12 14:38:10 +01:00
make build; \
)