github.com/SupersunnySea/draft@v0.16.0/versioning.mk (about) 1 MUTABLE_VERSION ?= canary 2 3 GIT_COMMIT := $(shell git rev-parse HEAD) 4 GIT_SHA := $(shell git rev-parse --short HEAD) 5 GIT_TAG := $(shell git describe --tags --abbrev=0 2>/dev/null) 6 GIT_DIRTY = $(shell test -n "`git status --porcelain`" && echo "dirty" || echo "clean") 7 8 ifdef VERSION 9 DOCKER_VERSION = $(VERSION) 10 BINARY_VERSION = $(VERSION) 11 endif 12 13 DOCKER_VERSION ?= git-${GIT_SHA} 14 BINARY_VERSION ?= ${GIT_TAG}-${GIT_SHA} 15 16 IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${SHORT_NAME}:${DOCKER_VERSION} 17 MUTABLE_IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${SHORT_NAME}:${MUTABLE_VERSION} 18 19 LDFLAGS += -X github.com/Azure/draft/pkg/version.Version=${GIT_TAG} 20 LDFLAGS += -X github.com/Azure/draft/pkg/version.GitCommit=${GIT_COMMIT} 21 LDFLAGS += -X github.com/Azure/draft/pkg/version.GitTreeState=${GIT_DIRTY} 22 23 DOCKER_PUSH = docker push 24 ifeq ($(DOCKER_REGISTRY),gcr.io) 25 DOCKER_PUSH = gcloud docker push 26 endif 27 28 info: 29 @echo "Build tag: ${DOCKER_VERSION}" 30 @echo "Registry: ${DOCKER_REGISTRY}" 31 @echo "Immutable tag: ${IMAGE}" 32 @echo "Mutable tag: ${MUTABLE_IMAGE}" 33 34 .PHONY: docker-push 35 docker-push: docker-mutable-push docker-immutable-push 36 37 .PHONY: docker-immutable-push 38 docker-immutable-push: 39 ${DOCKER_PUSH} ${IMAGE} 40 41 .PHONY: docker-mutable-push 42 docker-mutable-push: 43 ${DOCKER_PUSH} ${MUTABLE_IMAGE}