22
33ARG GO_VERSION=1.18.5
44ARG XX_VERSION=1.1.2
5- ARG OSXCROSS_VERSION=11.3-r7-alpine
5+ ARG OSXCROSS_VERSION=11.3-r7-debian
66ARG GOLANGCI_LINT_VERSION=v1.47.3
7+ ARG DEBIAN_FRONTEND=noninteractive
78
89ARG PACKAGE=github.com/docker/docker-credential-helpers
910
@@ -13,9 +14,10 @@ FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx
1314# osxcross contains the MacOSX cross toolchain for xx
1415FROM crazymax/osxcross:${OSXCROSS_VERSION} AS osxcross
1516
16- FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine AS gobase
17+ FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-bullseye AS gobase
1718COPY --from=xx / /
18- RUN apk add --no-cache clang file git lld llvm make pkgconf rsync
19+ ARG DEBIAN_FRONTEND
20+ RUN apt-get update && apt-get install -y --no-install-recommends clang dpkg-dev file git lld llvm make pkg-config rsync
1921ENV GOFLAGS="-mod=vendor"
2022ENV CGO_ENABLED="1"
2123WORKDIR /src
@@ -49,33 +51,38 @@ RUN --mount=type=bind,target=.,rw <<EOT
4951 fi
5052EOT
5153
52- FROM golangci/golangci-lint:${GOLANGCI_LINT_VERSION}-alpine AS golangci-lint
54+ FROM golangci/golangci-lint:${GOLANGCI_LINT_VERSION} AS golangci-lint
5355FROM gobase AS lint
54- RUN apk add musl-dev gcc libsecret-dev pass
56+ ARG DEBIAN_FRONTEND
57+ RUN apt-get install -y binutils gcc libc6-dev libgcc-10-dev libsecret-1-dev pkg-config
5558RUN --mount=type=bind,target=. \
5659 --mount=type=cache,target=/root/.cache \
5760 --mount=from=golangci-lint,source=/usr/bin/golangci-lint,target=/usr/bin/golangci-lint \
5861 golangci-lint run ./...
5962
6063FROM gobase AS base
6164ARG TARGETPLATFORM
62- RUN xx-apk add musl-dev gcc libsecret-dev pass
65+ ARG DEBIAN_FRONTEND
66+ RUN xx-apt-get install -y binutils gcc libc6-dev libgcc-10-dev libsecret-1-dev pkg-config
6367
6468FROM base AS test
65- RUN xx-apk add gnome-keyring gpg-agent gnupg-gpgconf pass
69+ ARG DEBIAN_FRONTEND
70+ RUN xx-apt-get install -y dbus-x11 gnome-keyring gpg-agent gpgconf libsecret-1-dev pass
6671RUN --mount=type=bind,target=. \
6772 --mount=type=cache,target=/root/.cache \
6873 --mount=type=cache,target=/go/pkg/mod <<EOT
6974 set -e
7075 cp -r .github/workflows/fixtures /root/.gnupg
7176 gpg-connect-agent "RELOADAGENT" /bye
7277 gpg --import --batch --yes /root/.gnupg/7D851EB72D73BDA0.key
73- echo -e "trust\n 5\n y" | gpg --batch --no-tty --command-fd 0 --edit-key 7D851EB72D73BDA0
78+ gpg --update-trustdb
79+ echo '5\n y\n ' | gpg --command-fd 0 --no-tty --edit-key 7D851EB72D73BDA0 trust
7480 gpg-connect-agent "PRESET_PASSPHRASE 3E2D1142AA59E08E16B7E2C64BA6DDC773B1A627 -1 77697468207374757069642070617373706872617365" /bye
7581 gpg-connect-agent "KEYINFO 3E2D1142AA59E08E16B7E2C64BA6DDC773B1A627" /bye
7682 gpg-connect-agent "PRESET_PASSPHRASE BA83FC8947213477F28ADC019F6564A956456163 -1 77697468207374757069642070617373706872617365" /bye
7783 gpg-connect-agent "KEYINFO BA83FC8947213477F28ADC019F6564A956456163" /bye
7884 pass init 7D851EB72D73BDA0
85+ gpg -k
7986
8087 mkdir /out
8188 xx-go test -short -v -coverprofile=/out/coverage.txt -covermode=atomic ./...
0 commit comments