Makefile 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. VERS_MAJOR := 0
  2. VERS_MINOR := 6
  3. VERSION := $(VERS_MAJOR).$(VERS_MINOR)
  4. NEW_MINOR := $$(( $(VERS_MINOR) + 1 ))
  5. NEW_MAJOR := $$(( $(VERS_MAJOR) + 1 ))
  6. GITEA_URL := https://git.abbiamoundominio.org
  7. output:
  8. output/sendmail: output
  9. go build -o output/sendmail -ldflags "-X main.version=$(VERSION)" ./...
  10. output/sendmail-dev: output
  11. go build -o output/sendmail-dev ./...
  12. clean:
  13. rm -f output/*
  14. build: clean output/sendmail
  15. docker-build:
  16. docker build --build-arg=version=$(VERSION) -t leophys/mailer:$(VERSION) .
  17. dev-build: clean output/sendmail-dev
  18. bumpvers-minor:
  19. sed -i"" "s/VERS_MINOR := $(VERS_MINOR)/VERS_MINOR := $(NEW_MINOR)/" Makefile
  20. git add Makefile
  21. git commit -m "Bump version $(VERSION) -> $(VERS_MAJOR).$(NEW_MINOR)"
  22. git tag $(VERS_MAJOR).$(NEW_MINOR)
  23. bumpvers-major:
  24. sed -i"" "s/VERS_MAJOR := $(VERS_MAJOR)/VERS_MAJOR := $$(( $(VERS_MAJOR) + 1 ))/" Makefile
  25. git add Makefile
  26. git commit -m "Bump version $(VERSION) -> $(NEW_MAJOR).$(VERS_MINOR)"
  27. git tag $(NEW_MAJOR).$(VERS_MINOR)
  28. new-release:
  29. @last_tag=$$(git tag|tail -n2|head -n1); \
  30. diffs=$$(git log --pretty=oneline --abbrev-commit $${last_tag}..HEAD~); \
  31. release_id=$$(curl -X POST -s \
  32. "$(GITEA_URL)/api/v1/repos/blallo/sendmail/releases" \
  33. -H "Authorization: token $$(cat .token)" \
  34. -H "accept: application/json" \
  35. -H "Content-Type: application/json" \
  36. -d "{\"body\": \"${diffs}\", \"draft\": false, \"name\": \"$(VERSION)\", \"prerelease\": false, \"tag_name\": \"$(VERSION)\", \"target_commitish\": \"$$(git rev-parse HEAD)\" }" \
  37. | jq '.id'); \
  38. curl -X POST -s \
  39. "$(GITEA_URL)/api/v1/repos/blallo/sendmail/releases/$${release_id}/assets?name=sendmail" \
  40. -H "Authorization: token $$(cat .token)" \
  41. -H "accept: application/json" \
  42. -H "Content-Type: multipart/form-data" \
  43. -F "attachment=@output/sendmail"
  44. release-min:
  45. make bumpvers-minor
  46. make build
  47. make docker-build
  48. git push unit
  49. git push --tags unit
  50. make new-release
  51. release-maj:
  52. make bumpvers-major
  53. make build
  54. make docker-build
  55. git push unit
  56. git push --tags unit
  57. make new-release
  58. PHONY: bumpvers-minor bumpvers-major release-min release-maj clean docker-build new-release