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