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