From 71f74a6b4ea1a91161d36e837bfa2c133594db2e Mon Sep 17 00:00:00 2001 From: Matthias Loibl Date: Tue, 8 Aug 2017 12:28:29 +0200 Subject: [PATCH] Add a Makefile --- Makefile | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ VERSION | 1 + 2 files changed, 74 insertions(+) create mode 100644 Makefile create mode 100644 VERSION diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fe27dd7 --- /dev/null +++ b/Makefile @@ -0,0 +1,73 @@ +DIST := dist +BIN := bin + +EXECUTABLE := github-releases-notifier + +PWD := $(shell pwd) +VERSION := $(shell cat VERSION) +SHA := $(shell cat COMMIT 2>/dev/null || git rev-parse --short=8 HEAD) +DATE := $(shell date -u '+%FT%T%z') + +GOLDFLAGS += -X "main.version=$(VERSION)" +GOLDFLAGS += -X "main.date=$(DATE)" +GOLDFLAGS += -X "main.commit=$(SHA)" +GOLDFLAGS += -extldflags '-static' + +GO := CGO_ENABLED=0 go + +GOOS ?= $(shell go version | cut -d' ' -f4 | cut -d'/' -f1) +GOARCH ?= $(shell go version | cut -d' ' -f4 | cut -d'/' -f2) + +PACKAGES ?= $(shell go list ./... | grep -v /vendor/ | grep -v /tests) + +TAGS ?= netgo + +.PHONY: all +all: clean test build + +.PHONY: clean +clean: + $(GO) clean -i ./... + find . -type f -name "coverage.out" -delete + +.PHONY: fmt +fmt: + $(GO) fmt $(PACKAGES) + +.PHONY: tests +tests: test vet lint errcheck megacheck + +.PHONY: vet +vet: + $(GO) vet $(PACKAGES) + +.PHONY: lint +lint: + @which golint > /dev/null; if [ $$? -ne 0 ]; then \ + $(GO) get -u github.com/golang/lint/golint; \ + fi + STATUS=0; for PKG in $(PACKAGES); do golint -set_exit_status $$PKG || STATUS=1; done; exit $$STATUS + +.PHONY: errcheck +errcheck: + @which errcheck > /dev/null; if [ $$? -ne 0 ]; then \ + $(GO) get -u github.com/kisielk/errcheck; \ + fi + STATUS=0; for PKG in $(PACKAGES); do errcheck $$PKG || STATUS=1; done; exit $$STATUS + +.PHONY: megacheck +megacheck: + @which megacheck > /dev/null; if [ $$? -ne 0 ]; then \ + $(GO) get -u honnef.co/go/tools/cmd/megacheck; \ + fi + STATUS=0; for PKG in $(PACKAGES); do megacheck $$PKG || STATUS=1; done; exit $$STATUS + +.PHONY: test +test: + STATUS=0; for PKG in $(PACKAGES); do go test -cover -coverprofile $$GOPATH/src/$$PKG/coverage.out $$PKG || STATUS=1; done; exit $$STATUS + +.PHONY: build +build: $(EXECUTABLE)-$(GOOS)-$(GOARCH) + +$(EXECUTABLE)-$(GOOS)-$(GOARCH): $(wildcard *.go) + $(GO) build -tags '$(TAGS)' -ldflags '-s -w $(GOLDFLAGS)' -o $(EXECUTABLE) diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..8a9ecc2 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.0.1 \ No newline at end of file