Skip to content

Commit 931eb3c

Browse files
authored
Merge pull request #1290 from crazy-max/lint-multi
enable golangci-lint for supported platforms
2 parents 4400810 + d519ef2 commit 931eb3c

File tree

4 files changed

+29
-4
lines changed

4 files changed

+29
-4
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ jobs:
4545
4646
validate:
4747
runs-on: ubuntu-latest
48+
env:
49+
GOLANGCI_LINT_MULTIPLATFORM: 1
4850
needs:
4951
- prepare
5052
strategy:

.golangci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
run:
2-
timeout: 10m
2+
timeout: 30m
33
build-tags:
44
- containers_image_openpgp
55
- exclude_graphdriver_btrfs

docker-bake.hcl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ variable "GITHUB_REF" {
1212
default = ""
1313
}
1414

15+
variable "GOLANGCI_LINT_MULTIPLATFORM" {
16+
default = null
17+
}
18+
1519
target "_common" {
1620
args = {
1721
GO_VERSION = GO_VERSION
@@ -131,6 +135,20 @@ target "lint" {
131135
dockerfile = "./hack/lint.Dockerfile"
132136
target = "lint"
133137
output = ["type=cacheonly"]
138+
platforms = GOLANGCI_LINT_MULTIPLATFORM != null ? [
139+
"darwin/amd64",
140+
"darwin/arm64",
141+
"linux/amd64",
142+
"linux/arm/v5",
143+
"linux/arm/v6",
144+
"linux/arm/v7",
145+
"linux/arm64",
146+
"linux/ppc64le",
147+
"linux/riscv64",
148+
"linux/s390x",
149+
"windows/amd64",
150+
"windows/arm64"
151+
] : []
134152
}
135153

136154
target "vendor-validate" {

hack/lint.Dockerfile

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
# syntax=docker/dockerfile:1
22

33
ARG GO_VERSION="1.23"
4+
ARG XX_VERSION="1.6.1"
45
ARG ALPINE_VERSION="3.21"
56
ARG GOLANGCI_LINT_VERSION="v1.62"
67

7-
FROM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS base
8+
FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx
9+
FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS base
810
ENV GOFLAGS="-buildvcs=false"
911
RUN apk add --no-cache gcc linux-headers musl-dev
12+
COPY --from=xx --link / /
1013
WORKDIR /src
1114

12-
FROM golangci/golangci-lint:${GOLANGCI_LINT_VERSION}-alpine AS golangci-lint
15+
FROM --platform=$BUILDPLATFORM golangci/golangci-lint:${GOLANGCI_LINT_VERSION}-alpine AS golangci-lint
1316
FROM base AS lint
17+
ARG TARGETPLATFORM
1418
RUN --mount=type=bind,target=. \
15-
--mount=type=cache,target=/root/.cache \
19+
--mount=type=cache,target=/root/.cache,id=lint-cache-$TARGETPLATFORM \
1620
--mount=from=golangci-lint,source=/usr/bin/golangci-lint,target=/usr/bin/golangci-lint \
21+
xx-go --wrap && \
1722
golangci-lint run ./...

0 commit comments

Comments
 (0)