51 lines
1.6 KiB
Makefile
51 lines
1.6 KiB
Makefile
UV := uv
|
|
|
|
.PHONY: format lint typecheck test ci-check build package-version publish-gitea clean-branches
|
|
|
|
format:
|
|
$(UV) run ruff format .
|
|
$(UV) run ruff check . --fix
|
|
|
|
lint:
|
|
$(UV) run ruff check .
|
|
|
|
typecheck:
|
|
$(UV) run mypy --config-file pyproject.toml
|
|
|
|
test:
|
|
$(UV) run pytest
|
|
|
|
ci-check:
|
|
$(UV) run ruff check .
|
|
$(UV) run mypy --config-file pyproject.toml
|
|
$(UV) run deptry .
|
|
|
|
build:
|
|
$(UV) build
|
|
|
|
package-version:
|
|
$(UV) run python -c "import tomllib; from pathlib import Path; print(tomllib.loads(Path('pyproject.toml').read_text(encoding='utf-8'))['project']['version'])"
|
|
|
|
publish-gitea:
|
|
@repository_url="$${PYPI_REPOSITORY_URL:-$$GITEA_PYPI_REPOSITORY_URL}"; \
|
|
username="$${PACKAGE_USERNAME:-$$GITEA_PACKAGE_USERNAME}"; \
|
|
token="$${PACKAGE_TOKEN:-$$GITEA_PACKAGE_TOKEN}"; \
|
|
test -n "$$repository_url" || (echo "PYPI_REPOSITORY_URL or GITEA_PYPI_REPOSITORY_URL is required" && exit 1); \
|
|
test -n "$$username" || (echo "PACKAGE_USERNAME or GITEA_PACKAGE_USERNAME is required" && exit 1); \
|
|
test -n "$$token" || (echo "PACKAGE_TOKEN or GITEA_PACKAGE_TOKEN is required" && exit 1); \
|
|
echo "Publishing version $$($(MAKE) --no-print-directory package-version)"; \
|
|
$(UV) build; \
|
|
$(UV) run --with twine twine check dist/*; \
|
|
TWINE_REPOSITORY_URL="$$repository_url" \
|
|
TWINE_USERNAME="$$username" \
|
|
TWINE_PASSWORD="$$token" \
|
|
$(UV) run --with twine twine upload dist/*
|
|
|
|
clean-branches:
|
|
ifeq ($(OS),Windows_NT)
|
|
@git fetch --prune
|
|
@cmd /C "for /f \"tokens=1\" %%i in ('git branch -vv ^| findstr ": gone]"') do git branch -D %%i" || ver > nul
|
|
else
|
|
git fetch --prune
|
|
git branch -vv | grep ': gone]' | awk '{print $$1}' | xargs -r git branch -D
|
|
endif |