github.com/willyham/dosa@v2.3.1-0.20171024181418-1e446d37ee71+incompatible/Makefile (about)

     1  SHELL := /bin/bash
     2  PROJECT_ROOT := github.com/uber-go/dosa
     3  
     4  SUPPORT_FILES := .build
     5  include $(SUPPORT_FILES)/colors.mk
     6  include $(SUPPORT_FILES)/deps.mk
     7  include $(SUPPORT_FILES)/flags.mk
     8  include $(SUPPORT_FILES)/verbosity.mk
     9  
    10  .PHONY: all
    11  all: lint test
    12  .DEFAULT_GOAL := all
    13  
    14  COVER_OUT := profile.coverprofile
    15  
    16  # all .go files that don't exist in hidden directories
    17  ALL_SRC := $(shell find . -name "*.go" | grep -v -e vendor \
    18  	-e ".*/\..*" \
    19  	-e ".*/_.*")
    20  
    21  TEST_TIMEOUT := "-timeout=60s"
    22  
    23  .PHONY: test
    24  test: clean vendor
    25  	$(ECHO_V)go test $(RACE) $(TEST_TIMEOUT) $(PKGS)
    26  	$(ECHO_V)$(MAKE) $(COV_REPORT)
    27  
    28  TEST_IGNORES = vendor .git
    29  COVER_IGNORES = $(TEST_IGNORES)
    30  
    31  comma := ,
    32  null :=
    33  space := $(null) #
    34  OVERALLS_IGNORE = $(subst $(space),$(comma),$(strip $(COVER_IGNORES)))
    35  
    36  ifeq ($(V),0)
    37  _FILTER_OVERALLS = cat
    38  else
    39  _FILTER_OVERALLS = grep -v "^Processing:"
    40  endif
    41  
    42  COV_REPORT := overalls.coverprofile
    43  
    44  $(COV_REPORT): $(PKG_FILES) $(ALL_SRC)
    45  	@$(call label,Running tests)
    46  	@echo
    47  	$(ECHO_V)$(OVERALLS) -project=$(PROJECT_ROOT) \
    48  		-ignore "$(OVERALLS_IGNORE)" \
    49  		-covermode=atomic \
    50  		$(DEBUG_FLAG) -- \
    51  		$(TEST_FLAGS) $(RACE) $(TEST_TIMEOUT) $(TEST_VERBOSITY_FLAG) | \
    52  		grep -v "No Go Test files" | \
    53  		$(_FILTER_OVERALLS)
    54  	$(ECHO_V)if [ -a $(COV_REPORT) ]; then \
    55  		$(GOCOV) convert $@ | $(GOCOV) report ; \
    56  	fi
    57  
    58  COV_HTML := coverage.html
    59  
    60  $(COV_HTML): $(COV_REPORT)
    61  	$(ECHO_V)$(GOCOV) convert $< | gocov-html > $@
    62  
    63  .PHONY: coveralls
    64  coveralls: $(COV_REPORT)
    65  	$(ECHO_V)goveralls -service=travis-ci -coverprofile=$(COV_REPORT)
    66  
    67  include $(SUPPORT_FILES)/lint.mk
    68  
    69  .PHONY: gendoc
    70  gendoc:
    71  	$(ECHO_V)find . \( \
    72  		-path ./vendor -o  \
    73  		-path ./ccm -o \
    74  		-path ./node_modules -o \
    75  		-path ./.glide \
    76  	\) -prune -o -name README.md -print | \
    77  	xargs -I% md-to-godoc -input=%
    78  
    79  .PHONY: clean
    80  clean:
    81  	$(ECHO_V)rm -f $(COV_REPORT) $(COV_HTML) $(LINT_LOG)
    82  	$(ECHO_V)find $(subst /...,,$(PKGS)) -name $(COVER_OUT) -delete
    83  
    84  .PHONY: vendor
    85  vendor:
    86  	$(MAKE) deps
    87  
    88  .PHONY: fmt
    89  GOIMPORTS=goimports
    90  fmt:
    91  	$(ECHO_V)gofmt -s -w $(ALL_SRC)
    92  	$(ECHO_V)if [ "$$TRAVIS" != "true" ]; then \
    93  		$(GOIMPORTS) -w $(ALL_SRC) ; \
    94  	fi
    95  
    96  CLI_BUILD_VERSION ?= $(shell git describe --abbrev=0 --tags)
    97  CLI_BUILD_TIMESTAMP ?= $(shell date -u '+%Y-%m-%d_%I:%M:%S%p')
    98  CLI_BUILD_REF ?= $(shell git rev-parse --short HEAD)
    99  CLI_LINKER_FLAGS="-X main.version=$(CLI_BUILD_VERSION) -X main.timestamp=$(CLI_BUILD_TIMESTAMP) -X main.githash=$(CLI_BUILD_REF)"
   100  
   101  .PHONY: cli
   102  cli:
   103  	$(ECHO_V)go build -ldflags $(CLI_LINKER_FLAGS) -o $$GOPATH/bin/dosa ./cmd/dosa
   104  ifdef target
   105  ifeq ($(target), Darwin)
   106  	$(ECHO_V)GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -ldflags $(CLI_LINKER_FLAGS) -o ./out/cli/darwin/dosa ./cmd/dosa 
   107  else ifeq ($(target), Linux)
   108  	$(ECHO_V)GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags $(CLI_LINKER_FLAGS) -o ./out/cli/linux/dosa ./cmd/dosa
   109  endif
   110  endif
   111  
   112  mocks/client.go: client.go
   113  	mockgen -package mocks github.com/uber-go/dosa Client,AdminClient > ./mocks/client.go
   114  
   115  mocks/connector.go: connector.go
   116  	mockgen -package mocks github.com/uber-go/dosa Connector > ./mocks/connector.go
   117  
   118  .PHONY: mocks
   119  mocks: mocks/client.go mocks/connector.go
   120  	python ./script/license-headers.py -t LICENSE.txt -d mocks