Initial commit with support for GitHub actions
This commit is contained in:
56
Makefile
Normal file
56
Makefile
Normal file
@@ -0,0 +1,56 @@
|
||||
LATEST_VERSION := $(shell git tag -l --sort=creatordate | grep "^v[0-9]*.[0-9]*.[0-9]*$$" | tail -1 | cut -c 2-)
|
||||
ifeq "$(shell git tag -l v$(LATEST_VERSION) --points-at HEAD)" "v$(LATEST_VERSION)"
|
||||
### latest tag points to current commit, this is a release build
|
||||
VERSION ?= $(LATEST_VERSION)
|
||||
else
|
||||
### latest tag points to prior commit, this is a snapshot build
|
||||
MAJOR_VERSION := $(word 1, $(subst ., ,$(LATEST_VERSION)))
|
||||
MINOR_VERSION := $(word 2, $(subst ., ,$(LATEST_VERSION)))
|
||||
PATCH_VERSION := $(word 3, $(subst ., ,$(LATEST_VERSION)))
|
||||
VERSION ?= $(MAJOR_VERSION).$(MINOR_VERSION).$(shell echo $$(( $(PATCH_VERSION) + 1)) )-develop
|
||||
endif
|
||||
IS_SNAPSHOT = $(if $(findstring -, $(VERSION)),true,false)
|
||||
TAG_VERSION = v$(VERSION)
|
||||
|
||||
default: check
|
||||
|
||||
deps:
|
||||
@GO111MODULE=off go get honnef.co/go/tools/cmd/staticcheck
|
||||
@GO111MODULE=off go get golang.org/x/lint/golint
|
||||
@GO111MODULE=off go get github.com/fzipp/gocyclo
|
||||
|
||||
check:
|
||||
go vet ./...
|
||||
golint -set_exit_status ./...
|
||||
staticcheck ./...
|
||||
gocyclo -over 10 .
|
||||
go test -cover ./...
|
||||
|
||||
build: deps check
|
||||
@GO111MODULE=off go get github.com/goreleaser/goreleaser
|
||||
$(eval export SNAPSHOT_VERSION=$(VERSION))
|
||||
@goreleaser --snapshot --rm-dist
|
||||
|
||||
install: build
|
||||
@cp dist/$(shell go env GOOS)_$(shell go env GOARCH)/act /usr/local/bin/act
|
||||
@chmod 755 /usr/local/bin/act
|
||||
@act --version
|
||||
|
||||
installer:
|
||||
@GO111MODULE=off go get github.com/goreleaser/godownloader
|
||||
godownloader -r nektos/act -o install.sh
|
||||
|
||||
|
||||
promote:
|
||||
@echo "VERSION:$(VERSION) IS_SNAPSHOT:$(IS_SNAPSHOT) LATEST_VERSION:$(LATEST_VERSION)"
|
||||
ifeq (false,$(IS_SNAPSHOT))
|
||||
@echo "Unable to promote a non-snapshot"
|
||||
@exit 1
|
||||
endif
|
||||
ifneq ($(shell git status -s),)
|
||||
@echo "Unable to promote a dirty workspace"
|
||||
@exit 1
|
||||
endif
|
||||
$(eval NEW_VERSION := $(word 1,$(subst -, , $(TAG_VERSION))))
|
||||
git tag -a -m "releasing $(NEW_VERSION)" $(NEW_VERSION)
|
||||
git push origin $(NEW_VERSION)
|
Reference in New Issue
Block a user