Permalink
Please sign in to comment.
Showing
with
100 additions
and 30 deletions.
- +18 −14 .travis.yml
- +82 −0 Makefile
- +0 −16 make.sh
32
.travis.yml
82
Makefile
@@ -0,0 +1,82 @@ | ||
+BASE := rsprd.com/spread | ||
+CMD_NAME := spread | ||
+ | ||
+EXEC_PKG := $(BASE)/cmd/$(CMD_NAME) | ||
+PKGS := ./pkg/... ./cli/... ./cmd/... | ||
+ | ||
+GOX_OS ?= linux darwin windows | ||
+GOX_ARCH ?= amd64 | ||
+ | ||
+GO ?= go | ||
+GOX ?= gox | ||
+GOFMT ?= gofmt # eventually should add "-s" | ||
+GOLINT ?= golint | ||
+ | ||
+GOFILES := find . -name '*.go' -not -path "./vendor/*" | ||
+ | ||
+GOBUILD_LDFLAGS ?= | ||
+GOBUILD_FLAGS ?= | ||
+GOTEST_FLAGS ?= -v | ||
+GOX_FLAGS ?= -output="build/{{.Dir}}_{{.OS}}_{{.Arch}}" -os="${GOX_OS}" -arch="${GOX_ARCH}" | ||
+ | ||
+GOX_OS ?= linux darwin windows | ||
+GOX_ARCH ?= amd64 | ||
+ | ||
+.PHONY: all | ||
+all: clean validate test | ||
+ | ||
+.PHONY: release | ||
+release: validate test crossbuild | ||
+ | ||
+.PHONY: test | ||
+test: build | ||
+ $(GO) test $(GOTEST_FLAGS) $(PKGS) | ||
+ | ||
+.PHONY: validate | ||
+validate: lint checkgofmt vet | ||
+ | ||
+.PHONY: build | ||
+build: | ||
+ $(GO) install $(GOBUILD_FLAGS) $(GOBUILD_LDFLAGS) $(EXEC_PKG) | ||
+ | ||
+.PHONY: crossbuild | ||
+crossbuild: deps gox-setup | ||
+ $(GOX) $(GOX_FLAGS) -gcflags="$(GOBUILD_FLAGS)" -ldflags="$(GOBUILD_LDFLAGS)" $(EXEC_PKG) | ||
+ | ||
+.PHONY: vet | ||
+vet: | ||
+ $(GO) vet $(PKGS) | ||
+ | ||
+lint: .golint-install | ||
+ for pkg in $(PKGS); do \ | ||
+ echo "Running golint on $$i:"; \ | ||
+ golint $$i; \ | ||
+ done; | ||
+ | ||
+.PHONY: checkgofmt | ||
+checkgofmt: | ||
+ # get all go files and run go fmt on them | ||
+ $(GOFILES) | xargs $(GOFMT) -l | ||
+ files=$$($(GOFILES) | xargs $(GOFMT) -l); echo "test $$files"; if [[ -n "$$files" ]]; then \ | ||
+ echo "Error: '$(GOFMT)' needs to be run on:"; \ | ||
+ echo "$${files}"; \ | ||
+ exit 1; \ | ||
+ fi; | ||
+ | ||
+.PHONY: deps | ||
+deps: .golint-install .gox-install | ||
+ | ||
+.golint-install: | ||
+ $(GO) get -x github.com/golang/lint/golint > $@ | ||
+ | ||
+PHONY: gox-setup | ||
+gox-setup: .gox-install | ||
+ | ||
+.gox-install: | ||
+ $(GO) get -x github.com/mitchellh/gox > $@ | ||
+ | ||
+.PHONY: clean | ||
+clean: | ||
+ rm -vf .gox-* .golint-* | ||
+ rm -rfv ./build | ||
+ $(GO) clean $(PKGS) || true |
16
make.sh
@@ -1,16 +0,0 @@ | ||
-#!/usr/bin/env bash | ||
- | ||
-# Setting up GOPATH | ||
- | ||
-# create gopath | ||
-export GOPATH="$(pwd)/.gopath" | ||
-rm -rf $GOPATH | ||
-mkdir -p $GOPATH/src/rsprd.com/spread | ||
- | ||
-# Ensure vendoring is enabled (for 1.5) | ||
-export GO15VENDOREXPERIMENT=1 | ||
- | ||
-# link source to GOPATH | ||
-cp -r * $GOPATH/src/rsprd.com/spread/ | ||
- | ||
-go build -v rsprd.com/spread/cmd/spread |
0 comments on commit
5f5c1b2