Skip to content

Commit 46d07b1

Browse files
author
Tristan Colgate
committed
Update build
1 parent 0a13664 commit 46d07b1

File tree

7 files changed

+92
-67
lines changed

7 files changed

+92
-67
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ dist
55
.build
66
.tarballs
77
vendor
8+
promu
9+
github-release

.promu.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
verbose: true
22
go:
3-
version: 1.9
3+
version: 1.12
44
cgo: false
55
repository:
66
path: github.com/QubitProducts/exporter_exporter
@@ -9,7 +9,7 @@ build:
99
binaries:
1010
- name: exporter_exporter
1111
path: .
12-
flags: -a
12+
flags: -mod=vendor -a
1313
ldflags: |
1414
-s
1515
-X main.Version={{.Version}}

Dockerfile

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
FROM alpine
2-
ADD .build/linux-amd64/exporter_exporter /usr/bin/exporter_exporter
1+
FROM golang:1.12-alpine AS build
2+
RUN mkdir /src
3+
WORKDIR /src
4+
COPY *.go go.mod go.sum /src/
5+
RUN apk add git
6+
RUN go build .
37

8+
FROM alpine
9+
COPY --from=build /src/exporter_exporter /usr/bin/
410
ENTRYPOINT ["/usr/bin/exporter_exporter"]

Makefile

Lines changed: 51 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ DOCKER_IMAGE = $(DOCKER_REGISTRY)/$(DOCKER_NAME):$(VERSION)
77
DOCKER_IMAGE_LATEST = $(DOCKER_REGISTRY)/$(DOCKER_NAME):latest
88

99
SHELL := /usr/bin/env bash
10-
GO := GO15VENDOREXPERIMENT=1 go
10+
GO := go
1111
FIRST_GOPATH := $(firstword $(subst :, ,$(GOPATH)))
12-
PROMU := $(FIRST_GOPATH)/bin/promu
1312
FILES = $(shell find . -name '*.go' | grep -v vendor)
1413
PREFIX ?= $(shell pwd)
1514
BIN_DIR ?= $(shell pwd)
@@ -26,95 +25,88 @@ BINNAME = exporter_exporter
2625

2726
PWD := $(shell pwd)
2827

29-
# V := 1 # When V is set, print commands and build progress.
30-
Q := $(if $V,,@)
31-
3228
all: package
3329
clean:
34-
$Q rm -f $(PACKAGE_FILE)
35-
$Q rm -rf dist
36-
$Q rm -rf build
30+
rm -f $(PACKAGE_FILE)
31+
rm -rf dist
32+
rm -rf build
3733

3834
.PHONY: test
3935
test:
40-
$Q echo ">> running short tests"
41-
$Q $(GO) test -short $(pkgs)
36+
echo ">> running short tests"
37+
$(GO) test -short $(pkgs)
4238

4339
.PHONY: test-static
4440
test-static:
45-
$Q echo ">> running static tests"
46-
$Q $(GO) vet $(pkgs)
47-
$Q [[ "$(shell gofmt -l $(files))" == "" ]] || (echo "gofmt check failed"; exit 1)
41+
echo ">> running static tests"
42+
$(GO) vet $(pkgs)
43+
[[ "$(shell gofmt -l $(files))" == "" ]] || (echo "gofmt check failed"; exit 1)
4844

4945
.PHONY: format
5046
format:
51-
$Q echo ">> formatting code"
52-
$Q $(GO) fmt $(pkgs)
47+
echo ">> formatting code"
48+
$(GO) fmt $(pkgs)
5349

5450
.PHONY: vet
5551
vet:
56-
$Q echo ">> vetting code"
57-
$Q $(GO) vet $(pkgs)
52+
echo ">> vetting code"
53+
$(GO) vet $(pkgs)
5854

59-
vendor: Gopkg.lock Gopkg.toml
60-
dep ensure -v
55+
vendor: go.mod go.sum
56+
go mod vendor
6157

6258
.PHONY: build
6359
build: vendor promu
64-
$Q echo ">> building binaries"
65-
$Q $(PROMU) build --prefix $(PREFIX)
60+
echo ">> building binaries"
61+
./promu build --prefix $(PREFIX)
6662

6763
.PHONY: tarball
6864
tarball: promu
69-
$Q echo ">> building release tarball"
70-
$Q $(PROMU) tarball --prefix $(PREFIX) $(BIN_DIR)
65+
echo ">> building release tarball"
66+
./promu tarball --prefix $(PREFIX) $(BIN_DIR)
7167

7268
.PHONY: promu
7369
promu:
74-
$Q echo ">> fetching promu"
75-
$Q GOOS=$(shell uname -s | tr A-Z a-z) \
76-
GOARCH=$(subst x86_64,amd64,$(patsubst i%86,386,$(shell uname -m))) \
77-
$(GO) get -u github.com/prometheus/promu
70+
echo ">> fetching promu"
71+
$(GO) build -o promu github.com/prometheus/promu
7872

7973
.PHONY: github-release
8074
github-release:
81-
$Q echo ">> fetching github-release"
82-
$Q GOOS=$(shell uname -s | tr A-Z a-z) \
83-
GOARCH=$(subst x86_64,amd64,$(patsubst i%86,386,$(shell uname -m))) \
84-
$(GO) get -u github.com/aktau/github-release
75+
echo ">> fetching github-release"
76+
$(GO) build -o github-release github.com/aktau/github-release
8577

8678
.PHONY: release
8779
release: promu github-release package
88-
$Q echo ">> crossbuilding binaries"
89-
$Q promu crossbuild
90-
$Q echo ">> crossbuilding tarballs"
91-
$Q promu crossbuild tarballs
92-
$Q echo ">> creating github release"
93-
$Q github-release release -u $(GITHUB_ORG) -r $(GITHUB_REPO) --tag v$(VERSION) --name v$(VERSION)
94-
$Q echo ">> uploading artifacts"
95-
$Q promu release .tarballs
96-
$Q echo ">> uploading deb"
97-
$Q github-release upload -u $(GITHUB_ORG) -r $(GITHUB_REPO) --tag v$(VERSION) --name $(PACKAGE_FILE) --file $(PACKAGE_FILE)
80+
echo ">> crossbuilding binaries"
81+
promu crossbuild
82+
echo ">> crossbuilding tarballs"
83+
promu crossbuild tarballs
84+
echo ">> creating github release"
85+
./github-release release -u $(GITHUB_ORG) -r $(GITHUB_REPO) --tag v$(VERSION) --name v$(VERSION)
86+
echo ">> uploading artifacts"
87+
promu release .tarballs
88+
echo ">> uploading deb"
89+
./github-release upload -u $(GITHUB_ORG) -r $(GITHUB_REPO) --tag v$(VERSION) --name $(PACKAGE_FILE) --file $(PACKAGE_FILE)
9890

9991
.PHONY: prepare-package clean-package package
10092
prepare-package: clean-package
101-
$Q echo ">> crossbuilding binaries"
102-
$Q promu crossbuild -p linux/amd64
103-
$Q mkdir -p dist/usr/local/bin
104-
$Q mkdir -p dist/etc/init
105-
$Q mkdir -p dist/etc/default
106-
$Q mkdir -p dist/etc/exporter_exporter.d/
107-
$Q install -m755 .build/linux-amd64/$(BINNAME) dist/usr/local/bin/$(BINNAME)
108-
$Q install -m644 $(BINNAME).conf dist/etc/init/$(BINNAME).conf
109-
$Q install -m644 $(BINNAME).defaults dist/etc/default/$(BINNAME)
110-
$Q install -m644 expexp.yaml dist/etc/exporter_exporter.yaml
111-
$Q touch dist/etc/exporter_exporter.d/.dir
93+
echo ">> crossbuilding binaries"
94+
promu crossbuild -p linux/amd64
95+
mkdir -p dist/usr/local/bin
96+
mkdir -p dist/etc/init
97+
mkdir -p dist/etc/default
98+
mkdir -p dist/etc/exporter_exporter.d/
99+
install -m755 .build/linux-amd64/$(BINNAME) dist/usr/local/bin/$(BINNAME)
100+
install -m644 $(BINNAME).conf dist/etc/init/$(BINNAME).conf
101+
install -m644 $(BINNAME).defaults dist/etc/default/$(BINNAME)
102+
install -m644 expexp.yaml dist/etc/exporter_exporter.yaml
103+
touch dist/etc/exporter_exporter.d/.dir
112104

113105
clean-package:
114-
$Q rm -rf dist
106+
rm -rf dist
115107

116108
package: prepare-package
117-
$Q cd dist && \
109+
cd dist && \
118110
fpm \
119111
-t $(PACKAGE_TARGET) \
120112
-m $(PACKAGE_MAINTAINER) \
@@ -127,12 +119,10 @@ package: prepare-package
127119
.
128120

129121
.PHONY: build-docker release-docker
130-
build-docker: promu
131-
$Q echo ">> crossbuilding binaries"
132-
$Q promu crossbuild -p linux/amd64
133-
$Q docker build -t $(DOCKER_IMAGE) .
122+
build-docker:
123+
docker build -t $(DOCKER_IMAGE) .
134124

135125
release-docker: build-docker
136-
$Q docker push $(DOCKER_IMAGE)
137-
$Q docker tag $(DOCKER_IMAGE) $(DOCKER_IMAGE_LATEST)
138-
$Q docker push $(DOCKER_IMAGE_LATEST)
126+
docker push $(DOCKER_IMAGE)
127+
docker tag $(DOCKER_IMAGE) $(DOCKER_IMAGE_LATEST)
128+
docker push $(DOCKER_IMAGE_LATEST)

go.mod

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,30 @@
11
module github.com/QubitProducts/exporter_exporter
22

33
require (
4+
github.com/aktau/github-release v0.7.2 // indirect
45
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973
6+
github.com/dustin/go-humanize v1.0.0 // indirect
57
github.com/go-logfmt/logfmt v0.4.0 // indirect
68
github.com/gogo/protobuf v1.2.1 // indirect
79
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
810
github.com/golang/protobuf v1.3.1
911
github.com/kisielk/errcheck v1.2.0 // indirect
1012
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
13+
github.com/kr/pty v1.1.4 // indirect
1114
github.com/matttproud/golang_protobuf_extensions v1.0.1
1215
github.com/pkg/errors v0.8.1
1316
github.com/prometheus/client_golang v0.9.2
1417
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90
1518
github.com/prometheus/common v0.2.0
1619
github.com/prometheus/procfs v0.0.0-20190322151404-55ae3d9d5573
20+
github.com/prometheus/promu v0.3.0 // indirect
1721
github.com/sirupsen/logrus v1.4.0 // indirect
18-
github.com/stretchr/testify v1.3.0 // indirect
22+
github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 // indirect
23+
github.com/voxelbrain/goptions v0.0.0-20180630082107-58cddc247ea2 // indirect
1924
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c // indirect
2025
golang.org/x/net v0.0.0-20190327214358-63eda1eb0650
2126
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6
2227
golang.org/x/sys v0.0.0-20190322080309-f49334f85ddc // indirect
2328
golang.org/x/tools v0.0.0-20190328030505-8f05a32dce9f // indirect
24-
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
2529
gopkg.in/yaml.v2 v2.2.2
2630
)

go.sum

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
github.com/aktau/github-release v0.7.2 h1:la7AnShr2MQPIlBEcRA9MPbI8av0YFmpFP9WM5EoqJs=
2+
github.com/aktau/github-release v0.7.2/go.mod h1:cPkP83iRnV8pAJyQlQ4vjLJoC+JE+aT5sOrYz3sTsX0=
13
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU=
24
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
35
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY=
@@ -7,6 +9,8 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLM
79
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
810
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
911
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
12+
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
13+
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
1014
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
1115
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
1216
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
@@ -25,6 +29,10 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
2529
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
2630
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
2731
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
32+
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
33+
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
34+
github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
35+
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
2836
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
2937
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
3038
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
@@ -47,15 +55,22 @@ github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8
4755
github.com/prometheus/procfs v0.0.0-20160411190841-abf152e5f3e9/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
4856
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
4957
github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
58+
github.com/prometheus/procfs v0.0.0-20190209105433-f8d8b3f739bd/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
5059
github.com/prometheus/procfs v0.0.0-20190322151404-55ae3d9d5573 h1:gAuD3LIrjkoOOPLlhGlZWZXztrQII9a9kT6HS5jFtSY=
5160
github.com/prometheus/procfs v0.0.0-20190322151404-55ae3d9d5573/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
61+
github.com/prometheus/promu v0.3.0 h1:ecIZ1FIjQ+PAneA6g0KpUa7FDimozQtDjzI2rW0Pmh0=
62+
github.com/prometheus/promu v0.3.0/go.mod h1:+NXvSS3J95z3ZmFZP0DXUt+g/I6zyK1CQoBJKkjzX4k=
5263
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
5364
github.com/sirupsen/logrus v1.4.0 h1:yKenngtzGh+cUSSh6GWbxW2abRqhYUSR/t/6+2QqNvE=
5465
github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
5566
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
5667
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
5768
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
5869
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
70+
github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 h1:nrZ3ySNYwJbSpD6ce9duiP+QkD3JuLCcWkdaehUS/3Y=
71+
github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80/go.mod h1:iFyPdL66DjUD96XmzVL3ZntbzcflLnznH0fr99w5VqE=
72+
github.com/voxelbrain/goptions v0.0.0-20180630082107-58cddc247ea2 h1:txplJASvd6b/hrE0s/Ixfpp2cuwH9IO9oZBAN9iYa4A=
73+
github.com/voxelbrain/goptions v0.0.0-20180630082107-58cddc247ea2/go.mod h1:DGCIhurYgnLz8J9ga1fMV/fbLDyUvTyrWXVWUIyJon4=
5974
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
6075
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
6176
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c h1:Vj5n4GlwjmQteupaxJ9+0FNOmBrHfq7vN4btdGoDZgI=

tools.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// +build never
2+
3+
package tools
4+
5+
import (
6+
_ "github.com/aktau/github-release"
7+
_ "github.com/prometheus/promu"
8+
)

0 commit comments

Comments
 (0)