| .PHONY: all deps osxkeychain secretservice test validate wincred pass deb |
| |
| TRAVIS_OS_NAME ?= linux |
| VERSION := $(shell grep 'const Version' credentials/version.go | awk -F'"' '{ print $$2 }') |
| |
| all: test |
| |
| deps: |
| go get -u golang.org/x/lint/golint |
| |
| clean: |
| rm -rf bin |
| rm -rf release |
| |
| osxkeychain: |
| mkdir -p bin |
| go build -ldflags -s -o bin/docker-credential-osxkeychain osxkeychain/cmd/main_darwin.go |
| |
| osxcodesign: osxkeychain |
| $(eval SIGNINGHASH = $(shell security find-identity -v -p codesigning | grep "Developer ID Application: Docker Inc" | cut -d ' ' -f 4)) |
| xcrun -log codesign -s $(SIGNINGHASH) --force --verbose bin/docker-credential-osxkeychain |
| xcrun codesign --verify --deep --strict --verbose=2 --display bin/docker-credential-osxkeychain |
| |
| osxrelease: clean vet_osx lint fmt test osxcodesign |
| mkdir -p release |
| @echo "\nPackaging version ${VERSION}\n" |
| cd bin && tar cvfz ../release/docker-credential-osxkeychain-v$(VERSION)-amd64.tar.gz docker-credential-osxkeychain |
| |
| secretservice: |
| mkdir -p bin |
| go build -o bin/docker-credential-secretservice secretservice/cmd/main_linux.go |
| |
| pass: |
| mkdir -p bin |
| go build -o bin/docker-credential-pass pass/cmd/main_linux.go |
| |
| wincred: |
| mkdir -p bin |
| go build -o bin/docker-credential-wincred.exe wincred/cmd/main_windows.go |
| |
| winrelease: clean vet_win lint fmt test wincred |
| mkdir -p release |
| @echo "\nPackaging version ${VERSION}\n" |
| cd bin && zip ../release/docker-credential-wincred-v$(VERSION)-amd64.zip docker-credential-wincred.exe |
| |
| test: |
| # tests all packages except vendor |
| go test -v `go list ./... | grep -v /vendor/` |
| |
| vet: vet_$(TRAVIS_OS_NAME) |
| go vet ./credentials |
| |
| vet_win: |
| go vet ./wincred |
| |
| vet_osx: |
| go vet ./osxkeychain |
| |
| vet_linux: |
| go vet ./secretservice |
| |
| lint: |
| for p in `go list ./... | grep -v /vendor/`; do \ |
| golint $$p ; \ |
| done |
| |
| fmt: |
| gofmt -s -l `ls **/*.go | grep -v vendor` |
| |
| validate: vet lint fmt |
| |
| |
| BUILDIMG:=docker-credential-secretservice-$(VERSION) |
| deb: |
| mkdir -p release |
| docker build -f deb/Dockerfile \ |
| --build-arg VERSION=$(VERSION) \ |
| --build-arg DISTRO=xenial \ |
| --tag $(BUILDIMG) \ |
| . |
| docker run --rm --net=none $(BUILDIMG) tar cf - /release | tar xf - |
| docker rmi $(BUILDIMG) |