2
2
3
3
ARG GO_VERSION=1.18.5
4
4
ARG XX_VERSION=1.1.2
5
- ARG OSXCROSS_VERSION=11.3-r7-alpine
5
+ ARG OSXCROSS_VERSION=11.3-r7-debian
6
6
ARG GOLANGCI_LINT_VERSION=v1.47.3
7
+ ARG DEBIAN_FRONTEND=noninteractive
7
8
8
9
ARG PACKAGE=github.com/docker/docker-credential-helpers
9
10
@@ -13,9 +14,10 @@ FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx
13
14
# osxcross contains the MacOSX cross toolchain for xx
14
15
FROM crazymax/osxcross:${OSXCROSS_VERSION} AS osxcross
15
16
16
- FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine AS gobase
17
+ FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-bullseye AS gobase
17
18
COPY --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
19
21
ENV GOFLAGS="-mod=vendor"
20
22
ENV CGO_ENABLED="1"
21
23
WORKDIR /src
@@ -49,33 +51,38 @@ RUN --mount=type=bind,target=.,rw <<EOT
49
51
fi
50
52
EOT
51
53
52
- FROM golangci/golangci-lint:${GOLANGCI_LINT_VERSION}-alpine AS golangci-lint
54
+ FROM golangci/golangci-lint:${GOLANGCI_LINT_VERSION} AS golangci-lint
53
55
FROM 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
55
58
RUN --mount=type=bind,target=. \
56
59
--mount=type=cache,target=/root/.cache \
57
60
--mount=from=golangci-lint,source=/usr/bin/golangci-lint,target=/usr/bin/golangci-lint \
58
61
golangci-lint run ./...
59
62
60
63
FROM gobase AS base
61
64
ARG 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
63
67
64
68
FROM 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
66
71
RUN --mount=type=bind,target=. \
67
72
--mount=type=cache,target=/root/.cache \
68
73
--mount=type=cache,target=/go/pkg/mod <<EOT
69
74
set -e
70
75
cp -r .github/workflows/fixtures /root/.gnupg
71
76
gpg-connect-agent "RELOADAGENT" /bye
72
77
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
74
80
gpg-connect-agent "PRESET_PASSPHRASE 3E2D1142AA59E08E16B7E2C64BA6DDC773B1A627 -1 77697468207374757069642070617373706872617365" /bye
75
81
gpg-connect-agent "KEYINFO 3E2D1142AA59E08E16B7E2C64BA6DDC773B1A627" /bye
76
82
gpg-connect-agent "PRESET_PASSPHRASE BA83FC8947213477F28ADC019F6564A956456163 -1 77697468207374757069642070617373706872617365" /bye
77
83
gpg-connect-agent "KEYINFO BA83FC8947213477F28ADC019F6564A956456163" /bye
78
84
pass init 7D851EB72D73BDA0
85
+ gpg -k
79
86
80
87
mkdir /out
81
88
xx-go test -short -v -coverprofile=/out/coverage.txt -covermode=atomic ./...
0 commit comments