...

Text file src/github.com/docker/docker-credential-helpers/Makefile

Documentation: github.com/docker/docker-credential-helpers

     1PACKAGE ?= github.com/docker/docker-credential-helpers
     2VERSION ?= $(shell ./hack/git-meta version)
     3REVISION ?= $(shell ./hack/git-meta revision)
     4
     5GO_PKG = github.com/docker/docker-credential-helpers
     6GO_LDFLAGS = -s -w -X ${GO_PKG}/credentials.Version=${VERSION} -X ${GO_PKG}/credentials.Revision=${REVISION} -X ${GO_PKG}/credentials.Package=${PACKAGE}
     7
     8BUILDX_CMD ?= docker buildx
     9DESTDIR ?= ./bin/build
    10COVERAGEDIR ?= ./bin/coverage
    11
    12# 10.11 is the minimum supported version for osxkeychain
    13export MACOSX_DEPLOYMENT_TARGET = 10.11
    14ifeq "$(shell go env GOOS)" "darwin"
    15	export CGO_CFLAGS = -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
    16endif
    17
    18.PHONY: all
    19all: cross
    20
    21.PHONY: clean
    22clean:
    23	rm -rf bin
    24
    25.PHONY: build-%
    26build-%: # build, can be one of build-osxkeychain build-pass build-secretservice build-wincred
    27	go build -trimpath -ldflags="$(GO_LDFLAGS) -X ${GO_PKG}/credentials.Name=docker-credential-$*" -o "$(DESTDIR)/docker-credential-$*" ./$*/cmd/
    28
    29# aliases for build-* targets
    30.PHONY: osxkeychain secretservice pass wincred
    31osxkeychain: build-osxkeychain
    32secretservice: build-secretservice
    33pass: build-pass
    34wincred: build-wincred
    35
    36.PHONY: cross
    37cross: # cross build all supported credential helpers
    38	$(BUILDX_CMD) bake binaries
    39
    40.PHONY: release
    41release: # create release
    42	./hack/release
    43
    44.PHONY: test
    45test:
    46	mkdir -p $(COVERAGEDIR)
    47	go test -short -v -coverprofile=$(COVERAGEDIR)/coverage.txt -covermode=atomic ./...
    48	go tool cover -func=$(COVERAGEDIR)/coverage.txt
    49
    50.PHONY: lint
    51lint:
    52	$(BUILDX_CMD) bake lint
    53
    54.PHONY: validate-vendor
    55validate-vendor:
    56	$(BUILDX_CMD) bake vendor-validate
    57
    58.PHONY: fmt
    59fmt:
    60	gofmt -s -l `ls **/*.go | grep -v vendor`
    61
    62.PHONY: validate
    63validate: lint validate-vendor fmt
    64
    65BUILDIMG:=docker-credential-secretservice-$(VERSION)
    66.PHONY: deb
    67deb:
    68	mkdir -p release
    69	docker build -f deb/Dockerfile \
    70		--build-arg VERSION=$(patsubst v%,%,$(VERSION)) \
    71		--build-arg REVISION=$(REVISION) \
    72		--tag $(BUILDIMG) \
    73		.
    74	docker run --rm --net=none $(BUILDIMG) tar cf - /release | tar xf -
    75	docker rmi $(BUILDIMG)
    76
    77.PHONY: vendor
    78vendor:
    79	$(eval $@_TMP_OUT := $(shell mktemp -d -t docker-output.XXXXXXXXXX))
    80	$(BUILDX_CMD) bake --set "*.output=type=local,dest=$($@_TMP_OUT)" vendor
    81	rm -rf ./vendor
    82	cp -R "$($@_TMP_OUT)"/* .
    83	rm -rf "$($@_TMP_OUT)"
    84
    85.PHONY: print-%
    86print-%: ; @echo $($*)

View as plain text