From b52a7cde7fd29f78e93a136148ac2507a00154ce Mon Sep 17 00:00:00 2001 From: teru Date: Mon, 22 Aug 2016 15:15:08 +0900 Subject: [PATCH] Add support for creating GitHub Releases page --- .gitignore | 7 ++++++- Gomfile | 6 ++++++ Makefile | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 Gomfile create mode 100644 Makefile diff --git a/.gitignore b/.gitignore index 39a7681..28875c2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,6 @@ -/cli/mailfull/mailfull +/vendor +/build +/release +/github_token + +/cmd/mailfull/mailfull diff --git a/Gomfile b/Gomfile new file mode 100644 index 0000000..c7ebd62 --- /dev/null +++ b/Gomfile @@ -0,0 +1,6 @@ +gom 'github.com/BurntSushi/toml' +gom 'github.com/armon/go-radix' +gom 'github.com/bgentry/speakeasy' +gom 'github.com/jsimonetti/pwscheme' +gom 'github.com/mattn/go-isatty' +gom 'github.com/mitchellh/cli' diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f3e73c9 --- /dev/null +++ b/Makefile @@ -0,0 +1,53 @@ +GOVERSION=$(shell go version) +GOOS=$(word 1,$(subst /, ,$(lastword $(GOVERSION)))) +GOARCH=$(word 2,$(subst /, ,$(lastword $(GOVERSION)))) +DIR_BUILD=build +DIR_RELEASE=release +VERSION=$(patsubst "%",%,$(lastword $(shell grep 'const Version' version.go))) + +.PHONY: build build-linux-amd64 build-linux-386 clean + +default: build + +installdeps: + gom install + +build: + go build -ldflags "-X main.gittag=`git rev-parse --short HEAD`" -v -o build/mailfull_$(GOOS)_$(GOARCH)/mailfull cmd/mailfull/main.go + +build-linux-amd64: + docker run --rm -v $(PWD):/go/src/github.com/directorz/mailfull-go -w /go/src/github.com/directorz/mailfull-go \ + -e GOOS=linux -e GOARCH=amd64 golang:1.7 \ + go build -ldflags "-X main.gittag=`git rev-parse --short HEAD`" -v -o "build/mailfull_linux_amd64/mailfull" cmd/mailfull/main.go + +build-linux-386: + docker run --rm -v $(PWD):/go/src/github.com/directorz/mailfull-go -w /go/src/github.com/directorz/mailfull-go \ + -e GOOS=linux -e GOARCH=386 golang:1.7 \ + go build -ldflags "-X main.gittag=`git rev-parse --short HEAD`" -v -o "build/mailfull_linux_386/mailfull" cmd/mailfull/main.go + +release: release-linux-amd64 release-linux-386 + +release-linux-amd64: build-linux-amd64 + @$(MAKE) release-doc release-targz GOOS=linux GOARCH=amd64 + +release-linux-386: build-linux-386 + @$(MAKE) release-doc release-targz GOOS=linux GOARCH=386 + +release-doc: + cp -a README.md doc $(DIR_BUILD)/mailfull_$(GOOS)_$(GOARCH) + +release-targz: dir-$(DIR_RELEASE) + tar zcfp $(DIR_RELEASE)/mailfull_$(GOOS)_$(GOARCH).tar.gz -C $(DIR_BUILD) mailfull_$(GOOS)_$(GOARCH) + +dir-$(DIR_RELEASE): + mkdir -p $(DIR_RELEASE) + +release-upload: release-linux-amd64 release-linux-386 release-github-token + ghr -u directorz -r mailfull-go -t $(shell cat github_token) --replace --draft $(VERSION) $(DIR_RELEASE) + +release-github-token: github_token + @echo "file \"github_token\" is required" + +clean: + -rm -rf $(DIR_BUILD) + -rm -rf $(DIR_RELEASE)