github.com/RedHatInsights/insights-content-service@v1.0.0/Makefile (about) 1 .PHONY: default clean build fmt lint vet cyclo ineffassign shellcheck errcheck goconst gosec abcgo json-check style run test cover license openapi-check before_commit help godoc install_docgo install_addlicense 2 3 SOURCES:=$(shell find . -name '*.go') 4 BINARY:=insights-content-service 5 DOCFILES:=$(addprefix docs/packages/, $(addsuffix .html, $(basename ${SOURCES}))) 6 7 default: build 8 9 clean: ## Run go clean 10 @go clean 11 rm -f rest-api-tests 12 13 build: ${BINARY} ## Build binary containing service executable 14 15 build-cover: ${SOURCES} ## Build binary with code coverage detection support 16 ./build.sh -cover 17 18 ${BINARY}: ${SOURCES} 19 ./build.sh 20 21 checker/checker: checker/main.go 22 cd checker 23 go build 24 cd .. 25 26 fmt: ## Run go fmt -w for all sources 27 @echo "Running go formatting" 28 ./gofmt.sh 29 30 lint: ## Run golint 31 @echo "Running go lint" 32 ./golint.sh 33 34 vet: ## Run go vet. Report likely mistakes in source code 35 @echo "Running go vet" 36 ./govet.sh 37 38 cyclo: ## Run gocyclo 39 @echo "Running gocyclo" 40 ./gocyclo.sh 41 42 ineffassign: ## Run ineffassign checker 43 @echo "Running ineffassign checker" 44 ./ineffassign.sh 45 46 shellcheck: ## Run shellcheck 47 shellcheck --exclude=SC1090,SC2086,SC2034,SC1091 $(shell find . -name "*.sh") 48 49 errcheck: ## Run errcheck 50 @echo "Running errcheck" 51 ./goerrcheck.sh 52 53 goconst: ## Run goconst checker 54 @echo "Running goconst checker" 55 ./goconst.sh 56 57 gosec: ## Run gosec checker 58 @echo "Running gosec checker" 59 ./gosec.sh 60 61 abcgo: ## Run ABC metrics checker 62 @echo "Run ABC metrics checker" 63 ./abcgo.sh 64 65 json-check: ## Check all JSONs for basic syntax 66 @echo "Run JSON checker" 67 python3 utils/json_check.py 68 69 openapi-check: 70 ./check_openapi.sh 71 72 style: fmt vet lint cyclo shellcheck errcheck goconst gosec ineffassign abcgo ## Run all the formatting related commands (fmt, vet, lint, cyclo) + check shell scripts 73 74 run: clean build ## Build the project and executes the binary 75 ./insights-content-service 76 77 test: clean build ## Run the unit tests 78 @go test -coverprofile coverage.out $(shell go list ./... | grep -v tests) 79 80 cover: test ## Generate HTML pages with code coverage 81 @go tool cover -html=coverage.out 82 83 coverage: ## Display code coverage on terminal 84 @go tool cover -func=coverage.out 85 86 integration_tests: ## Run all integration tests 87 @echo "Running all integration tests" 88 @./test.sh 89 90 license: install_addlicense 91 addlicense -c "Red Hat, Inc" -l "apache" -v ./ 92 93 before_commit: style test openapi-check license 94 ./check_coverage.sh 95 96 help: ## Show this help screen 97 @echo 'Usage: make <OPTIONS> ... <TARGETS>' 98 @echo '' 99 @echo 'Available targets are:' 100 @echo '' 101 @grep -E '^[ a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \ 102 awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' 103 @echo '' 104 105 function_list: ${BINARY} ## List all functions in generated binary file 106 go tool objdump ${BINARY} | grep ^TEXT | sed "s/^TEXT\s//g" 107 108 docs/packages/%.html: %.go 109 mkdir -p $(dir $@) 110 docgo -outdir $(dir $@) $^ 111 addlicense -c "Red Hat, Inc" -l "apache" -v $@ 112 113 godoc: export GO111MODULE=off 114 godoc: install_docgo install_addlicense ${DOCFILES} 115 116 install_docgo: export GO111MODULE=off 117 install_docgo: 118 [[ `command -v docgo` ]] || GO111MODULE=off go get -u github.com/dhconnelly/docgo 119 120 install_docgo: export GO111MODULE=off 121 install_addlicense: 122 [[ `command -v addlicense` ]] || GO111MODULE=off go get -u github.com/google/addlicense