From ff73de549896762f0a07ba82aa10f02e13b18ba6 Mon Sep 17 00:00:00 2001 From: Zhao Xiaojie Date: Sat, 22 Jun 2019 16:49:28 +0800 Subject: [PATCH] Add cmd to auto release --- .gitignore | 3 ++- Makefile | 27 +++++++++++++++++++++++++-- tag.sh | 15 +++++++++++++++ 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100755 tag.sh diff --git a/.gitignore b/.gitignore index 1571530..0c4a5c8 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,5 @@ # Output of the go coverage tool, specifically when used with LiteIDE *.out -bin/ \ No newline at end of file +bin/ +release/ \ No newline at end of file diff --git a/Makefile b/Makefile index 989ce2a..38a068b 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,25 @@ -build: - go build -o bin/jcli \ No newline at end of file +NAME := jcli +CGO_ENABLED = 0 +GO := go +BUILD_TARGET = build +BUILDFLAGS = +COVERED_MAIN_SRC_FILE=./main + +darwin: ## Build for OSX + CGO_ENABLED=$(CGO_ENABLED) GOOS=darwin GOARCH=amd64 $(GO) $(BUILD_TARGET) $(BUILDFLAGS) -o bin/darwin/$(NAME) $(MAIN_SRC_FILE) + chmod +x bin/darwin/$(NAME) + +build: $(GO_DEPENDENCIES) ## Build jx binary for current OS + CGO_ENABLED=$(CGO_ENABLED) $(GO) $(BUILD_TARGET) $(BUILDFLAGS) -o bin/$(NAME) $(MAIN_SRC_FILE) + +release: clean darwin + mkdir release + cd ./bin/darwin; tar -zcvf ../../release/jcli-darwin-amd64.tar.gz jcli + + ./tag.sh + @if [[ -z "$NEEDS_TAG" ]]; then \ + hub release create -c -a release/jcli-darwin-amd64.tar.gz $NEW_TAG; \ + fi + +clean: ## Clean the generated artifacts + rm -rf bin release \ No newline at end of file diff --git a/tag.sh b/tag.sh new file mode 100755 index 0000000..07a6b16 --- /dev/null +++ b/tag.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +VERSION=$(hub tag --list | tail -n 1) +VERSION_BITS=(${VERSION//./ }) +VNUM1=${VERSION_BITS[0]} +VNUM2=${VERSION_BITS[1]} +VNUM3=${VERSION_BITS[2]} +VNUM3=$((VNUM3+1)) + +export NEW_TAG="$VNUM1.$VNUM2.$VNUM3" +echo "Updating $VERSION to $NEW_TAG" + +#get current hash and see if it already has a tag +GIT_COMMIT=`git rev-parse HEAD` +export NEEDS_TAG=`git describe --contains $GIT_COMMIT` -- GitLab