From 03c94eabb7dbadaa338fab42dd4e8e6b5fbb5d3d Mon Sep 17 00:00:00 2001 From: Katrina Verey Date: Tue, 5 Apr 2022 14:37:18 -0400 Subject: [PATCH] Base makefile and root makefile target for functions/examples --- Makefile | 15 ++++++- functions/examples/Makefile-examples-base.mk | 42 +++++++++++++++++++ functions/examples/application-cr/Makefile | 35 +--------------- .../examples/injection-tshirt-sizes/Makefile | 35 +--------------- functions/examples/template-go-nginx/Makefile | 35 +--------------- functions/examples/validator-kubeval/Makefile | 35 +--------------- .../validator-resource-requests/Makefile | 35 +--------------- hack/kyaml-pre-commit.sh | 40 ------------------ 8 files changed, 65 insertions(+), 207 deletions(-) create mode 100644 functions/examples/Makefile-examples-base.mk delete mode 100755 hack/kyaml-pre-commit.sh diff --git a/Makefile b/Makefile index 84ed52b2d..427241ab4 100644 --- a/Makefile +++ b/Makefile @@ -149,8 +149,19 @@ test-unit-kustomize-plugins: test-unit-kustomize-cli: cd kustomize; $(MAKE) test -test-unit-kyaml-all: - ./hack/kyaml-pre-commit.sh +.PHONY: kyaml-precommit +kyaml-precommit: + cd kyaml; $(MAKE) all + cd cmd/config; $(MAKE) all + make functions-examples-all + +.PHONY: functions-examples-all +functions-examples-all: + for dir in $(abspath $(wildcard functions/examples/*/.)); do \ + echo -e "\n---Running make tasks for function $$dir---"; \ + set -e; \ + cd $$dir; $(MAKE) all; \ + done test-go-mod: ./hack/for-each-module.sh "go list -m -json all > /dev/null && go mod tidy -v" diff --git a/functions/examples/Makefile-examples-base.mk b/functions/examples/Makefile-examples-base.mk new file mode 100644 index 000000000..79a9605c8 --- /dev/null +++ b/functions/examples/Makefile-examples-base.mk @@ -0,0 +1,42 @@ +# Copyright 2019 The Kubernetes Authors. +# SPDX-License-Identifier: Apache-2.0 + +MYGOBIN = $(shell go env GOBIN) +ifeq ($(MYGOBIN),) +MYGOBIN = $(shell go env GOPATH)/bin +endif +export PATH := $(MYGOBIN):$(PATH) + +.PHONY: generate fix vet fmt test build tidy + +export KUSTOMIZE_ROOT ?= $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\1|') +include $(KUSTOMIZE_ROOT)/Makefile-tools.mk + +build: + (cd image && go build -v -o $(MYGOBIN)/config-function .) + +all: generate build fix vet fmt test lint tidy + +fix: + (cd image && go fix ./...) + +fmt: + (cd image && go fmt ./...) + +generate: $(MYGOBIN)/mdtogo + (cd image && GOBIN=$(MYGOBIN) go generate ./...) + +tidy: + (cd image && go mod tidy) + +lint: $(MYGOBIN)/golangci-lint + (cd image && $(MYGOBIN)/golangci-lint \ + -c $$KUSTOMIZE_ROOT/.golangci.yml \ + --path-prefix $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\2|') \ + run ./...) + +test: + (cd image && go test -cover ./...) + +vet: + (cd image && go vet ./...) diff --git a/functions/examples/application-cr/Makefile b/functions/examples/application-cr/Makefile index 1243b5b47..8b0366bd8 100644 --- a/functions/examples/application-cr/Makefile +++ b/functions/examples/application-cr/Makefile @@ -1,40 +1,9 @@ # Copyright 2019 The Kubernetes Authors. # SPDX-License-Identifier: Apache-2.0 -.PHONY: generate fix vet fmt test build tidy image - -export KUSTOMIZE_ROOT ?= $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\1|') -include $(KUSTOMIZE_ROOT)/Makefile-tools.mk - -build: - (cd image && go build -v -o $(GOBIN)/config-function .) - -all: generate build fix vet fmt test lint tidy - -fix: - (cd image && go fix ./...) - -fmt: - (cd image && go fmt ./...) - -generate: $(MYGOBIN)/mdtogo - (cd image && GOBIN=$(MYGOBIN) go generate ./...) - -tidy: - (cd image && go mod tidy) - -lint: $(MYGOBIN)/golangci-lint - (cd image && $(MYGOBIN)/golangci-lint \ - -c $$KUSTOMIZE_ROOT/.golangci.yml \ - --path-prefix $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\2|') \ - run ./...) - -test: - (cd image && go test -cover ./...) - -vet: - (cd image && go vet ./...) +include ../Makefile-examples-base.mk +.PHONY: image image: docker build image -t gcr.io/kustomize-functions/create-application:v0.1.0 docker push gcr.io/kustomize-functions/create-application:v0.1.0 diff --git a/functions/examples/injection-tshirt-sizes/Makefile b/functions/examples/injection-tshirt-sizes/Makefile index 5e9ad88dc..5fbeab65a 100644 --- a/functions/examples/injection-tshirt-sizes/Makefile +++ b/functions/examples/injection-tshirt-sizes/Makefile @@ -1,40 +1,9 @@ # Copyright 2019 The Kubernetes Authors. # SPDX-License-Identifier: Apache-2.0 -.PHONY: generate fix vet fmt test build tidy image - -export KUSTOMIZE_ROOT ?= $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\1|') -include $(KUSTOMIZE_ROOT)/Makefile-tools.mk - -build: - (cd image && go build -v -o $(MYGOBIN)/config-function .) - -all: generate build fix vet fmt test lint tidy - -fix: - (cd image && go fix ./...) - -fmt: - (cd image && go fmt ./...) - -generate: $(MYGOBIN)/mdtogo - (cd image && GOBIN=$(MYGOBIN) go generate ./...) - -tidy: - (cd image && go mod tidy) - -lint: $(MYGOBIN)/golangci-lint - (cd image && $(MYGOBIN)/golangci-lint \ - -c $$KUSTOMIZE_ROOT/.golangci.yml \ - --path-prefix $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\2|') \ - run ./...) - -test: - (cd image && go test -cover ./...) - -vet: - (cd image && go vet ./...) +include ../Makefile-examples-base.mk +.PHONY: image image: docker build image -t gcr.io/kustomize-functions/example-tshirt:v0.2.0 docker push gcr.io/kustomize-functions/example-tshirt:v0.2.0 diff --git a/functions/examples/template-go-nginx/Makefile b/functions/examples/template-go-nginx/Makefile index 2b655157f..02a0d7c2a 100644 --- a/functions/examples/template-go-nginx/Makefile +++ b/functions/examples/template-go-nginx/Makefile @@ -1,40 +1,9 @@ # Copyright 2019 The Kubernetes Authors. # SPDX-License-Identifier: Apache-2.0 -.PHONY: generate fix vet fmt test build tidy image - -export KUSTOMIZE_ROOT ?= $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\1|') -include $(KUSTOMIZE_ROOT)/Makefile-tools.mk - -build: - (cd image && go build -v -o $(GOBIN)/config-function .) - -all: generate build fix vet fmt test lint tidy - -fix: - (cd image && go fix ./...) - -fmt: - (cd image && go fmt ./...) - -generate: $(MYGOBIN)/mdtogo - (cd image && GOBIN=$(MYGOBIN) go generate ./...) - -tidy: - (cd image && go mod tidy) - -lint: $(MYGOBIN)/golangci-lint - (cd image && $(MYGOBIN)/golangci-lint \ - -c $$KUSTOMIZE_ROOT/.golangci.yml \ - --path-prefix $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\2|') \ - run ./...) - -test: - (cd image && go test -cover ./...) - -vet: - (cd image && go vet ./...) +include ../Makefile-examples-base.mk +.PHONY: image image: docker build image -t gcr.io/kustomize-functions/example-nginx:v0.2.0 docker push gcr.io/kustomize-functions/example-nginx:v0.2.0 diff --git a/functions/examples/validator-kubeval/Makefile b/functions/examples/validator-kubeval/Makefile index b34a462f3..9672cbe13 100644 --- a/functions/examples/validator-kubeval/Makefile +++ b/functions/examples/validator-kubeval/Makefile @@ -1,40 +1,9 @@ # Copyright 2019 The Kubernetes Authors. # SPDX-License-Identifier: Apache-2.0 -.PHONY: generate fix vet fmt test build tidy image - -export KUSTOMIZE_ROOT ?= $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\1|') -include $(KUSTOMIZE_ROOT)/Makefile-tools.mk - -build: - (cd image && go build -v -o $(GOBIN)/config-function .) - -all: generate build fix vet fmt test lint tidy - -fix: - (cd image && go fix ./...) - -fmt: - (cd image && go fmt ./...) - -generate: $(MYGOBIN)/mdtogo - (cd image && GOBIN=$(MYGOBIN) go generate ./...) - -tidy: - (cd image && go mod tidy) - -lint: $(MYGOBIN)/golangci-lint - (cd image && $(MYGOBIN)/golangci-lint \ - -c $$KUSTOMIZE_ROOT/.golangci.yml \ - --path-prefix $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\2|') \ - run ./...) - -test: - (cd image && go test -cover ./...) - -vet: - (cd image && go vet ./...) +include ../Makefile-examples-base.mk +.PHONY: image image: docker build image -t gcr.io/kustomize-functions/example-validator-kubeval:v0.1.0 docker push gcr.io/kustomize-functions/example-validator-kubeval:v0.1.0 diff --git a/functions/examples/validator-resource-requests/Makefile b/functions/examples/validator-resource-requests/Makefile index 0de3a0634..9dbb42477 100644 --- a/functions/examples/validator-resource-requests/Makefile +++ b/functions/examples/validator-resource-requests/Makefile @@ -1,40 +1,9 @@ # Copyright 2019 The Kubernetes Authors. # SPDX-License-Identifier: Apache-2.0 -.PHONY: generate fix vet fmt test build tidy image - -export KUSTOMIZE_ROOT ?= $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\1|') -include $(KUSTOMIZE_ROOT)/Makefile-tools.mk - -build: - (cd image && go build -v -o $(GOBIN)/config-function .) - -all: generate build fix vet fmt test lint tidy - -fix: - (cd image && go fix ./...) - -fmt: - (cd image && go fmt ./...) - -generate: $(MYGOBIN)/mdtogo - (cd image && GOBIN=$(MYGOBIN) go generate ./...) - -tidy: - (cd image && go mod tidy) - -lint: $(MYGOBIN)/golangci-lint - (cd image && $(MYGOBIN)/golangci-lint \ - -c $$KUSTOMIZE_ROOT/.golangci.yml \ - --path-prefix $(shell pwd | sed -E 's|(.*\/kustomize)/(.*)|\2|') \ - run ./...) - -test: - (cd image && go test -cover ./...) - -vet: - (cd image && go vet ./...) +include ../Makefile-examples-base.mk +.PHONY: image image: docker build image -t gcr.io/kustomize-functions/example-validator:v0.1.0 docker push gcr.io/kustomize-functions/example-validator:v0.1.0 diff --git a/hack/kyaml-pre-commit.sh b/hack/kyaml-pre-commit.sh deleted file mode 100755 index 5c87dee72..000000000 --- a/hack/kyaml-pre-commit.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2019 The Kubernetes Authors. -# SPDX-License-Identifier: Apache-2.0 - -set -e - -# run all tests for kyaml and related commands - -targets=" -kyaml -cmd/config -functions/examples/injection-tshirt-sizes -functions/examples/template-go-nginx -functions/examples/template-heredoc-cockroachdb -functions/examples/validator-kubeval -functions/examples/validator-resource-requests -functions/examples/application-cr -" - -# don't run e2e tests in CI by default -export KUSTOMIZE_DOCKER_E2E=${KUSTOMIZE_DOCKER_E2E:-"false"} - -for target in $targets; do - echo " " - echo " " - echo "----- Making $target -----" - pushd . - cd $target - make all - popd -done - -# Need better check. This is repeated git diff check -# more pain than benefit for most people 25Apr2020 -## make sure no files were generated or changed by make -## ignore changes to go.mod and go.sum -- they are too flaky -# find . -name go.mod | xargs git checkout -- -# find . -name go.sum | xargs git checkout -- -# git add . -# git diff-index HEAD --exit-code