sendmail/Makefile

72 lines
2.1 KiB
Makefile

VERS_MAJOR := 0
VERS_MINOR := 6
VERSION := $(VERS_MAJOR).$(VERS_MINOR)
NEW_MINOR := $$(( $(VERS_MINOR) + 1 ))
NEW_MAJOR := $$(( $(VERS_MAJOR) + 1 ))
GITEA_URL := https://git.abbiamoundominio.org
output:
output/sendmail: output
go build -o output/sendmail -ldflags "-X main.version=$(VERSION)" ./...
output/sendmail-dev: output
go build -o output/sendmail-dev ./...
clean:
rm -f output/*
build: clean output/sendmail
docker-build:
docker build --build-arg=version=$(VERSION) -t leophys/mailer:$(VERSION) .
dev-build: clean output/sendmail-dev
bumpvers-minor:
sed -i"" "s/VERS_MINOR := $(VERS_MINOR)/VERS_MINOR := $(NEW_MINOR)/" Makefile
git add Makefile
git commit -m "Bump version $(VERSION) -> $(VERS_MAJOR).$(NEW_MINOR)"
git tag $(VERS_MAJOR).$(NEW_MINOR)
bumpvers-major:
sed -i"" "s/VERS_MAJOR := $(VERS_MAJOR)/VERS_MAJOR := $$(( $(VERS_MAJOR) + 1 ))/" Makefile
git add Makefile
git commit -m "Bump version $(VERSION) -> $(NEW_MAJOR).$(VERS_MINOR)"
git tag $(NEW_MAJOR).$(VERS_MINOR)
new-release:
@last_tag=$$(git tag|tail -n2|head -n1); \
diffs=$$(git log --pretty=oneline --abbrev-commit $${last_tag}..HEAD~); \
release_id=$$(curl -X POST -s \
"$(GITEA_URL)/api/v1/repos/blallo/sendmail/releases" \
-H "Authorization: token $$(cat .token)" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-d "{\"body\": \"${diffs}\", \"draft\": false, \"name\": \"$(VERSION)\", \"prerelease\": false, \"tag_name\": \"$(VERSION)\", \"target_commitish\": \"$$(git rev-parse HEAD)\" }" \
| jq '.id'); \
curl -X POST -s \
"$(GITEA_URL)/api/v1/repos/blallo/sendmail/releases/$${release_id}/assets?name=sendmail" \
-H "Authorization: token $$(cat .token)" \
-H "accept: application/json" \
-H "Content-Type: multipart/form-data" \
-F "attachment=@output/sendmail"
release-min:
make bumpvers-minor
make build
make docker-build
git push unit
git push --tags unit
make new-release
release-maj:
make bumpvers-major
make build
make docker-build
git push unit
git push --tags unit
make new-release
PHONY: bumpvers-minor bumpvers-major release-min release-maj clean docker-build new-release