Skip to content

Commit 6d03566

Browse files
ismael_serranoisserrano
authored andcommitted
Add binaries build to Makefile and pipeline
Adding a stage to build prometheus exporter binaries for the supported platforms: Linux (i386 and amd64) Adding a clean target to remove all created artifacts if necessary
1 parent a365950 commit 6d03566

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

Makefile

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,41 @@ PREFIX = nginx-prometheus-exporter
33
TAG = $(VERSION)
44
GIT_COMMIT = $(shell git rev-parse --short HEAD)
55

6+
BUILD_DIR = build_output
7+
8+
nginx-prometheus-exporter: test
9+
CGO_ENABLED=0 go build -installsuffix cgo -ldflags "-X main.version=$(VERSION) -X main.gitCommit=$(GIT_COMMIT)" -o nginx-prometheus-exporter
10+
611
test:
712
go test ./...
813

914
container:
1015
docker build --build-arg VERSION=$(VERSION) --build-arg GIT_COMMIT=$(GIT_COMMIT) -t $(PREFIX):$(TAG) .
1116

1217
push: container
13-
docker push $(PREFIX):$(TAG)
18+
docker push $(PREFIX):$(TAG)
19+
20+
$(BUILD_DIR)/nginx-prometheus-exporter-linux-amd64:
21+
GOARCH=amd64 CGO_ENABLED=0 GOOS=linux go build -installsuffix cgo -ldflags "-X main.version=$(VERSION) -X main.gitCommit=$(GIT_COMMIT)" -o $(BUILD_DIR)/nginx-prometheus-exporter-linux-amd64
22+
23+
$(BUILD_DIR)/nginx-prometheus-exporter-linux-i386:
24+
GOARCH=386 CGO_ENABLED=0 GOOS=linux go build -installsuffix cgo -ldflags "-X main.version=$(VERSION) -X main.gitCommit=$(GIT_COMMIT)" -o $(BUILD_DIR)/nginx-prometheus-exporter-linux-i386
25+
26+
release: $(BUILD_DIR)/nginx-prometheus-exporter-linux-amd64 $(BUILD_DIR)/nginx-prometheus-exporter-linux-i386
27+
mv $(BUILD_DIR)/nginx-prometheus-exporter-linux-amd64 $(BUILD_DIR)/nginx-prometheus-exporter && \
28+
tar czf $(BUILD_DIR)/nginx-prometheus-exporter-$(TAG)-linux-amd64.tar.gz -C $(BUILD_DIR) nginx-prometheus-exporter && \
29+
rm $(BUILD_DIR)/nginx-prometheus-exporter
30+
31+
mv $(BUILD_DIR)/nginx-prometheus-exporter-linux-i386 $(BUILD_DIR)/nginx-prometheus-exporter && \
32+
tar czf $(BUILD_DIR)/nginx-prometheus-exporter-$(TAG)-linux-i386.tar.gz -C $(BUILD_DIR) nginx-prometheus-exporter && \
33+
rm $(BUILD_DIR)/nginx-prometheus-exporter
34+
35+
shasum -a 256 $(BUILD_DIR)/nginx-prometheus-exporter-$(TAG)-linux-amd64.tar.gz $(BUILD_DIR)/nginx-prometheus-exporter-$(TAG)-linux-i386.tar.gz|sed "s|$(BUILD_DIR)/||" > $(BUILD_DIR)/sha256sums.txt
36+
37+
clean:
38+
-rm $(BUILD_DIR)/nginx-prometheus-exporter-$(TAG)-linux-amd64.tar.gz
39+
-rm $(BUILD_DIR)/nginx-prometheus-exporter-$(TAG)-linux-i386.tar.gz
40+
-rm $(BUILD_DIR)/sha256sums.txt
41+
-rmdir $(BUILD_DIR)
42+
-rm nginx-prometheus-exporter
43+

0 commit comments

Comments
 (0)