Skip to content

Commit 7efaffb

Browse files
author
Vincent Demeester
authored
Merge pull request #81 from tych0/pass-backend-and-package
Add `pass` backend and debian packaging for both -secretservice and -pass backends
2 parents 6338c06 + 86c94d3 commit 7efaffb

13 files changed

+415
-1
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
apt:
1616
packages:
1717
- libsecret-1-dev
18+
- pass
1819
before_script:
1920
- "export DISPLAY=:99.0"
2021
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sh ci/before_script_linux.sh; fi

Makefile

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: all deps osxkeychain secretservice test validate wincred
1+
.PHONY: all deps osxkeychain secretservice test validate wincred pass deb
22

33
TRAVIS_OS_NAME ?= linux
44
VERSION := $(shell grep 'const Version' credentials/version.go | awk -F'"' '{ print $$2 }')
@@ -30,6 +30,10 @@ secretservice:
3030
mkdir bin
3131
go build -o bin/docker-credential-secretservice secretservice/cmd/main_linux.go
3232

33+
pass:
34+
mkdir -p bin
35+
go build -o bin/docker-credential-pass pass/cmd/main_linux.go
36+
3337
wincred:
3438
mkdir bin
3539
go build -o bin/docker-credential-wincred.exe wincred/cmd/main_windows.go
@@ -64,3 +68,15 @@ fmt:
6468
gofmt -s -l `ls **/*.go | grep -v vendor`
6569

6670
validate: vet lint fmt
71+
72+
73+
BUILDIMG:=docker-credential-secretservice-$(VERSION)
74+
deb:
75+
mkdir -p release
76+
docker build -f deb/Dockerfile \
77+
--build-arg VERSION=$(VERSION) \
78+
--build-arg DISTRO=xenial \
79+
--tag $(BUILDIMG) \
80+
.
81+
docker run --rm --net=none $(BUILDIMG) tar cf - /release | tar xf -
82+
docker rmi $(BUILDIMG)

ci/before_script_linux.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,21 @@ set -ex
22

33
sh -e /etc/init.d/xvfb start
44
sleep 3 # give xvfb some time to start
5+
6+
# init key for pass
7+
gpg --batch --gen-key <<-EOF
8+
%echo Generating a standard key
9+
Key-Type: DSA
10+
Key-Length: 1024
11+
Subkey-Type: ELG-E
12+
Subkey-Length: 1024
13+
Name-Real: Meshuggah Rocks
14+
Name-Email: [email protected]
15+
Expire-Date: 0
16+
# Do a commit here, so that we can later print "done" :-)
17+
%commit
18+
%echo done
19+
EOF
20+
21+
key=$(gpg --no-auto-check-trustdb --list-secret-keys | grep ^sec | cut -d/ -f2 | cut -d" " -f1)
22+
pass init $key

deb/Dockerfile

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
FROM ubuntu:xenial
2+
3+
ARG VERSION
4+
ARG DISTRO
5+
6+
RUN apt-get update && apt-get install -yy debhelper dh-make golang-go libsecret-1-dev
7+
RUN mkdir -p /build
8+
9+
WORKDIR /build
10+
ENV GOPATH /build
11+
12+
COPY Makefile .
13+
COPY credentials credentials
14+
COPY secretservice secretservice
15+
COPY pass pass
16+
COPY deb/debian ./debian
17+
COPY deb/build-deb .
18+
19+
RUN /build/build-deb ${VERSION} ${DISTRO}

deb/build-deb

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/usr/bin/env bash
2+
set -x
3+
set -e
4+
5+
version=$1
6+
distro=$2
7+
8+
maintainer=$(awk -F ': ' '$1 == "Maintainer" { print $2; exit }' debian/control)
9+
10+
cat > "debian/changelog" <<-EOF
11+
docker-credential-helpers ($version) $DISTRO; urgency=low
12+
13+
* New upstream version
14+
15+
-- $maintainer $(date --rfc-2822)
16+
EOF
17+
18+
mkdir -p src/github.com/docker/docker-credential-helpers
19+
ln -s /build/credentials /build/src/github.com/docker/docker-credential-helpers/credentials
20+
ln -s /build/secretservice /build/src/github.com/docker/docker-credential-helpers/secretservice
21+
ln -s /build/pass /build/src/github.com/docker/docker-credential-helpers/pass
22+
23+
dpkg-buildpackage -us -uc
24+
25+
mkdir /release
26+
mv /docker-credential-* /release

deb/debian/compat

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
9

deb/debian/control

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
Source: docker-credential-helpers
2+
Section: admin
3+
Priority: optional
4+
Maintainer: Docker <[email protected]>
5+
Homepage: https://dockerproject.org
6+
Standards-Version: 3.9.6
7+
Vcs-Browser: https://github.com/docker/docker-credential-helpers
8+
Vcs-Git: git://github.com/docker/docker-credential-helpers.git
9+
Build-Depends: debhelper
10+
, dh-make
11+
, libsecret-1-dev
12+
13+
Package: docker-credential-secretservice
14+
Architecture: any
15+
Depends: libsecret-1-0
16+
, ${misc:Depends}
17+
Description: docker-credential-secretservice is a credential helper backend
18+
which uses libsecret to keep Docker credentials safe.
19+
20+
Package: docker-credential-pass
21+
Architecture: any
22+
Depends: pass
23+
, ${misc:Depends}
24+
Description: docker-credential-secretservice is a credential helper backend
25+
which uses the pass utility to keep Docker credentials safe.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
debian/tmp/usr/bin/docker-credential-pass
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
debian/tmp/usr/bin/docker-credential-secretservice

deb/debian/rules

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/usr/bin/make -f
2+
3+
DESTDIR := $(CURDIR)/debian/tmp
4+
5+
override_dh_auto_build:
6+
make secretservice pass
7+
8+
override_dh_auto_install:
9+
install -D bin/docker-credential-secretservice $(DESTDIR)/usr/bin/docker-credential-secretservice
10+
install -D bin/docker-credential-pass $(DESTDIR)/usr/bin/docker-credential-pass
11+
12+
%:
13+
dh $@
14+
15+
override_dh_auto_test:
16+
# no tests
17+

0 commit comments

Comments
 (0)