|
1 |
| -WHAT := sealedsecretsweb |
2 |
| - |
3 |
| -BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD) |
4 |
| -BUILDTIME ?= $(shell date '+%Y%m%d-%H:%M:%S') |
5 |
| -BUILDUSER ?= $(shell id -un) |
6 |
| -PWD ?= $(shell pwd) |
7 |
| -REPO ?= github.com/ricoberger/sealed-secrets-web |
8 |
| -REVISION ?= $(shell git rev-parse HEAD) |
9 |
| -VERSION ?= $(shell git describe --tags) |
10 |
| - |
11 |
| -.PHONY: build build-darwin-amd64 build-linux-amd64 build-windows-amd64 clean docker-build docker-publish release release-major release-minor release-patch |
12 |
| - |
13 |
| -build: |
14 |
| - for target in $(WHAT); do \ |
15 |
| - go build -ldflags "-X ${REPO}/pkg/version.Version=${VERSION} \ |
16 |
| - -X ${REPO}/pkg/version.Revision=${REVISION} \ |
17 |
| - -X ${REPO}/pkg/version.Branch=${BRANCH} \ |
18 |
| - -X ${REPO}/pkg/version.BuildUser=${BUILDUSER} \ |
19 |
| - -X ${REPO}/pkg/version.BuildDate=${BUILDTIME}" \ |
20 |
| - -o ./bin/$$target ./cmd/$$target; \ |
21 |
| - done |
22 |
| - |
23 |
| -build-darwin-amd64: |
24 |
| - for target in $(WHAT); do \ |
25 |
| - CGO_ENABLED=0 GOARCH=amd64 GOOS=darwin go build -a -installsuffix cgo -ldflags "-X ${REPO}/pkg/version.Version=${VERSION} \ |
26 |
| - -X ${REPO}/pkg/version.Revision=${REVISION} \ |
27 |
| - -X ${REPO}/pkg/version.Branch=${BRANCH} \ |
28 |
| - -X ${REPO}/pkg/version.BuildUser=${BUILDUSER} \ |
29 |
| - -X ${REPO}/pkg/version.BuildDate=${BUILDTIME}" \ |
30 |
| - -o ./bin/$$target-darwin-amd64 ./cmd/$$target; \ |
31 |
| - done |
32 |
| - |
33 |
| -build-linux-amd64: |
34 |
| - for target in $(WHAT); do \ |
35 |
| - CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -a -installsuffix cgo -ldflags "-X ${REPO}/pkg/version.Version=${VERSION} \ |
36 |
| - -X ${REPO}/pkg/version.Revision=${REVISION} \ |
37 |
| - -X ${REPO}/pkg/version.Branch=${BRANCH} \ |
38 |
| - -X ${REPO}/pkg/version.BuildUser=${BUILDUSER} \ |
39 |
| - -X ${REPO}/pkg/version.BuildDate=${BUILDTIME}" \ |
40 |
| - -o ./bin/$$target-linux-amd64 ./cmd/$$target; \ |
41 |
| - done |
42 |
| - |
43 |
| -build-windows-amd64: |
44 |
| - for target in $(WHAT); do \ |
45 |
| - CGO_ENABLED=0 GOARCH=amd64 GOOS=windows go build -a -installsuffix cgo -ldflags "-X ${REPO}/pkg/version.Version=${VERSION} \ |
46 |
| - -X ${REPO}/pkg/version.Revision=${REVISION} \ |
47 |
| - -X ${REPO}/pkg/version.Branch=${BRANCH} \ |
48 |
| - -X ${REPO}/pkg/version.BuildUser=${BUILDUSER} \ |
49 |
| - -X ${REPO}/pkg/version.BuildDate=${BUILDTIME}" \ |
50 |
| - -o ./bin/$$target-windows-amd64.exe ./cmd/$$target; \ |
51 |
| - done |
52 |
| - |
53 |
| -clean: |
54 |
| - rm -rf ./bin |
55 |
| - |
56 |
| -docker-build: build-linux-amd64 |
57 |
| - for target in $(WHAT); do \ |
58 |
| - docker build -f cmd/$$target/Dockerfile -t "$$target:${VERSION}" --build-arg REVISION=${REVISION} --build-arg VERSION=${VERSION} .; \ |
59 |
| - done |
60 |
| - |
61 |
| -docker-publish: |
62 |
| - for target in $(WHAT); do \ |
63 |
| - docker tag $$target:${VERSION} ricoberger/sealed-secrets-web:${VERSION}; \ |
64 |
| - docker tag $$target:${VERSION} docker.pkg.github.com/ricoberger/sealed-secrets-web/sealed-secrets-web:${VERSION}; \ |
65 |
| - docker push ricoberger/sealed-secrets-web:${VERSION}; \ |
66 |
| - docker push docker.pkg.github.com/ricoberger/sealed-secrets-web/sealed-secrets-web:${VERSION}; \ |
67 |
| - done |
68 |
| - |
69 |
| -release: clean docker-build docker-publish |
70 |
| - |
71 |
| -release-major: |
72 |
| - $(eval MAJORVERSION=$(shell git describe --tags --abbrev=0 | sed s/v// | awk -F. '{print $$1+1".0.0"}')) |
73 |
| - git checkout master |
74 |
| - git pull |
75 |
| - git tag -a $(MAJORVERSION) -m 'release $(MAJORVERSION)' |
76 |
| - git push origin --tags |
77 |
| - |
78 |
| -release-minor: |
79 |
| - $(eval MINORVERSION=$(shell git describe --tags --abbrev=0 | sed s/v// | awk -F. '{print $$1"."$$2+1".0"}')) |
80 |
| - git checkout master |
81 |
| - git pull |
82 |
| - git tag -a $(MINORVERSION) -m 'release $(MINORVERSION)' |
83 |
| - git push origin --tags |
84 |
| - |
85 |
| -release-patch: |
86 |
| - $(eval PATCHVERSION=$(shell git describe --tags --abbrev=0 | sed s/v// | awk -F. '{print $$1"."$$2"."$$3+1}')) |
87 |
| - git checkout master |
88 |
| - git pull |
89 |
| - git tag -a $(PATCHVERSION) -m 'release $(PATCHVERSION)' |
90 |
| - git push origin --tags |
| 1 | +release: semver |
| 2 | + @version=$$(semver); \ |
| 3 | + git tag -s $$version -m"Release $$version" |
| 4 | + goreleaser --rm-dist |
| 5 | + cr upload --skip-existing |
| 6 | + cr index |
| 7 | + |
| 8 | +test-release: |
| 9 | + goreleaser --skip-publish --snapshot --rm-dist |
| 10 | + |
| 11 | +semver: |
| 12 | +ifeq (, $(shell which semver)) |
| 13 | + $(shell go get -u github.com/bakito/semver) |
| 14 | +endif |
0 commit comments