diff --git a/.gitignore b/.gitignore index 1571530eb96e58a403b159f5c691a34e38e6b36f..0c4a5c8ea9ad66658f83f4b6226e9eedfd3a6b23 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 989ce2a45b2d49026070846c01346472f0395ada..38a068b8bf9041539ed2e34532207a6b16571f2f 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 0000000000000000000000000000000000000000..07a6b163d6b5dc106da12732a9ea8f0ae1de447e --- /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`