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