diff --git a/Makefile b/Makefile index 51b168dcaa..5e4fad15b4 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,10 @@ test: test-unit ## run tests test-coverage: ## run test coverage ./scripts/test/unit-with-coverage $(shell go list ./... | grep -vE '/vendor/|/e2e/') +.PHONY: fmt +fmt: + go list -f {{.Dir}} ./... | xargs gofmt -w -s -d + .PHONY: lint lint: ## run all the lint tools gometalinter --config gometalinter.json ./... diff --git a/docker.Makefile b/docker.Makefile index 628e989fb0..5b266f5275 100644 --- a/docker.Makefile +++ b/docker.Makefile @@ -10,7 +10,12 @@ LINTER_IMAGE_NAME = docker-cli-lint$(IMAGE_TAG) CROSS_IMAGE_NAME = docker-cli-cross$(IMAGE_TAG) VALIDATE_IMAGE_NAME = docker-cli-shell-validate$(IMAGE_TAG) E2E_IMAGE_NAME = docker-cli-e2e$(IMAGE_TAG) +GO_BUILD_CACHE ?= y MOUNTS = -v "$(CURDIR)":/go/src/github.com/docker/cli +CACHE_VOLUME_NAME := docker-cli-dev-cache +ifeq ($(GO_BUILD_CACHE),y) +MOUNTS += -v "$(CACHE_VOLUME_NAME):/root/.cache/go-build" +endif VERSION = $(shell cat VERSION) ENVVARS = -e VERSION=$(VERSION) -e GITCOMMIT -e PLATFORM @@ -54,6 +59,7 @@ build: binary ## alias for binary .PHONY: clean clean: build_docker_image ## clean build artifacts docker run --rm $(ENVVARS) $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make clean + docker volume rm -f $(CACHE_VOLUME_NAME) .PHONY: test-unit test-unit: build_docker_image # run unit tests (using go test) @@ -86,6 +92,10 @@ shell: dev ## alias for dev lint: build_linter_image ## run linters docker run -ti $(ENVVARS) $(MOUNTS) $(LINTER_IMAGE_NAME) +.PHONY: fmt +fmt: + docker run --rm $(ENVVARS) $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make fmt + .PHONY: vendor vendor: build_docker_image vendor.conf ## download dependencies (vendor/) listed in vendor.conf docker run -ti --rm $(ENVVARS) $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make vendor