diff --git a/.gitignore b/.gitignore index c456d83..daf51bf 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ tosa + +github_token diff --git a/Changes b/Changes new file mode 100644 index 0000000..e367ff2 --- /dev/null +++ b/Changes @@ -0,0 +1,5 @@ +Changes +======= + +0.0.1 + First release! diff --git a/Makefile b/Makefile index 03e87de..85e80e5 100644 --- a/Makefile +++ b/Makefile @@ -9,19 +9,117 @@ ARTIFACTS_DIR=$(RELEASE_DIR)/artifacts/$(VERSION) SRC_FILES = $(wildcard *.go cmd/$(PROJECT_NAME)/*.go) HAVE_GLIDE:=$(shell which glide >/dev/null 2>&1) GITHUB_USERNAME=kyoshidajp +BUILD_TARGETS= \ + build-linux-arm64 \ + build-linux-arm \ + build-linux-amd64 \ + build-linux-386 \ + build-darwin-amd64 \ + build-darwin-386 \ + build-windows-amd64 \ + build-windows-386 +RELEASE_TARGETS=\ + release-linux-arm64 \ + release-linux-arm \ + release-linux-amd64 \ + release-linux-386 \ + release-darwin-amd64 \ + release-darwin-386 \ + release-windows-amd64 \ + release-windows-386 build: $(RELEASE_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH)/$(PROJECT_NAME)$(SUFFIX) +$(INTERNAL_BIN_DIR): + @echo "Creating $(INTERNAL_BIN_DIR)" + @mkdir -p $(INTERNAL_BIN_DIR) + installdeps: glide $(SRC_FILES) @echo "Installing dependencies..." @PATH=$(INTERNAL_BIN_DIR)/$(GOOS)/$(GOARCH):$(PATH) glide install +build-windows-amd64: + @$(MAKE) build GOOS=windows GOARCH=amd64 SUFFIX=.exe + +build-windows-386: + @$(MAKE) build GOOS=windows GOARCH=386 SUFFIX=.exe + +build-linux-amd64: + @$(MAKE) build GOOS=linux GOARCH=amd64 + +build-linux-arm: + @$(MAKE) build GOOS=linux GOARCH=arm + +build-linux-arm64: + @$(MAKE) build GOOS=linux GOARCH=arm64 + +build-linux-386: + @$(MAKE) build GOOS=linux GOARCH=386 + +build-darwin-amd64: + @$(MAKE) build GOOS=darwin GOARCH=amd64 + build-darwin-386: @$(MAKE) build GOOS=darwin GOARCH=386 $(RELEASE_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH)/$(PROJECT_NAME)$(SUFFIX): go build -o $(RELEASE_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH)/$(PROJECT_NAME)$(SUFFIX) cmd/$(PROJECT_NAME)/$(PROJECT_NAME).go +all: $(BUILD_TARGETS) + +release: $(RELEASE_TARGETS) + +$(RELEASE_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH)/Changes: + @cp Changes $(RELEASE_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH) + +$(RELEASE_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH)/README.md: + @cp README.md $(RELEASE_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH) + +release-changes: $(RELEASE_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH)/Changes +release-readme: $(RELEASE_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH)/README.md + +release-windows-amd64: build-windows-amd64 + @$(MAKE) release-changes release-readme release-zip GOOS=windows GOARCH=amd64 + +release-windows-386: build-windows-386 + @$(MAKE) release-changes release-readme release-zip GOOS=windows GOARCH=386 + +release-linux-amd64: build-linux-amd64 + @$(MAKE) release-changes release-readme release-targz GOOS=linux GOARCH=amd64 + +release-linux-arm: build-linux-arm + @$(MAKE) release-changes release-readme release-targz GOOS=linux GOARCH=arm + +release-linux-arm64: build-linux-arm64 + @$(MAKE) release-changes release-readme release-targz GOOS=linux GOARCH=arm64 + +release-linux-386: build-linux-386 + @$(MAKE) release-changes release-readme release-targz GOOS=linux GOARCH=386 + +release-darwin-amd64: build-darwin-amd64 + @$(MAKE) release-changes release-readme release-zip GOOS=darwin GOARCH=amd64 + +release-darwin-386: build-darwin-386 + @$(MAKE) release-changes release-readme release-zip GOOS=darwin GOARCH=386 + +$(ARTIFACTS_DIR): + @mkdir -p $(ARTIFACTS_DIR) + +release-tarbz: $(ARTIFACTS_DIR) + tar -cjf $(ARTIFACTS_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH).tar.bz2 -C $(RELEASE_DIR) $(PROJECT_NAME)_$(GOOS)_$(GOARCH) + +release-targz: $(ARTIFACTS_DIR) + tar -czf $(ARTIFACTS_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH).tar.gz -C $(RELEASE_DIR) $(PROJECT_NAME)_$(GOOS)_$(GOARCH) + +release-zip: $(ARTIFACTS_DIR) + cd $(RELEASE_DIR) && zip -9 $(CURDIR)/$(ARTIFACTS_DIR)/$(PROJECT_NAME)_$(GOOS)_$(GOARCH).zip $(PROJECT_NAME)_$(GOOS)_$(GOARCH)/* + +release-github-token: github_token + @echo "file `github_token` is required" + +release-upload: release release-github-token + ghr -u $(GITHUB_USERNAME) -t $(shell cat github_token) --draft --replace $(VERSION) $(ARTIFACTS_DIR) + test: $(GOTEST) -v ./...