github.com/buildpack/pack@v0.5.0/Makefile (about)

     1  # Go parameters
     2  GOCMD?=go
     3  GOENV=CGO_ENABLED=0
     4  PACK_VERSION?=dev-$(shell date +%Y-%m-%d-%H:%M:%S)
     5  PACK_BIN?=pack
     6  PACKAGE_BASE=github.com/buildpack/pack
     7  PACKAGES:=$(shell $(GOCMD) list -mod=vendor ./... | grep -v /testdata/)
     8  SRC:=$(shell find . -type f -name '*.go' -not -path "*/vendor/*")
     9  ARCHIVE_NAME=pack-$(PACK_VERSION)
    10  
    11  all: clean verify test build
    12  
    13  build:
    14  	@echo "> Building..."
    15  	mkdir -p ./out
    16  	$(GOENV) $(GOCMD) build -mod=vendor -ldflags "-X 'github.com/buildpack/pack/cmd.Version=${PACK_VERSION}'" -o ./out/$(PACK_BIN) -a ./cmd/pack
    17  
    18  package:
    19  	tar czf ./out/$(ARCHIVE_NAME).tgz -C out/ pack
    20  
    21  install-mockgen:
    22  	@echo "> Installing mockgen..."
    23  	cd tools; $(GOCMD) install -mod=vendor github.com/golang/mock/mockgen
    24  
    25  install-goimports:
    26  	@echo "> Installing goimports..."
    27  	cd tools; $(GOCMD) install -mod=vendor golang.org/x/tools/cmd/goimports
    28  
    29  format: install-goimports
    30  	@echo "> Formating code..."
    31  	@goimports -l -w -local ${PACKAGE_BASE} ${SRC}
    32  
    33  install-golangci-lint:
    34  	@echo "> Installing golangci-lint..."
    35  	cd tools; $(GOCMD) install -mod=vendor github.com/golangci/golangci-lint/cmd/golangci-lint
    36  
    37  lint: install-golangci-lint
    38  	@echo "> Linting code..."
    39  	@golangci-lint run -c golangci.yaml
    40  
    41  test: unit acceptance
    42  
    43  unit: format lint
    44  	@echo "> Running unit/integration tests..."
    45  	$(GOCMD) test -mod=vendor -v -count=1 -parallel=1 -timeout=0 ./...
    46  
    47  acceptance: format lint
    48  	@echo "> Running acceptance tests..."
    49  	$(GOCMD) test -mod=vendor -v -count=1 -parallel=1 -timeout=0 -tags=acceptance ./acceptance
    50  
    51  acceptance-all: format lint
    52  	@echo "> Running acceptance tests..."
    53  	ACCEPTANCE_SUITE_CONFIG=$$(cat ./acceptance/testconfig/all.json) $(GOCMD) test -mod=vendor -v -count=1 -parallel=1 -timeout=0 -tags=acceptance ./acceptance
    54  
    55  clean:
    56  	@echo "> Cleaning workspace..."
    57  	rm -rf ./out
    58  
    59  verify: verify-format lint
    60  
    61  generate: install-mockgen
    62  	@echo "> Generating mocks..."
    63  	$(GOCMD) generate -mod=vendor ./...
    64  
    65  verify-format: install-goimports
    66  	@echo "> Verifying format..."
    67  	@test -z "$(shell goimports -l -local ${PACKAGE_BASE} ${SRC})";\
    68  	_err=$$?;\
    69  	[ $$_err -ne 0 ] && echo "ERROR: Format verification failed!\n" &&\
    70  	goimports -d -local ${PACKAGE_BASE} ${SRC} && exit $$_err;\
    71  	exit 0;
    72  
    73  .PHONY: clean build format imports lint test unit acceptance verify verify-format