@@ -5,6 +5,7 @@ ARG XX_VERSION=1.4.0
55ARG OSXCROSS_VERSION=11.3-r7-debian
66ARG GOLANGCI_LINT_VERSION=v1.55.2
77ARG DEBIAN_FRONTEND=noninteractive
8+ ARG GOPASS_VERSION=v1.15.5
89
910ARG PACKAGE=github.com/docker/docker-credential-helpers
1011
@@ -68,12 +69,19 @@ RUN xx-apt-get install -y binutils gcc libc6-dev libgcc-10-dev libsecret-1-dev p
6869
6970FROM base AS test
7071ARG DEBIAN_FRONTEND
72+ ARG GOPASS_VERSION
7173RUN xx-apt-get install -y dbus-x11 gnome-keyring gpg-agent gpgconf libsecret-1-dev pass
74+ RUN --mount=type=bind,target=. \
75+ --mount=type=cache,target=/root/.cache \
76+ --mount=type=cache,target=/go/pkg/mod \
77+ GOFLAGS='' go install github.com/gopasspw/gopass@${GOPASS_VERSION}
7278RUN --mount=type=bind,target=. \
7379 --mount=type=cache,target=/root/.cache \
7480 --mount=type=cache,target=/go/pkg/mod <<EOT
7581 set -e
82+
7683 cp -r .github/workflows/fixtures /root/.gnupg
84+ chmod 0400 /root/.gnupg
7785 gpg-connect-agent "RELOADAGENT" /bye
7886 gpg --import --batch --yes /root/.gnupg/7D851EB72D73BDA0.key
7987 gpg --update-trustdb
@@ -82,7 +90,20 @@ RUN --mount=type=bind,target=. \
8290 gpg-connect-agent "KEYINFO 3E2D1142AA59E08E16B7E2C64BA6DDC773B1A627" /bye
8391 gpg-connect-agent "PRESET_PASSPHRASE BA83FC8947213477F28ADC019F6564A956456163 -1 77697468207374757069642070617373706872617365" /bye
8492 gpg-connect-agent "KEYINFO BA83FC8947213477F28ADC019F6564A956456163" /bye
93+
94+ # initialize password store for `pass`
8595 pass init 7D851EB72D73BDA0
96+
97+ # initialize password store for `gopass`
98+ gopass config mounts.path /root/.gopass-password-store 1>/dev/null
99+ gopass config core.autopush false 1>/dev/null
100+ gopass config core.autosync false 1>/dev/null
101+ gopass config core.exportkeys false 1>/dev/null
102+ gopass config core.notifications false 1>/dev/null
103+ gopass config core.color false 1>/dev/null
104+ gopass config core.nopager true 1>/dev/null
105+ gopass init --crypto gpgcli --storage fs 7D851EB72D73BDA0
106+
86107 gpg -k
87108
88109 mkdir /out
@@ -106,7 +127,8 @@ RUN --mount=type=bind,target=. \
106127 --mount=type=bind,source=/tmp/.revision,target=/tmp/.revision,from=version <<EOT
107128 set -ex
108129 xx-go --wrap
109- make build-pass build-secretservice PACKAGE=$PACKAGE VERSION=$(cat /tmp/.version) REVISION=$(cat /tmp/.revision) DESTDIR=/out
130+ make build-gopass build-pass build-secretservice PACKAGE=$PACKAGE VERSION=$(cat /tmp/.version) REVISION=$(cat /tmp/.revision) DESTDIR=/out
131+ xx-verify /out/docker-credential-gopass
110132 xx-verify /out/docker-credential-pass
111133 xx-verify /out/docker-credential-secretservice
112134EOT
@@ -123,7 +145,8 @@ RUN --mount=type=bind,target=. \
123145 export MACOSX_VERSION_MIN=$(make print-MACOSX_DEPLOYMENT_TARGET)
124146 xx-go --wrap
125147 go install std
126- make build-osxkeychain build-pass PACKAGE=$PACKAGE VERSION=$(cat /tmp/.version) REVISION=$(cat /tmp/.revision) DESTDIR=/out
148+ make build-gopass build-osxkeychain build-pass PACKAGE=$PACKAGE VERSION=$(cat /tmp/.version) REVISION=$(cat /tmp/.revision) DESTDIR=/out
149+ xx-verify /out/docker-credential-gopass
127150 xx-verify /out/docker-credential-osxkeychain
128151 xx-verify /out/docker-credential-pass
129152EOT
@@ -137,7 +160,9 @@ RUN --mount=type=bind,target=. \
137160 --mount=type=bind,source=/tmp/.revision,target=/tmp/.revision,from=version <<EOT
138161 set -ex
139162 xx-go --wrap
140- make build-wincred PACKAGE=$PACKAGE VERSION=$(cat /tmp/.version) REVISION=$(cat /tmp/.revision) DESTDIR=/out
163+ make build-gopass build-wincred PACKAGE=$PACKAGE VERSION=$(cat /tmp/.version) REVISION=$(cat /tmp/.revision) DESTDIR=/out
164+ mv /out/docker-credential-gopass /out/docker-credential-gopass.exe
165+ xx-verify /out/docker-credential-gopass.exe
141166 mv /out/docker-credential-wincred /out/docker-credential-wincred.exe
142167 xx-verify /out/docker-credential-wincred.exe
143168EOT
0 commit comments