# GOPROXY settings # If no GOPROXY environment variable available, the pre-defined GOPROXY from go # env to download and validate go modules is used. Exclude downloading and # validation of all private modules which are pre-defined in GOPRIVATE. If no # GOPRIVATE variable defined, the variable of go env is used. GOPROXY?=$(shell go env GOPROXY) GOPRIVATE?=$(shell go env GOPRIVATE) # CONTAINER_RUNTIME # The CONTAINER_RUNTIME variable will be used to specified the path to a # container runtime. This is needed to start and run a container images. CONTAINER_RUNTIME?=$(shell which docker) CONTAINER_IMAGE_VERSION?=latest # TEST # ============================================================================== PHONY+=test/unit test/unit: go test -v -race -coverprofile=coverage.txt -covermode=atomic -timeout 600s -count=1 ./... test/coverage: test/unit go tool cover -html=coverage.txt # CONTAINER STEPS - TEST # ============================================================================== PHONY+=container-run/test/unit container-run/test/unit: $(MAKE) container-run COMMAND=${@:container-run/%=%} PHONY+=container-run/test/coverage container-run/test/coverage: $(MAKE) container-run COMMAND=${@:container-run/%=%} # GENERAL CONTAINER COMMAND # ============================================================================== PHONY+=container-run container-run: ${CONTAINER_RUNTIME} run \ --rm \ --volume ${PWD}:/workspace \ --volume /var/run/docker.sock:/var/run/docker.sock \ docker.io/volkerraschek/build-image:latest \ make ${COMMAND} \ GOPROXY=${GOPROXY} \ GOPRIVATE=${GOPRIVATE} \ VERSION=${VERSION:v%=%} # PHONY # ============================================================================== # Declare the contents of the PHONY variable as phony. We keep that information # in a variable so we can use it in if_changed. .PHONY: ${PHONY}