diff --git a/Makefile b/Makefile index fc1e79738e1d0d9c36f92ed4df2b94f7322593d7..9cd7f86fbfa1027a1c8c5599231b03baae21460d 100644 --- a/Makefile +++ b/Makefile @@ -1,26 +1,61 @@ JSONNET_FMT := jsonnet fmt -n 2 --max-blank-lines 2 --string-style s --comment-style s -image: - docker build -f ../../scripts/jsonnet/Dockerfile -t po-jsonnet ../../ +JB_BINARY:=$(GOPATH)/bin/jb +EMBEDMD_BINARY:=$(GOPATH)/bin/embedmd -generate: image +# edit 1 + +all: generate fmt test + +../../hack/jsonnet-docker-image: ../../scripts/jsonnet/Dockerfile +# Create empty target file, for the sole purpose of recording when this target +# was last executed via the last-modification timestamp on the file. See +# https://www.gnu.org/software/make/manual/make.html#Empty-Targets + docker build -f - -t po-jsonnet . < ../../scripts/jsonnet/Dockerfile + touch $@ + +generate-in-docker: ../../hack/jsonnet-docker-image @echo ">> Compiling assets and generating Kubernetes manifests" - docker run --rm -u=$(shell id -u $(USER)):$(shell id -g $(USER)) -v $(shell dirname $(dir $(abspath $(dir $$PWD)))):/go/src/github.com/coreos/prometheus-operator/ --workdir /go/src/github.com/coreos/prometheus-operator/contrib/kube-prometheus po-jsonnet make generate-raw + docker run \ + --rm \ + -u=$(shell id -u $(USER)):$(shell id -g $(USER)) \ + -v $(shell dirname $(dir $(abspath $(dir $$PWD)))):/go/src/github.com/coreos/prometheus-operator/ \ + --workdir /go/src/github.com/coreos/prometheus-operator/contrib/kube-prometheus \ + po-jsonnet make generate + +generate: manifests/** **.md + +**.md: $(EMBEDMD_BINARY) $(shell find examples) build.sh example.jsonnet + echo '>>> inside **.md' + $(EMBEDMD_BINARY) -w `find . -name "*.md" | grep -v vendor` -generate-raw: fmt - jb install +manifests/**: vendor/** example.jsonnet ./build.sh +vendor/**: $(JB_BINARY) jsonnetfile.json + $(JB_BINARY) install + fmt: find . -name 'vendor' -prune -o -name '*.libsonnet' -o -name '*.jsonnet' -print | \ xargs -n 1 -- $(JSONNET_FMT) -i -test: image +test: $(JB_BINARY) + $(JB_BINARY) install + ./test.sh + +test-in-docker: ../../hack/jsonnet-docker-image @echo ">> Compiling assets and generating Kubernetes manifests" - docker run --rm -u=$(shell id -u $(USER)):$(shell id -g $(USER)) -v $(shell dirname $(dir $(abspath $(dir $$PWD)))):/go/src/github.com/coreos/prometheus-operator/ --workdir /go/src/github.com/coreos/prometheus-operator/contrib/kube-prometheus po-jsonnet make test-raw + docker run \ + --rm \ + -u=$(shell id -u $(USER)):$(shell id -g $(USER)) \ + -v $(shell dirname $(dir $(abspath $(dir $$PWD)))):/go/src/github.com/coreos/prometheus-operator/ \ + --workdir /go/src/github.com/coreos/prometheus-operator/contrib/kube-prometheus \ + po-jsonnet make test -test-raw: crdtojsonnet - jb install - ./test.sh +$(JB_BINARY): + go get -u github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb + +$(EMBEDMD_BINARY): + go get github.com/campoy/embedmd -.PHONY: image generate crdtojsonnet generate-raw test test-raw fmt +.PHONY: generate generate-in-docker test test-in-docker fmt