forked from lug/matterbridge
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
PACKAGES := $(shell glide nv)
 | 
						|
# Many Go tools take file globs or directories as arguments instead of packages.
 | 
						|
PACKAGE_FILES ?= *.go
 | 
						|
 | 
						|
 | 
						|
# The linting tools evolve with each Go version, so run them only on the latest
 | 
						|
# stable release.
 | 
						|
GO_VERSION := $(shell go version | cut -d " " -f 3)
 | 
						|
GO_MINOR_VERSION := $(word 2,$(subst ., ,$(GO_VERSION)))
 | 
						|
LINTABLE_MINOR_VERSIONS := 7 8
 | 
						|
ifneq ($(filter $(LINTABLE_MINOR_VERSIONS),$(GO_MINOR_VERSION)),)
 | 
						|
SHOULD_LINT := true
 | 
						|
endif
 | 
						|
 | 
						|
 | 
						|
export GO15VENDOREXPERIMENT=1
 | 
						|
 | 
						|
 | 
						|
.PHONY: build
 | 
						|
build:
 | 
						|
	go build -i $(PACKAGES)
 | 
						|
 | 
						|
 | 
						|
.PHONY: install
 | 
						|
install:
 | 
						|
	glide --version || go get github.com/Masterminds/glide
 | 
						|
	glide install
 | 
						|
 | 
						|
 | 
						|
.PHONY: test
 | 
						|
test:
 | 
						|
	go test -cover -race $(PACKAGES)
 | 
						|
 | 
						|
 | 
						|
.PHONY: install_ci
 | 
						|
install_ci: install
 | 
						|
	go get github.com/wadey/gocovmerge
 | 
						|
	go get github.com/mattn/goveralls
 | 
						|
	go get golang.org/x/tools/cmd/cover
 | 
						|
ifdef SHOULD_LINT
 | 
						|
	go get github.com/golang/lint/golint
 | 
						|
endif
 | 
						|
 | 
						|
.PHONY: lint
 | 
						|
lint:
 | 
						|
ifdef SHOULD_LINT
 | 
						|
	@rm -rf lint.log
 | 
						|
	@echo "Checking formatting..."
 | 
						|
	@gofmt -d -s $(PACKAGE_FILES) 2>&1 | tee lint.log
 | 
						|
	@echo "Checking vet..."
 | 
						|
	@$(foreach dir,$(PACKAGE_FILES),go tool vet $(dir) 2>&1 | tee -a lint.log;)
 | 
						|
	@echo "Checking lint..."
 | 
						|
	@$(foreach dir,$(PKGS),golint $(dir) 2>&1 | tee -a lint.log;)
 | 
						|
	@echo "Checking for unresolved FIXMEs..."
 | 
						|
	@git grep -i fixme | grep -v -e vendor -e Makefile | tee -a lint.log
 | 
						|
	@[ ! -s lint.log ]
 | 
						|
else
 | 
						|
	@echo "Skipping linters on" $(GO_VERSION)
 | 
						|
endif
 | 
						|
 | 
						|
 | 
						|
.PHONY: test_ci
 | 
						|
test_ci: install_ci build
 | 
						|
	./scripts/cover.sh $(shell go list $(PACKAGES))
 |