Golint by default doesn't return a non-zero exit code when lint errors are present. To address this, we need to pass -set_exit_status. But it gets more complicated: because we are suppressing some lint warnings, we cannot use -set_exit_status in the lint_quiet target. For that, we use test -z to fail if any output passes the filter. Eventually when we do pulumi/lumi#191, we can remove this hack.
48 lines
1.2 KiB
Makefile
48 lines
1.2 KiB
Makefile
.PHONY: banner build install lint lint_quiet test vet
|
|
|
|
PROJECT=github.com/pulumi/lumi
|
|
PROJECT_PKGS=$(shell go list ./... | grep -v /vendor/)
|
|
CORE_PROJECT_PKGS=$(shell go list ./cmd/... ./pkg/...)
|
|
PROCCNT=$(shell nproc --all)
|
|
|
|
default: banner test lint_quiet vet install
|
|
|
|
banner:
|
|
@go version
|
|
|
|
build:
|
|
@echo "\033[0;32mBUILD:\033[0m"
|
|
@go build ${PROJECT}/cmd/lumi
|
|
@go build ${PROJECT}/cmd/lumidl
|
|
|
|
install:
|
|
@echo "\033[0;32mINSTALL:\033[0m"
|
|
@go install ${PROJECT}/cmd/lumi
|
|
@go install ${PROJECT}/cmd/lumidl
|
|
|
|
lint:
|
|
@echo "\033[0;32mLINT:\033[0m"
|
|
@golint -set_exit_status cmd/...
|
|
@golint -set_exit_status pkg/...
|
|
|
|
lint_quiet:
|
|
@echo "\033[0;32mLINT (quiet):\033[0m"
|
|
@echo "`golint cmd/... | grep -v "or be unexported"`"
|
|
@echo "`golint pkg/... | grep -v "or be unexported"`"
|
|
test -z "$$(golint cmd/... | grep -v 'or be unexported')"
|
|
test -z "$$(golint pkg/... | grep -v 'or be unexported')"
|
|
@echo "\033[0;33mgolint was run quietly; to run with noisy errors, run 'make lint'\033[0m"
|
|
|
|
test:
|
|
@echo "\033[0;32mTEST:\033[0m"
|
|
@go test -parallel ${PROCCNT} -cover ${PROJECT_PKGS}
|
|
|
|
test_core:
|
|
@echo "\033[0;32mTEST (core):\033[0m"
|
|
@go test -parallel ${PROCCNT} -cover ${CORE_PROJECT_PKGS}
|
|
|
|
vet:
|
|
@echo "\033[0;32mVET:\033[0m"
|
|
@go tool vet -printf=false cmd/ lib/ pkg/
|
|
|