makefile tooling for building standalone binaries for various platforms and making a GH release

This commit is contained in:
Nick Pegg 2024-08-11 17:25:54 -07:00
parent f7998cd708
commit 4d45aa5296

View file

@ -7,6 +7,9 @@ ci: init lint test
# Final pre-flight checks then deploy everywhere! # Final pre-flight checks then deploy everywhere!
shipit: all build staging prod 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: init:
poetry install poetry install
@ -33,11 +36,17 @@ test-fast:
test-watch: test-watch:
find . -name '*py' -or -name '*html' -or -name poetry.lock | entr -r -c make test-fast find . -name '*py' -or -name '*html' -or -name poetry.lock | entr -r -c make test-fast
build: clean:
poetry build rm -rv dist || true
docker: docker:
podman build -t nickpegg/photojawn . --build-arg GIT_COMMIT=$(shell git rev-parse --short HEAD) podman build -t nickpegg/photojawn . --build-arg GIT_COMMIT=$(shell git rev-parse --short HEAD)
pex: dist:
poetry run pex --project . -o dist/photojawn.pex --scie eager -c photojawn 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))