From ebdcd31aba04f8420330fc26efe9797df5e9fcc3 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 22 Mar 2022 18:45:53 +0100 Subject: [PATCH 1/4] update to go 1.18 Signed-off-by: CrazyMax --- .github/workflows/build.yml | 2 +- Dockerfile | 2 +- examples/buildkit0/buildkit.go | 2 +- examples/buildkit1/buildkit.go | 2 +- examples/buildkit2/buildkit.go | 2 +- examples/buildkit3/buildkit.go | 2 +- examples/buildkit4/buildkit.go | 2 +- examples/nested-llb/main.go | 2 +- frontend/dockerfile/cmd/dockerfile-frontend/Dockerfile | 2 +- hack/dockerfiles/generated-files.Dockerfile | 2 +- hack/dockerfiles/lint.Dockerfile | 2 +- hack/dockerfiles/vendor.Dockerfile | 2 +- util/archutil/Dockerfile | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 286ededcfb88..5487a76602dc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -140,7 +140,7 @@ jobs: name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.17 + go-version: 1.18 - name: Cache Go modules uses: actions/cache@v2 diff --git a/Dockerfile b/Dockerfile index a5e565fcbfa5..48bf8f3f4bb1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,7 @@ RUN apk add --no-cache git # xx is a helper for cross-compilation FROM --platform=$BUILDPLATFORM tonistiigi/xx@sha256:1e96844fadaa2f9aea021b2b05299bc02fe4c39a92d8e735b93e8e2b15610128 AS xx -FROM --platform=$BUILDPLATFORM golang:1.17-alpine AS golatest +FROM --platform=$BUILDPLATFORM golang:1.18-alpine AS golatest # gobuild is base stage for compiling go/cgo FROM golatest AS gobuild-base diff --git a/examples/buildkit0/buildkit.go b/examples/buildkit0/buildkit.go index 78f988d8584d..1a524347427d 100644 --- a/examples/buildkit0/buildkit.go +++ b/examples/buildkit0/buildkit.go @@ -33,7 +33,7 @@ func main() { } func goBuildBase() llb.State { - goAlpine := llb.Image("docker.io/library/golang:1.17-alpine") + goAlpine := llb.Image("docker.io/library/golang:1.18-alpine") return goAlpine. AddEnv("PATH", "/usr/local/go/bin:"+system.DefaultPathEnvUnix). AddEnv("GOPATH", "/go"). diff --git a/examples/buildkit1/buildkit.go b/examples/buildkit1/buildkit.go index 98793d0ab6e2..9bbee5f84c21 100644 --- a/examples/buildkit1/buildkit.go +++ b/examples/buildkit1/buildkit.go @@ -33,7 +33,7 @@ func main() { } func goBuildBase() llb.State { - goAlpine := llb.Image("docker.io/library/golang:1.17-alpine") + goAlpine := llb.Image("docker.io/library/golang:1.18-alpine") return goAlpine. AddEnv("PATH", "/usr/local/go/bin:"+system.DefaultPathEnvUnix). AddEnv("GOPATH", "/go"). diff --git a/examples/buildkit2/buildkit.go b/examples/buildkit2/buildkit.go index 7a88562cf72e..fed66079783f 100644 --- a/examples/buildkit2/buildkit.go +++ b/examples/buildkit2/buildkit.go @@ -33,7 +33,7 @@ func main() { } func goBuildBase() llb.State { - goAlpine := llb.Image("docker.io/library/golang:1.17-alpine") + goAlpine := llb.Image("docker.io/library/golang:1.18-alpine") return goAlpine. AddEnv("PATH", "/usr/local/go/bin:"+system.DefaultPathEnvUnix). AddEnv("GOPATH", "/go"). diff --git a/examples/buildkit3/buildkit.go b/examples/buildkit3/buildkit.go index fa985f18eb84..ac1c18ecdc07 100644 --- a/examples/buildkit3/buildkit.go +++ b/examples/buildkit3/buildkit.go @@ -34,7 +34,7 @@ func main() { } func goBuildBase() llb.State { - goAlpine := llb.Image("docker.io/library/golang:1.17-alpine") + goAlpine := llb.Image("docker.io/library/golang:1.18-alpine") return goAlpine. AddEnv("PATH", "/usr/local/go/bin:"+system.DefaultPathEnvUnix). AddEnv("GOPATH", "/go"). diff --git a/examples/buildkit4/buildkit.go b/examples/buildkit4/buildkit.go index c20f13ea0c05..399a7ac5a07e 100644 --- a/examples/buildkit4/buildkit.go +++ b/examples/buildkit4/buildkit.go @@ -37,7 +37,7 @@ func main() { } func goBuildBase() llb.State { - goAlpine := llb.Image("docker.io/library/golang:1.17-alpine") + goAlpine := llb.Image("docker.io/library/golang:1.18-alpine") return goAlpine. AddEnv("PATH", "/usr/local/go/bin:"+system.DefaultPathEnvUnix). AddEnv("GOPATH", "/go"). diff --git a/examples/nested-llb/main.go b/examples/nested-llb/main.go index 74eb58864af1..180282e6eb19 100644 --- a/examples/nested-llb/main.go +++ b/examples/nested-llb/main.go @@ -32,7 +32,7 @@ func main() { } func goBuildBase() llb.State { - goAlpine := llb.Image("docker.io/library/golang:1.17-alpine") + goAlpine := llb.Image("docker.io/library/golang:1.18-alpine") return goAlpine. AddEnv("PATH", "/usr/local/go/bin:"+system.DefaultPathEnvUnix). AddEnv("GOPATH", "/go"). diff --git a/frontend/dockerfile/cmd/dockerfile-frontend/Dockerfile b/frontend/dockerfile/cmd/dockerfile-frontend/Dockerfile index 7f181948816b..6c4428a06533 100644 --- a/frontend/dockerfile/cmd/dockerfile-frontend/Dockerfile +++ b/frontend/dockerfile/cmd/dockerfile-frontend/Dockerfile @@ -3,7 +3,7 @@ # xx is a helper for cross-compilation FROM --platform=$BUILDPLATFORM tonistiigi/xx:golang@sha256:810dc54d5144f133a218e88e319184bf8b9ce01d37d46ddb37573e90decd9eef AS xx -FROM --platform=$BUILDPLATFORM golang:1.17-alpine AS base +FROM --platform=$BUILDPLATFORM golang:1.18-alpine AS base RUN apk add git bash COPY --from=xx / / WORKDIR /src diff --git a/hack/dockerfiles/generated-files.Dockerfile b/hack/dockerfiles/generated-files.Dockerfile index a9f6f0bb9212..0bc0897e7ebc 100644 --- a/hack/dockerfiles/generated-files.Dockerfile +++ b/hack/dockerfiles/generated-files.Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile-upstream:master # protoc is dynamically linked to glibc to can't use golang:1.10-alpine -FROM golang:1.17-buster AS gobuild-base +FROM golang:1.18-buster AS gobuild-base RUN apt-get update && apt-get --no-install-recommends install -y \ unzip \ diff --git a/hack/dockerfiles/lint.Dockerfile b/hack/dockerfiles/lint.Dockerfile index 62c3c290b51e..7628cb270368 100644 --- a/hack/dockerfiles/lint.Dockerfile +++ b/hack/dockerfiles/lint.Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile-upstream:master -FROM golang:1.17-alpine +FROM golang:1.18-alpine RUN apk add --no-cache gcc musl-dev yamllint RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.43.0 WORKDIR /go/src/github.com/moby/buildkit diff --git a/hack/dockerfiles/vendor.Dockerfile b/hack/dockerfiles/vendor.Dockerfile index a0d0607e4243..4387099d6895 100644 --- a/hack/dockerfiles/vendor.Dockerfile +++ b/hack/dockerfiles/vendor.Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile-upstream:master -FROM golang:1.17-alpine AS vendored +FROM golang:1.18-alpine AS vendored RUN apk add --no-cache git WORKDIR /src RUN --mount=target=/src,rw \ diff --git a/util/archutil/Dockerfile b/util/archutil/Dockerfile index 6ac641f06dcb..985d980bf165 100644 --- a/util/archutil/Dockerfile +++ b/util/archutil/Dockerfile @@ -48,7 +48,7 @@ FROM base AS exit-mips64 COPY fixtures/exit.mips64.s . RUN mips64-linux-gnuabi64-as --noexecstack -o exit.o exit.mips64.s && mips64-linux-gnuabi64-ld -o exit -s exit.o -FROM golang:1.17-alpine AS generate +FROM golang:1.18-alpine AS generate WORKDIR /src COPY --from=exit-amd64 /src/exit amd64 COPY --from=exit-386 /src/exit 386 From 6676f306e029b4fcb15020660d566fc32e6f82e2 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 22 Mar 2022 10:30:18 +0100 Subject: [PATCH 2/4] hack/dockerfiles: upgrade golangci-lint version to v1.45.0 Signed-off-by: CrazyMax --- hack/dockerfiles/lint.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/dockerfiles/lint.Dockerfile b/hack/dockerfiles/lint.Dockerfile index 7628cb270368..9de6fbfc5b50 100644 --- a/hack/dockerfiles/lint.Dockerfile +++ b/hack/dockerfiles/lint.Dockerfile @@ -2,7 +2,7 @@ FROM golang:1.18-alpine RUN apk add --no-cache gcc musl-dev yamllint -RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.43.0 +RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.45.0 WORKDIR /go/src/github.com/moby/buildkit RUN --mount=target=/go/src/github.com/moby/buildkit --mount=target=/root/.cache,type=cache \ GOARCH=amd64 golangci-lint run && \ From a633fa469c15a748347a78844eeaa29fed7f82d9 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 22 Mar 2022 10:37:34 +0100 Subject: [PATCH 3/4] dockerfile: disable go module to build containerd Signed-off-by: CrazyMax --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 48bf8f3f4bb1..039f5c84f830 100644 --- a/Dockerfile +++ b/Dockerfile @@ -123,7 +123,7 @@ RUN git clone https://github.com/containerd/containerd.git containerd FROM gobuild-base AS containerd-base WORKDIR /go/src/github.com/containerd/containerd ARG TARGETPLATFORM -ENV CGO_ENABLED=1 BUILDTAGS=no_btrfs +ENV CGO_ENABLED=1 BUILDTAGS=no_btrfs GO111MODULE=off RUN xx-apk add musl-dev gcc && xx-go --wrap FROM containerd-base AS containerd From 8679e2364763a59daa8619739acabd5b3ca93577 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 25 Mar 2022 09:06:27 +0100 Subject: [PATCH 4/4] lint: fix issues with go 1.18 Signed-off-by: CrazyMax --- frontend/dockerfile/instructions/parse.go | 2 +- hack/dockerfiles/lint.Dockerfile | 1 + solver/testutil/cachestorage_testsuite.go | 2 +- util/resolver/retryhandler/retry.go | 2 +- util/testutil/integration/run.go | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/dockerfile/instructions/parse.go b/frontend/dockerfile/instructions/parse.go index d3b7326ce250..a04e9b9d4f48 100644 --- a/frontend/dockerfile/instructions/parse.go +++ b/frontend/dockerfile/instructions/parse.go @@ -725,7 +725,7 @@ func errExactlyOneArgument(command string) error { } func errNoDestinationArgument(command string) error { - return errors.Errorf("%s requires at least two arguments, but only one was provided. Destination could not be determined.", command) + return errors.Errorf("%s requires at least two arguments, but only one was provided. Destination could not be determined", command) } func errBadHeredoc(command string, option string) error { diff --git a/hack/dockerfiles/lint.Dockerfile b/hack/dockerfiles/lint.Dockerfile index 9de6fbfc5b50..06b8fab90540 100644 --- a/hack/dockerfiles/lint.Dockerfile +++ b/hack/dockerfiles/lint.Dockerfile @@ -1,6 +1,7 @@ # syntax=docker/dockerfile-upstream:master FROM golang:1.18-alpine +ENV GOFLAGS="-buildvcs=false" RUN apk add --no-cache gcc musl-dev yamllint RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.45.0 WORKDIR /go/src/github.com/moby/buildkit diff --git a/solver/testutil/cachestorage_testsuite.go b/solver/testutil/cachestorage_testsuite.go index e883ddd2a6eb..10abee7e7c61 100644 --- a/solver/testutil/cachestorage_testsuite.go +++ b/solver/testutil/cachestorage_testsuite.go @@ -387,7 +387,7 @@ func testWalkIDsByResult(t *testing.T, st solver.CacheKeyStorage) { func getFunctionName(i interface{}) string { fullname := runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name() dot := strings.LastIndex(fullname, ".") + 1 - return strings.Title(fullname[dot:]) + return strings.Title(fullname[dot:]) //nolint:staticcheck // ignoring "SA1019: strings.Title is deprecated", as for our use we don't need full unicode support } func rootKey(dgst digest.Digest, output solver.Index) digest.Digest { diff --git a/util/resolver/retryhandler/retry.go b/util/resolver/retryhandler/retry.go index 554076b07b41..255485dffec0 100644 --- a/util/resolver/retryhandler/retry.go +++ b/util/resolver/retryhandler/retry.go @@ -60,7 +60,7 @@ func retryError(err error) bool { return true } // catches TLS timeout or other network-related temporary errors - if ne, ok := errors.Cause(err).(net.Error); ok && ne.Temporary() { + if ne, ok := errors.Cause(err).(net.Error); ok && ne.Temporary() { //nolint:staticcheck // ignoring "SA1019: Temporary is deprecated", continue to propagate net.Error through the "temporary" status return true } // https://github.com/containerd/containerd/pull/4724 diff --git a/util/testutil/integration/run.go b/util/testutil/integration/run.go index b54b21e77327..23207ca5d054 100644 --- a/util/testutil/integration/run.go +++ b/util/testutil/integration/run.go @@ -210,7 +210,7 @@ func Run(t *testing.T, testCases []Test, opt ...TestOpt) { func getFunctionName(i interface{}) string { fullname := runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name() dot := strings.LastIndex(fullname, ".") + 1 - return strings.Title(fullname[dot:]) + return strings.Title(fullname[dot:]) //nolint:staticcheck // ignoring "SA1019: strings.Title is deprecated", as for our use we don't need full unicode support } var localImageCache map[string]map[string]struct{}