all: build

bootstrap:
	go get -u github.com/onsi/ginkgo/ginkgo
	go get -u mvdan.cc/sh/cmd/shfmt
	go get -u -d k8s.io/code-generator/cmd/deepcopy-gen
	go get -u -d k8s.io/code-generator/cmd/defaulter-gen
	go get -u -d k8s.io/code-generator/cmd/openapi-gen
	cd ${GOPATH}/src/k8s.io/code-generator/cmd/deepcopy-gen && git checkout release-1.9 && go install
	cd ${GOPATH}/src/k8s.io/code-generator/cmd/defaulter-gen && git checkout release-1.9 && go install
	cd ${GOPATH}/src/k8s.io/code-generator/cmd/openapi-gen && git checkout release-1.9 && go install

generate:
	./hack/generate.sh

apidocs: generate
	./hack/gen-swagger-doc/gen-swagger-docs.sh v1 html

build: check
	go install -v ./cmd/... ./pkg/...
	./hack/copy-cmd.sh

test: build
	go test -v -cover ./pkg/...

check:
	./hack/check.sh

OUT_DIR=./_out
TESTS_OUT_DIR=${OUT_DIR}/tests

functest: build
	go build -v ./tests/...
	ginkgo build ./tests
	mkdir -p ${TESTS_OUT_DIR}/
	mv ./tests/tests.test ${TESTS_OUT_DIR}/
	./hack/functests.sh

cluster-sync: build
	./hack/build-copy-artifacts.sh
	./hack/build-manifests.sh
	./hack/build-docker.sh build
	./cluster/clean.sh
	./cluster/deploy.sh

.PHONY: bootstrap generate apidocs build test check functest cluster-sync
