@@ -49,23 +49,23 @@ endif
49
49
GOTEST := $(GO) test
50
50
GOTEST_DIR :=
51
51
ifneq ($(CIRCLE_JOB),)
52
- ifneq ($(shell which gotestsum),)
52
+ ifneq ($(shell command -v gotestsum 2> /dev/null ),)
53
53
GOTEST_DIR := test-results
54
54
GOTEST := gotestsum --junitfile $(GOTEST_DIR)/unit-tests.xml --
55
55
endif
56
56
endif
57
57
58
- PROMU_VERSION ?= 0.13 .0
58
+ PROMU_VERSION ?= 0.17 .0
59
59
PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_VERSION)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM).tar.gz
60
60
61
61
SKIP_GOLANGCI_LINT :=
62
62
GOLANGCI_LINT :=
63
63
GOLANGCI_LINT_OPTS ?=
64
- GOLANGCI_LINT_VERSION ?= v1.49.0
65
- # golangci-lint only supports linux, darwin and windows platforms on i386/amd64.
64
+ GOLANGCI_LINT_VERSION ?= v1.59.1
65
+ # golangci-lint only supports linux, darwin and windows platforms on i386/amd64/arm64 .
66
66
# windows isn't included here because of the path separator being different.
67
67
ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux darwin))
68
- ifeq ($(GOHOSTARCH),$(filter $(GOHOSTARCH),amd64 i386))
68
+ ifeq ($(GOHOSTARCH),$(filter $(GOHOSTARCH),amd64 i386 arm64 ))
69
69
# If we're in CI and there is an Actions file, that means the linter
70
70
# is being run in Actions, so we don't need to run it here.
71
71
ifneq (,$(SKIP_GOLANGCI_LINT))
@@ -91,6 +91,8 @@ BUILD_DOCKER_ARCHS = $(addprefix common-docker-,$(DOCKER_ARCHS))
91
91
PUBLISH_DOCKER_ARCHS = $(addprefix common-docker-publish-,$(DOCKER_ARCHS))
92
92
TAG_DOCKER_ARCHS = $(addprefix common-docker-tag-latest-,$(DOCKER_ARCHS))
93
93
94
+ SANITIZED_DOCKER_IMAGE_TAG := $(subst +,-,$(DOCKER_IMAGE_TAG))
95
+
94
96
ifeq ($(GOHOSTARCH),amd64)
95
97
ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux freebsd darwin windows))
96
98
# Only supported on amd64
@@ -167,16 +169,20 @@ common-vet:
167
169
common-lint: $(GOLANGCI_LINT)
168
170
ifdef GOLANGCI_LINT
169
171
@echo ">> running golangci-lint"
170
- # 'go list' needs to be executed before staticcheck to prepopulate the modules cache.
171
- # Otherwise staticcheck might fail randomly for some reason not yet explained.
172
- $(GO) list -e -compiled -test=true -export=false -deps=true -find=false -tags= -- ./... > /dev/null
173
172
$(GOLANGCI_LINT) run $(GOLANGCI_LINT_OPTS) $(pkgs)
174
173
endif
175
174
175
+ .PHONY: common-lint-fix
176
+ common-lint-fix: $(GOLANGCI_LINT)
177
+ ifdef GOLANGCI_LINT
178
+ @echo ">> running golangci-lint fix"
179
+ $(GOLANGCI_LINT) run --fix $(GOLANGCI_LINT_OPTS) $(pkgs)
180
+ endif
181
+
176
182
.PHONY: common-yamllint
177
183
common-yamllint:
178
184
@echo ">> running yamllint on all YAML files in the repository"
179
- ifeq (, $(shell which yamllint))
185
+ ifeq (, $(shell command -v yamllint 2> /dev/null ))
180
186
@echo "yamllint not installed so skipping"
181
187
else
182
188
yamllint .
@@ -202,10 +208,14 @@ common-tarball: promu
202
208
@echo ">> building release tarball"
203
209
$(PROMU) tarball --prefix $(PREFIX) $(BIN_DIR)
204
210
211
+ .PHONY: common-docker-repo-name
212
+ common-docker-repo-name:
213
+ @echo "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)"
214
+
205
215
.PHONY: common-docker $(BUILD_DOCKER_ARCHS)
206
216
common-docker: $(BUILD_DOCKER_ARCHS)
207
217
$(BUILD_DOCKER_ARCHS): common-docker-%:
208
- docker build -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG )" \
218
+ docker build -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG )" \
209
219
-f $(DOCKERFILE_PATH) \
210
220
--build-arg ARCH="$*" \
211
221
--build-arg OS="linux" \
@@ -214,19 +224,19 @@ $(BUILD_DOCKER_ARCHS): common-docker-%:
214
224
.PHONY: common-docker-publish $(PUBLISH_DOCKER_ARCHS)
215
225
common-docker-publish: $(PUBLISH_DOCKER_ARCHS)
216
226
$(PUBLISH_DOCKER_ARCHS): common-docker-publish-%:
217
- docker push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG )"
227
+ docker push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG )"
218
228
219
229
DOCKER_MAJOR_VERSION_TAG = $(firstword $(subst ., ,$(shell cat VERSION)))
220
230
.PHONY: common-docker-tag-latest $(TAG_DOCKER_ARCHS)
221
231
common-docker-tag-latest: $(TAG_DOCKER_ARCHS)
222
232
$(TAG_DOCKER_ARCHS): common-docker-tag-latest-%:
223
- docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG )" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:latest"
224
- docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG )" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:v$(DOCKER_MAJOR_VERSION_TAG)"
233
+ docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG )" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:latest"
234
+ docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG )" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:v$(DOCKER_MAJOR_VERSION_TAG)"
225
235
226
236
.PHONY: common-docker-manifest
227
237
common-docker-manifest:
228
- DOCKER_CLI_EXPERIMENTAL=enabled docker manifest create -a "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG )" $(foreach ARCH,$(DOCKER_ARCHS),$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$(ARCH):$(DOCKER_IMAGE_TAG ))
229
- DOCKER_CLI_EXPERIMENTAL=enabled docker manifest push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG )"
238
+ DOCKER_CLI_EXPERIMENTAL=enabled docker manifest create -a "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(SANITIZED_DOCKER_IMAGE_TAG )" $(foreach ARCH,$(DOCKER_ARCHS),$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$(ARCH):$(SANITIZED_DOCKER_IMAGE_TAG ))
239
+ DOCKER_CLI_EXPERIMENTAL=enabled docker manifest push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(SANITIZED_DOCKER_IMAGE_TAG )"
230
240
231
241
.PHONY: promu
232
242
promu: $(PROMU)
0 commit comments