diff --git a/.gitignore b/.gitignore index cb0085ab4..4e904d723 100644 --- a/.gitignore +++ b/.gitignore @@ -76,3 +76,4 @@ crashlytics.properties crashlytics-build.properties test_data +build diff --git a/.travis.yml b/.travis.yml index 2344d4850..c72eb8fd1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,15 +1,30 @@ sudo: false language: go go: - - 1.5 - - 1.6 - - tip +- 1.5 +- 1.6 +- tip before_install: - - export PATH=/home/travis/gopath/bin:$PATH +- export PATH=/home/travis/gopath/bin:$PATH install: - - go get ./weed/... +- go get ./weed/... script: - - go test ./weed/... +- go test ./weed/... + +deploy: + provider: releases + api_key: + secure: ERL986+ncQ8lwAJUYDrQ8s2/FxF/cyNIwJIFCqspnWxQgGNNyokET9HapmlPSxjpFRF0q6L2WCg9OY3mSVRq4oI6hg1igOQ12KlLyN71XSJ3c8w0Ay5ho48TQ9l3f3Iu97mntBCe9l0R9pnT8wj1VI8YJxloXwUMG2yeTjA9aBI= + file: + - build/linux_arm.tar.gz + - build/linux_arm64.tar.gz + - build/linux_386.tar.gz + - build/linux_amd64.tar.gz + - build/darwin_amd64.tar.gz + - build/windows_386.zip + - build/windows_amd64.zip + on: + repo: chrislusf/seaweedfs diff --git a/Makefile b/Makefile index 4d09803fc..0ed98b9ec 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,26 @@ BINARY = weed/weed +package = github.com/chrislusf/seaweedfs/weed GO_FLAGS = #-v SOURCE_DIR = ./weed/ +appname := weed + +sources := $(wildcard *.go) + +build = GOOS=$(1) GOARCH=$(2) go build -o build/$(appname)$(3) $(SOURCE_DIR) +tar = cd build && tar -cvzf $(1)_$(2).tar.gz $(appname)$(3) && rm $(appname)$(3) +zip = cd build && zip $(1)_$(2).zip $(appname)$(3) && rm $(appname)$(3) + + all: build -.PHONY : clean deps build linux +.PHONY : clean deps build linux release windows_build darwin_build linux_build clean clean: go clean -i $(GO_FLAGS) $(SOURCE_DIR) rm -f $(BINARY) + rm -rf build/ deps: go get $(GO_FLAGS) -d $(SOURCE_DIR) @@ -20,3 +31,42 @@ build: deps linux: deps mkdir -p linux GOOS=linux GOARCH=amd64 go build $(GO_FLAGS) -o linux/$(BINARY) $(SOURCE_DIR) + +release: windows_build darwin_build linux_build + +##### LINUX BUILDS ##### +linux_build: build/linux_arm.tar.gz build/linux_arm64.tar.gz build/linux_386.tar.gz build/linux_amd64.tar.gz + +build/linux_386.tar.gz: $(sources) + $(call build,linux,386,) + $(call tar,linux,386) + +build/linux_amd64.tar.gz: $(sources) + $(call build,linux,amd64,) + $(call tar,linux,amd64) + +build/linux_arm.tar.gz: $(sources) + $(call build,linux,arm,) + $(call tar,linux,arm) + +build/linux_arm64.tar.gz: $(sources) + $(call build,linux,arm64,) + $(call tar,linux,arm64) + +##### DARWIN (MAC) BUILDS ##### +darwin_build: build/darwin_amd64.tar.gz + +build/darwin_amd64.tar.gz: $(sources) + $(call build,darwin,amd64,) + $(call tar,darwin,amd64) + +##### WINDOWS BUILDS ##### +windows_build: build/windows_386.zip build/windows_amd64.zip + +build/windows_386.zip: $(sources) + $(call build,windows,386,.exe) + $(call zip,windows,386,.exe) + +build/windows_amd64.zip: $(sources) + $(call build,windows,amd64,.exe) + $(call zip,windows,amd64,.exe) \ No newline at end of file