Skip to content

Commit 0d02240

Browse files
author
Tristan Colgate
committed
make: update to release tooling
1 parent 73e374a commit 0d02240

File tree

5 files changed

+58
-51
lines changed

5 files changed

+58
-51
lines changed

Makefile

Lines changed: 55 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
GITHUB_ORG = QubitProducts
22
GITHUB_REPO = exporter_exporter
3+
VERSION = 0.3.0
34

45
DOCKER_REGISTRY = qubitproducts
56
DOCKER_NAME = exporter_exporter
@@ -12,11 +13,10 @@ FIRST_GOPATH := $(firstword $(subst :, ,$(GOPATH)))
1213
FILES = $(shell find . -name '*.go' | grep -v vendor)
1314
PREFIX ?= $(shell pwd)
1415
BIN_DIR ?= $(shell pwd)
15-
VERSION ?= $(shell cat VERSION)
1616

1717
PACKAGE_TARGET = deb
1818
PACKAGE_NAME = expexp
19-
PACKAGE_VERSION = $(shell cat VERSION)
19+
PACKAGE_VERSION = $(VERSION)
2020
PACKAGE_REVISION = 3
2121
PACKAGE_ARCH = amd64
2222
PACKAGE_MAINTAINER = [email protected]
@@ -52,50 +52,8 @@ vet:
5252
echo ">> vetting code"
5353
$(GO) vet $(pkgs)
5454

55-
vendor: go.mod go.sum
56-
go mod vendor
57-
58-
.PHONY: build
59-
build: vendor promu
60-
echo ">> building binaries"
61-
./promu build --prefix $(PREFIX)
62-
63-
.PHONY: tarball
64-
tarball: promu
65-
echo ">> building release tarball"
66-
./promu tarball --prefix $(PREFIX) $(BIN_DIR)
67-
68-
.PHONY: promu
69-
promu:
70-
echo ">> fetching promu"
71-
GOOS=$(shell uname -s | tr A-Z a-z) \
72-
GOARCH=$(subst x86_64,amd64,$(patsubst i%86,386,$(shell uname -m))) \
73-
$(GO) build -o promu github.com/prometheus/promu
74-
75-
.PHONY: github-release
76-
github-release:
77-
echo ">> fetching github-release"
78-
GOOS=$(shell uname -s | tr A-Z a-z) \
79-
GOARCH=$(subst x86_64,amd64,$(patsubst i%86,386,$(shell uname -m))) \
80-
$(GO) build -o github-release github.com/aktau/github-release
81-
82-
.PHONY: release
83-
release: promu github-release package
84-
echo ">> crossbuilding binaries"
85-
./promu crossbuild
86-
echo ">> crossbuilding tarballs"
87-
./promu crossbuild tarballs
88-
echo ">> creating github release"
89-
./github-release release -u $(GITHUB_ORG) -r $(GITHUB_REPO) --tag v$(VERSION) --name v$(VERSION)
90-
echo ">> uploading artifacts"
91-
./promu release .tarballs
92-
echo ">> uploading deb"
93-
./github-release upload -u $(GITHUB_ORG) -r $(GITHUB_REPO) --tag v$(VERSION) --name $(PACKAGE_FILE) --file $(PACKAGE_FILE)
94-
9555
.PHONY: prepare-package clean-package package
96-
prepare-package: clean-package
97-
echo ">> crossbuilding binaries"
98-
./promu crossbuild -p linux/amd64
56+
prepare-package: clean-package build/exporter_exporter-$(VERSION).linux-amd64/exporter_exporter
9957
mkdir -p dist/usr/local/bin
10058
mkdir -p dist/etc/init
10159
mkdir -p dist/etc/default
@@ -135,3 +93,55 @@ release-docker: build-docker
13593
docker push $(DOCKER_IMAGE)
13694
docker tag $(DOCKER_IMAGE) $(DOCKER_IMAGE_LATEST)
13795
docker push $(DOCKER_IMAGE_LATEST)
96+
97+
LDFLAGS = -X main.Version=$(VERSION) \
98+
-X main.Branch=$(BRANCH) \
99+
-X main.Revision=$(REVISION) \
100+
-X main.BuildUser=$(BUILDUSER) \
101+
-X main.BuildDate=$(BUILDDATE)
102+
103+
build/expoter_exporter-$(VERSION).windows-amd64/exporter_exporter.exe: $(SRCS) version.go
104+
GOOS=$* GOARCH=amd64 $(GO) go build \
105+
-ldflags "$(LDFLAGS)" \
106+
-o $@ \
107+
.
108+
109+
build/exporter_exporter-$(VERSION).%-amd64/exporter_exporter: $(SRCS) version.go
110+
GOOS=$* GOARCH=amd64 $(GO) build \
111+
-ldflags "$(LDFLAGS)" \
112+
-o $@ \
113+
.
114+
115+
build/exporter_exporter-$(VERSION).windows-amd64.tar.gz: build/exporter_exporter-$(VERSION).windows-amd64/exporter_exporter.exe
116+
cd build && \
117+
tar cfzv exporter_exporter-$(VERSION).windows-amd64.tar.gz exporter_exporter-$(VERSION).windows-amd64
118+
119+
build/exporter_exporter-$(VERSION).%-amd64.tar.gz: build/exporter_exporter-$(VERSION).%-amd64/exporter_exporter
120+
cd build && \
121+
tar cfzv exporter_exporter-$(VERSION).$*-amd64.tar.gz exporter_exporter-$(VERSION).$*-amd64
122+
123+
package-release: build/exporter_exporter-$(VERSION).%-amd64.tar.gz $(PACKAGE_FILE)
124+
go run github.com/aktau/github-release upload \
125+
-u $(GITHUB_ORG) \
126+
-r $(GITHUB_REPO) \
127+
--tag v$(VERSION) \
128+
--name $(PACKAGE_FILE) \
129+
--file $(PACKAGE_FILE)
130+
131+
release-%: build/exporter_exporter-$(VERSION).%-amd64.tar.gz $(PACKAGE_FILE)
132+
go run github.com/aktau/github-release upload \
133+
-u $(GITHUB_USER) \
134+
-r $(GITHUB_REPO) \
135+
--tag v$(VERSION) \
136+
--name exporter_exporter-$(VERSION).$*-amd64.tar.gz \
137+
-f ./build/exporter_exporter-$(VERSION).$*-amd64.tar.gz
138+
139+
release:
140+
git tag v$(VERSION)
141+
git push origin v$(VERSION)
142+
go run github.com/aktau/github-release release \
143+
-u $(GITHUB_USER) \
144+
-r $(GITHUB_REPO) \
145+
--tag v$(VERSION) \
146+
--name v$(VERSION)
147+
make release-darwin release-linux release-windows package-release

VERSION

Lines changed: 0 additions & 1 deletion
This file was deleted.

go.mod

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,21 @@ require (
55
github.com/dustin/go-humanize v1.0.0 // indirect
66
github.com/golang/protobuf v1.3.1 // indirect
77
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
8+
github.com/kr/pretty v0.1.0 // indirect
89
github.com/pkg/errors v0.8.1
910
github.com/prometheus/client_golang v0.9.2
1011
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90
1112
github.com/prometheus/common v0.2.0
1213
github.com/prometheus/procfs v0.0.0-20190322151404-55ae3d9d5573 // indirect
13-
github.com/prometheus/promu v0.3.0
1414
github.com/sirupsen/logrus v1.4.0 // indirect
15+
github.com/stretchr/testify v1.3.0 // indirect
1516
github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 // indirect
1617
github.com/voxelbrain/goptions v0.0.0-20180630082107-58cddc247ea2 // indirect
1718
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c // indirect
1819
golang.org/x/net v0.0.0-20190327214358-63eda1eb0650
1920
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6
2021
golang.org/x/sys v0.0.0-20190322080309-f49334f85ddc // indirect
22+
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
2123
gopkg.in/yaml.v2 v2.2.2
2224
)
2325

go.sum

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,8 @@ github.com/prometheus/common v0.2.0 h1:kUZDBDTdBVBYBj5Tmh2NZLlF60mfjA27rM34b+cVw
4747
github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
4848
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
4949
github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
50-
github.com/prometheus/procfs v0.0.0-20190209105433-f8d8b3f739bd/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
5150
github.com/prometheus/procfs v0.0.0-20190322151404-55ae3d9d5573 h1:gAuD3LIrjkoOOPLlhGlZWZXztrQII9a9kT6HS5jFtSY=
5251
github.com/prometheus/procfs v0.0.0-20190322151404-55ae3d9d5573/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
53-
github.com/prometheus/promu v0.3.0 h1:ecIZ1FIjQ+PAneA6g0KpUa7FDimozQtDjzI2rW0Pmh0=
54-
github.com/prometheus/promu v0.3.0/go.mod h1:+NXvSS3J95z3ZmFZP0DXUt+g/I6zyK1CQoBJKkjzX4k=
5552
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
5653
github.com/sirupsen/logrus v1.4.0 h1:yKenngtzGh+cUSSh6GWbxW2abRqhYUSR/t/6+2QqNvE=
5754
github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=

tools.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,4 @@ package tools
44

55
import (
66
_ "github.com/aktau/github-release"
7-
_ "github.com/prometheus/promu"
87
)

0 commit comments

Comments
 (0)