@@ -55,13 +55,13 @@ ifneq ($(shell command -v gotestsum 2> /dev/null),)
5555endif
5656endif
5757
58- PROMU_VERSION ?= 0.18.0
58+ PROMU_VERSION ?= 0.18.1
5959PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_VERSION)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM).tar.gz
6060
6161SKIP_GOLANGCI_LINT :=
6262GOLANGCI_LINT :=
6363GOLANGCI_LINT_OPTS ?=
64- GOLANGCI_LINT_VERSION ?= v2.10.1
64+ GOLANGCI_LINT_VERSION ?= v2.11.4
6565GOLANGCI_FMT_OPTS ?=
6666# golangci-lint only supports linux, darwin and windows platforms on i386/amd64/arm64.
6767# windows isn't included here because of the path separator being different.
@@ -90,8 +90,8 @@ ifdef DOCKERFILE_PATH
9090$(error DOCKERFILE_PATH is deprecated. Use DOCKERFILE_VARIANTS ?= $(DOCKERFILE_PATH) in the Makefile)
9191endif
9292
93- DOCKER_ARCHS ?= amd64
94- DOCKERFILE_VARIANTS ?= Dockerfile $(wildcard Dockerfile.*)
93+ DOCKER_ARCHS ?= amd64 arm64 armv7 ppc64le riscv64 s390x
94+ DOCKERFILE_VARIANTS ?= $(wildcard Dockerfile Dockerfile.*)
9595
9696# Function to extract variant from Dockerfile label.
9797# Returns the variant name from io.prometheus.image.variant label, or "default" if not found.
@@ -109,24 +109,6 @@ endif
109109# Build variant:dockerfile pairs for shell iteration.
110110DOCKERFILE_VARIANTS_WITH_NAMES := $(foreach df,$(DOCKERFILE_VARIANTS),$(call dockerfile_variant,$(df)):$(df))
111111
112- # Shell helper to check whether a dockerfile/arch pair is excluded.
113- define dockerfile_arch_is_excluded
114- case " $(DOCKERFILE_ARCH_EXCLUSIONS) " in \
115- *" $$dockerfile:$(1) "*) true ;; \
116- *) false ;; \
117- esac
118- endef
119-
120- # Shell helper to check whether a registry/arch pair is excluded.
121- # Extracts registry from DOCKER_REPO (e.g., quay.io/prometheus -> quay.io)
122- define registry_arch_is_excluded
123- registry=$$(echo "$(DOCKER_REPO)" | cut -d'/' -f1); \
124- case " $(DOCKER_REGISTRY_ARCH_EXCLUSIONS) " in \
125- *" $$registry:$(1) "*) true ;; \
126- *) false ;; \
127- esac
128- endef
129-
130112BUILD_DOCKER_ARCHS = $(addprefix common-docker-,$(DOCKER_ARCHS))
131113PUBLISH_DOCKER_ARCHS = $(addprefix common-docker-publish-,$(DOCKER_ARCHS))
132114TAG_DOCKER_ARCHS = $(addprefix common-docker-tag-latest-,$(DOCKER_ARCHS))
@@ -268,10 +250,6 @@ $(BUILD_DOCKER_ARCHS): common-docker-%:
268250 @for variant in $(DOCKERFILE_VARIANTS_WITH_NAMES); do \
269251 dockerfile=$${variant#*:}; \
270252 variant_name=$${variant%%:*}; \
271- if $(call dockerfile_arch_is_excluded,$*); then \
272- echo "Skipping $$variant_name variant for linux-$* (excluded by DOCKERFILE_ARCH_EXCLUSIONS)"; \
273- continue; \
274- fi; \
275253 distroless_arch="$*"; \
276254 if [ "$*" = "armv7" ]; then \
277255 distroless_arch="arm"; \
@@ -306,14 +284,6 @@ $(PUBLISH_DOCKER_ARCHS): common-docker-publish-%:
306284 @for variant in $(DOCKERFILE_VARIANTS_WITH_NAMES); do \
307285 dockerfile=$${variant#*:}; \
308286 variant_name=$${variant%%:*}; \
309- if $(call dockerfile_arch_is_excluded,$*); then \
310- echo "Skipping push for $$variant_name variant on linux-$* (excluded by DOCKERFILE_ARCH_EXCLUSIONS)"; \
311- continue; \
312- fi; \
313- if $(call registry_arch_is_excluded,$*); then \
314- echo "Skipping push for $$variant_name variant on linux-$* to $(DOCKER_REPO) (excluded by DOCKER_REGISTRY_ARCH_EXCLUSIONS)"; \
315- continue; \
316- fi; \
317287 if [ "$$dockerfile" != "Dockerfile" ] || [ "$$variant_name" != "default" ]; then \
318288 echo "Pushing $$variant_name variant for linux-$*"; \
319289 docker push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)-$$variant_name"; \
@@ -341,14 +311,6 @@ $(TAG_DOCKER_ARCHS): common-docker-tag-latest-%:
341311 @for variant in $(DOCKERFILE_VARIANTS_WITH_NAMES); do \
342312 dockerfile=$${variant#*:}; \
343313 variant_name=$${variant%%:*}; \
344- if $(call dockerfile_arch_is_excluded,$*); then \
345- echo "Skipping tag for $$variant_name variant on linux-$* (excluded by DOCKERFILE_ARCH_EXCLUSIONS)"; \
346- continue; \
347- fi; \
348- if $(call registry_arch_is_excluded,$*); then \
349- echo "Skipping tag for $$variant_name variant on linux-$* for $(DOCKER_REPO) (excluded by DOCKER_REGISTRY_ARCH_EXCLUSIONS)"; \
350- continue; \
351- fi; \
352314 if [ "$$dockerfile" != "Dockerfile" ] || [ "$$variant_name" != "default" ]; then \
353315 echo "Tagging $$variant_name variant for linux-$* as latest"; \
354316 docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)-$$variant_name" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:latest-$$variant_name"; \
@@ -370,14 +332,6 @@ common-docker-manifest:
370332 echo "Creating manifest for $$variant_name variant"; \
371333 refs=""; \
372334 for arch in $(DOCKER_ARCHS); do \
373- if $(call dockerfile_arch_is_excluded,$$arch); then \
374- echo " Skipping $$arch for $$variant_name (excluded by DOCKERFILE_ARCH_EXCLUSIONS)"; \
375- continue; \
376- fi; \
377- if $(call registry_arch_is_excluded,$$arch); then \
378- echo " Skipping $$arch for $$variant_name on $(DOCKER_REPO) (excluded by DOCKER_REGISTRY_ARCH_EXCLUSIONS)"; \
379- continue; \
380- fi; \
381335 refs="$$refs $(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$$arch:$(SANITIZED_DOCKER_IMAGE_TAG)-$$variant_name"; \
382336 done; \
383337 if [ -z "$$refs" ]; then \
@@ -391,14 +345,6 @@ common-docker-manifest:
391345 echo "Creating default variant ($$variant_name) manifest"; \
392346 refs=""; \
393347 for arch in $(DOCKER_ARCHS); do \
394- if $(call dockerfile_arch_is_excluded,$$arch); then \
395- echo " Skipping $$arch for default variant (excluded by DOCKERFILE_ARCH_EXCLUSIONS)"; \
396- continue; \
397- fi; \
398- if $(call registry_arch_is_excluded,$$arch); then \
399- echo " Skipping $$arch for default variant on $(DOCKER_REPO) (excluded by DOCKER_REGISTRY_ARCH_EXCLUSIONS)"; \
400- continue; \
401- fi; \
402348 refs="$$refs $(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$$arch:$(SANITIZED_DOCKER_IMAGE_TAG)"; \
403349 done; \
404350 if [ -z "$$refs" ]; then \
@@ -413,14 +359,6 @@ common-docker-manifest:
413359 echo "Creating manifest for $$variant_name variant version tag"; \
414360 refs=""; \
415361 for arch in $(DOCKER_ARCHS); do \
416- if $(call dockerfile_arch_is_excluded,$$arch); then \
417- echo " Skipping $$arch for $$variant_name version tag (excluded by DOCKERFILE_ARCH_EXCLUSIONS)"; \
418- continue; \
419- fi; \
420- if $(call registry_arch_is_excluded,$$arch); then \
421- echo " Skipping $$arch for $$variant_name version tag on $(DOCKER_REPO) (excluded by DOCKER_REGISTRY_ARCH_EXCLUSIONS)"; \
422- continue; \
423- fi; \
424362 refs="$$refs $(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$$arch:v$(DOCKER_MAJOR_VERSION_TAG)-$$variant_name"; \
425363 done; \
426364 if [ -z "$$refs" ]; then \
@@ -434,14 +372,6 @@ common-docker-manifest:
434372 echo "Creating default variant version tag manifest"; \
435373 refs=""; \
436374 for arch in $(DOCKER_ARCHS); do \
437- if $(call dockerfile_arch_is_excluded,$$arch); then \
438- echo " Skipping $$arch for default variant version tag (excluded by DOCKERFILE_ARCH_EXCLUSIONS)"; \
439- continue; \
440- fi; \
441- if $(call registry_arch_is_excluded,$$arch); then \
442- echo " Skipping $$arch for default variant version tag on $(DOCKER_REPO) (excluded by DOCKER_REGISTRY_ARCH_EXCLUSIONS)"; \
443- continue; \
444- fi; \
445375 refs="$$refs $(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$$arch:v$(DOCKER_MAJOR_VERSION_TAG)"; \
446376 done; \
447377 if [ -z "$$refs" ]; then \
@@ -495,9 +425,3 @@ $(1)_precheck:
495425 exit 1; \
496426 fi
497427endef
498-
499- govulncheck: install-govulncheck
500- govulncheck ./...
501-
502- install-govulncheck:
503- command -v govulncheck > /dev/null || go install golang.org/x/vuln/cmd/govulncheck@latest
0 commit comments