@@ -5,6 +5,7 @@ ARG XX_VERSION=1.2.1
55ARG OSXCROSS_VERSION=11.3-r7-debian
66ARG GOLANGCI_LINT_VERSION=v1.51.1
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
@@ -122,7 +144,8 @@ RUN --mount=type=bind,target=. \
122144 set -ex
123145 xx-go --wrap
124146 go install std
125- make build-osxkeychain build-pass PACKAGE=$PACKAGE VERSION=$(cat /tmp/.version) REVISION=$(cat /tmp/.revision) DESTDIR=/out
147+ make build-gopass build-osxkeychain build-pass PACKAGE=$PACKAGE VERSION=$(cat /tmp/.version) REVISION=$(cat /tmp/.revision) DESTDIR=/out
148+ xx-verify /out/docker-credential-gopass
126149 xx-verify /out/docker-credential-osxkeychain
127150 xx-verify /out/docker-credential-pass
128151EOT
@@ -136,7 +159,9 @@ RUN --mount=type=bind,target=. \
136159 --mount=type=bind,source=/tmp/.revision,target=/tmp/.revision,from=version <<EOT
137160 set -ex
138161 xx-go --wrap
139- make build-wincred PACKAGE=$PACKAGE VERSION=$(cat /tmp/.version) REVISION=$(cat /tmp/.revision) DESTDIR=/out
162+ make build-gopass build-wincred PACKAGE=$PACKAGE VERSION=$(cat /tmp/.version) REVISION=$(cat /tmp/.revision) DESTDIR=/out
163+ mv /out/docker-credential-gopass /out/docker-credential-gopass.exe
164+ xx-verify /out/docker-credential-gopass.exe
140165 mv /out/docker-credential-wincred /out/docker-credential-wincred.exe
141166 xx-verify /out/docker-credential-wincred.exe
142167EOT
0 commit comments