71 lines
2.1 KiB
Makefile
71 lines
2.1 KiB
Makefile
all: build
|
|
|
|
TAG?=dev
|
|
FLAGS=
|
|
ENVVAR=
|
|
GOOS?=linux
|
|
REGISTRY?=staging-k8s.gcr.io
|
|
ifdef BUILD_TAGS
|
|
TAGS_FLAG=--tags ${BUILD_TAGS}
|
|
PROVIDER=-${BUILD_TAGS}
|
|
FOR_PROVIDER=" for ${BUILD_TAGS}"
|
|
else
|
|
TAGS_FLAG=
|
|
PROVIDER=
|
|
FOR_PROVIDER=
|
|
endif
|
|
|
|
build: clean deps
|
|
$(ENVVAR) GOOS=$(GOOS) go build ./... ${TAGS_FLAG}
|
|
$(ENVVAR) GOOS=$(GOOS) go build -o cluster-autoscaler ${TAGS_FLAG}
|
|
|
|
build-binary: clean deps
|
|
$(ENVVAR) GOOS=$(GOOS) go build -o cluster-autoscaler ${TAGS_FLAG}
|
|
|
|
test-unit: clean deps build
|
|
$(ENVVAR) go test --test.short -race ./... $(FLAGS) ${TAGS_FLAG}
|
|
|
|
dev-release: build-binary execute-release
|
|
@echo "Release ${TAG}${FOR_PROVIDER} completed"
|
|
|
|
make-image:
|
|
ifdef BASEIMAGE
|
|
docker build --pull --build-arg BASEIMAGE=${BASEIMAGE} \
|
|
-t ${REGISTRY}/cluster-autoscaler${PROVIDER}:${TAG} .
|
|
else
|
|
docker build --pull -t ${REGISTRY}/cluster-autoscaler${PROVIDER}:${TAG} .
|
|
endif
|
|
|
|
push-image:
|
|
./push_image.sh ${REGISTRY}/cluster-autoscaler${PROVIDER}:${TAG}
|
|
|
|
execute-release: make-image push-image
|
|
|
|
clean:
|
|
rm -f cluster-autoscaler
|
|
|
|
generate:
|
|
go generate ./cloudprovider/aws
|
|
|
|
format:
|
|
test -z "$$(find . -path ./vendor -prune -type f -o -name '*.go' -exec gofmt -s -d {} + | tee /dev/stderr)" || \
|
|
test -z "$$(find . -path ./vendor -prune -type f -o -name '*.go' -exec gofmt -s -w {} + | tee /dev/stderr)"
|
|
|
|
docker-builder:
|
|
docker build -t autoscaling-builder ../builder
|
|
|
|
build-in-docker: clean docker-builder
|
|
docker run -v `pwd`:/gopath/src/k8s.io/autoscaler/cluster-autoscaler/ autoscaling-builder:latest bash -c 'cd /gopath/src/k8s.io/autoscaler/cluster-autoscaler && BUILD_TAGS=${BUILD_TAGS} make build-binary'
|
|
|
|
release: build-in-docker execute-release
|
|
@echo "Full in-docker release ${TAG}${FOR_PROVIDER} completed"
|
|
|
|
container: build-in-docker make-image
|
|
@echo "Created in-docker image ${TAG}${FOR_PROVIDER}"
|
|
|
|
test-in-docker: clean docker-builder
|
|
docker run -v `pwd`:/gopath/src/k8s.io/autoscaler/cluster-autoscaler/ autoscaling-builder:latest bash -c 'cd /gopath/src/k8s.io/autoscaler/cluster-autoscaler && go test -race ./... ${TAGS_FLAG}'
|
|
|
|
.PHONY: all deps build test-unit clean format execute-release dev-release docker-builder build-in-docker release generate
|
|
|