* Bump promu to latest release.
* Update actions/checkout.
* Update Go to 1.26.x for golangci-lint in synced repos.
* Improve golangci-lint push filter for synced repos.
Signed-off-by: SuperQ <superq@gmail.com>
Fixes#18123
Introduces DOCKER_REGISTRY_ARCH_EXCLUSIONS to exclude specific
architectures from specific registries. This allows riscv64 to be
excluded from quay.io (which returns unauthorized) while still
supporting it on docker.io.
The new registry_arch_is_excluded function extracts the registry
from DOCKER_REPO and checks if registry:arch is in the exclusion
list. This is applied during push, tag, and manifest creation steps.
This fix ensures s390x and other architectures are included in
quay.io manifests even when riscv64 fails to push.
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
The distroless Dockerfile was using a hardcoded SHA256 digest that
referenced only the amd64 image, preventing builds for other
architectures. This caused the main-distroless tag to only publish
amd64 images while the regular main tag had all 5 architectures.
Changes:
- Use architecture-specific image tags (nonroot-${DISTROLESS_ARCH})
instead of SHA256 digest to enable multi-arch manifest resolution
- Add DISTROLESS_ARCH build arg to handle architecture name mapping
(armv7 -> arm) between Prometheus and distroless conventions
- Move ARG declarations before FROM to support variable substitution
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
In commit 74775d732 "Add major version tag (#8026)" from 2020, the
docker-tag-latest target was updated to create major version tags
(v2, v3, etc.) but these tags were never actually pushed to the
registry. They existed locally only after tagging but were never
published.
This commit fixes the issue by:
- Adding logic to docker-publish to push major version tags when
DOCKER_IMAGE_TAG="latest" (triggered by promci during releases)
- Adding logic to docker-manifest to create major version manifests
when DOCKER_IMAGE_TAG="latest"
Pre-release filtering is handled at the promci level, where the regex
check ^v[0-9]+(\.[0-9]+){2}$ already ensures only stable releases
trigger the "latest" tagging workflow.
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
With golangci-lint v2, it now has "formatters" that can be configured.
Add `golangci-lint fmt` to the `make format` in Makefile.common.
* Enable goimports formatter.
Signed-off-by: SuperQ <superq@gmail.com>
Use `common-` prefix for `make proto` so downstream projects like
client_golang can implement their own `make proto`.
Signed-off-by: SuperQ <superq@gmail.com>
update golangci-lint and enable more lntiers
This updates golangci-lint to v1.63.4 and enables linters
`nilnesserr` and `exptostd`
Signed-off-by: dongjiang <dongjiang1989@126.com>
---------
Signed-off-by: dongjiang <dongjiang1989@126.com>
This change introduces a new variable, SANITIZED_DOCKER_IMAGE_TAG, which
replaces any '+' characters in the original DOCKER_IMAGE_TAG with '_'
characters. This ensures better compatibility with semver standards,
particularly when using metadata in version tags.
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
* Update go to 1.19, set min version to 1.18
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
* Update golangci-lint
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>