github.com/ranjib/nomad@v0.1.1-0.20160225204057-97751b02f70b/GNUmakefile (about) 1 PACKAGES = $(shell go list ./... | grep -v '/vendor/') 2 VETARGS?=-asmdecl -atomic -bool -buildtags -copylocks -methods \ 3 -nilfunc -printf -rangeloops -shift -structtags -unsafeptr 4 EXTERNAL_TOOLS=\ 5 github.com/tools/godep \ 6 github.com/mitchellh/gox \ 7 golang.org/x/tools/cmd/cover \ 8 golang.org/x/tools/cmd/vet \ 9 github.com/axw/gocov/gocov \ 10 gopkg.in/matm/v1/gocov-html \ 11 github.com/ugorji/go/codec/codecgen 12 13 GOFILES_NOVENDOR = $(shell find . -type f -name '*.go' -not -path "./vendor/*") 14 15 all: test 16 17 dev: format generate 18 @NOMAD_DEV=1 sh -c "'$(PWD)/scripts/build.sh'" 19 20 bin: generate 21 @sh -c "'$(PWD)/scripts/build.sh'" 22 23 release: 24 @$(MAKE) bin 25 26 cov: 27 gocov test ./... | gocov-html > /tmp/coverage.html 28 open /tmp/coverage.html 29 30 test: generate 31 @sh -c "'$(PWD)/scripts/test.sh'" 32 @$(MAKE) vet 33 34 cover: 35 go list ./... | xargs -n1 go test --cover 36 37 format: 38 @echo "--> Running go fmt" 39 @go fmt $(PACKAGES) 40 41 generate: 42 @echo "--> Running go generate" 43 @go generate $(PACKAGES) 44 @sed -e 's|github.com/hashicorp/nomad/vendor/github.com/ugorji/go/codec|github.com/ugorji/go/codec|' nomad/structs/structs.generated.go >> structs.gen.tmp 45 @mv structs.gen.tmp nomad/structs/structs.generated.go 46 47 vet: 48 @go tool vet 2>/dev/null ; if [ $$? -eq 3 ]; then \ 49 go get golang.org/x/tools/cmd/vet; \ 50 fi 51 @echo "--> Running go tool vet $(VETARGS) ${GOFILES_NOVENDOR}" 52 @go tool vet $(VETARGS) ${GOFILES_NOVENDOR} ; if [ $$? -eq 1 ]; then \ 53 echo ""; \ 54 echo "[LINT] Vet found suspicious constructs. Please check the reported constructs"; \ 55 echo "and fix them if necessary before submitting the code for review."; \ 56 fi 57 58 @git grep -n `echo "log"".Print"` | grep -v 'vendor/' ; if [ $$? -eq 0 ]; then \ 59 echo "[LINT] Found "log"".Printf" calls. These should use Nomad's logger instead."; \ 60 fi 61 62 web: 63 ./scripts/website_run.sh 64 65 web-push: 66 ./scripts/website_push.sh 67 68 # bootstrap the build by downloading additional tools 69 bootstrap: 70 @for tool in $(EXTERNAL_TOOLS) ; do \ 71 echo "Installing $$tool" ; \ 72 go get $$tool; \ 73 done 74 75 prepare_docker: 76 sudo stop docker 77 sudo rm -rf /var/lib/docker 78 sudo rm -f `which docker` 79 sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D 80 echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list 81 sudo apt-get update 82 sudo apt-get install docker-engine=$(DOCKER_VERSION)-0~$(shell lsb_release -cs) -y --force-yes 83 84 .PHONY: all bin cov integ test vet web web-push test-nodep