53 lines
1.3 KiB
Makefile
53 lines
1.3 KiB
Makefile
# Default, which is handy to run before committing code
|
|
all: fmt lint test
|
|
|
|
# What to have CI systems run
|
|
ci: init lint test
|
|
|
|
# Final pre-flight checks then deploy everywhere!
|
|
shipit: all build staging prod
|
|
|
|
version := $(shell yq -p toml .tool.poetry.version < pyproject.toml)
|
|
scie_platforms := linux-aarch64 linux-x86_64 macos-aarch64 macos-x86_64
|
|
|
|
|
|
init:
|
|
poetry install
|
|
|
|
# Everything to get the dev env set up
|
|
dev: init
|
|
|
|
fmt:
|
|
poetry run ruff check --select I --fix # import sorting
|
|
poetry run ruff format
|
|
|
|
lint:
|
|
poetry run ruff check --fix
|
|
|
|
test:
|
|
poetry run mypy .
|
|
# No tests yet lol
|
|
# poetry run pytest
|
|
|
|
# Faster tests, only running what's changed
|
|
test-fast:
|
|
poetry run mypy .
|
|
poetry run pytest --testmon
|
|
|
|
test-watch:
|
|
find . -name '*py' -or -name '*html' -or -name poetry.lock | entr -r -c make test-fast
|
|
|
|
clean:
|
|
rm -rv dist || true
|
|
|
|
docker:
|
|
podman build -t nickpegg/photojawn . --build-arg GIT_COMMIT=$(shell git rev-parse --short HEAD)
|
|
|
|
dist:
|
|
poetry build
|
|
poetry run pex --project . -o dist/photojawn -c photojawn --scie eager $(foreach plat,$(scie_platforms), --scie-platform $(plat))
|
|
|
|
release: dist
|
|
git push --tags
|
|
gh release create --verify-tag v$(version)
|
|
gh release upload v$(version) dist/photojawn-$(version)-*whl $(foreach plat,$(scie_platforms),dist/photojawn-$(plat))
|