Skip to content

Instantly share code, notes, and snippets.

@developer-guy
Created August 31, 2021 19:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save developer-guy/c73e5f003193ba120438c15ad0a75cd8 to your computer and use it in GitHub Desktop.
Save developer-guy/c73e5f003193ba120438c15ad0a75cd8 to your computer and use it in GitHub Desktop.
makefile kink goreleaser
# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
GOBIN=$(shell go env GOPATH)/bin
else
GOBIN=$(shell go env GOBIN)
endif
# Set version variables for LDFLAGS
GIT_TAG ?= dirty-tag
GIT_VERSION ?= $(shell git describe --tags --always --dirty)
GIT_HASH ?= $(shell git rev-parse HEAD)
DATE_FMT = +'%Y-%m-%dT%H:%M:%SZ'
SOURCE_DATE_EPOCH ?= $(shell git log -1 --pretty=%ct)
ifdef SOURCE_DATE_EPOCH
BUILD_DATE ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null || date -u "$(DATE_FMT)")
else
BUILD_DATE ?= $(shell date "$(DATE_FMT)")
endif
GIT_TREESTATE = "clean"
DIFF = $(shell git diff --quiet >/dev/null 2>&1; if [ $$? -eq 1 ]; then echo "1"; fi)
ifeq ($(DIFF), 1)
GIT_TREESTATE = "dirty"
endif
PKG=gitlab.private.com/platform/base/poc/kink/cmd
LDFLAGS="-X $(PKG).GitVersion=$(GIT_VERSION) -X $(PKG).gitCommit=$(GIT_HASH) -X $(PKG).gitTreeState=$(GIT_TREESTATE) -X $(PKG).buildDate=$(BUILD_DATE)"
.PHONY: all kink release
all: kink
SRCS = $(shell find cmd -iname "*.go") $(shell find pkg -iname "*.go")
kink: $(SRCS)
CGO_ENABLED=0 go build -ldflags $(LDFLAGS) -o kink
release:
export GITLAB_TOKEN=$(GITLAB_TOKEN) && \
export DOCKER_REGISTRY=$(DOCKER_REGISTRY) && \
export DOCKER_USERNAME=$(DOCKER_USERNAME) && \
export DOCKER_PASSWORD=$(DOCKER_PASSWORD) && \
LDFLAGS=$(LDFLAGS) goreleaser release --rm-dist
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment