From 93319f6853603b91fd85145310affc027fdeb678 Mon Sep 17 00:00:00 2001 From: Morgan Bauer Date: Thu, 11 Jan 2018 09:26:34 -0800 Subject: [PATCH] move apiserver generation to script and verify (#1662) --- Makefile | 40 +++++------------------- build/update-apiserver-gen.sh | 58 +++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 33 deletions(-) create mode 100755 build/update-apiserver-gen.sh diff --git a/Makefile b/Makefile index 929a8ff117d..94cae15dd8e 100644 --- a/Makefile +++ b/Makefile @@ -169,39 +169,10 @@ $(BINDIR)/e2e.test: .init $(NEWEST_E2ETEST_SOURCE) $(NEWEST_GO_FILE) # Regenerate all files if the gen exes changed or any "types.go" files changed .generate_files: .init .generate_exes $(TYPES_FILES) - # Generate defaults - $(DOCKER_CMD) $(BINDIR)/defaulter-gen \ - --v 1 --logtostderr \ - --go-header-file "vendor/github.com/kubernetes/repo-infra/verify/boilerplate/boilerplate.go.txt" \ - --input-dirs "$(SC_PKG)/pkg/apis/servicecatalog" \ - --input-dirs "$(SC_PKG)/pkg/apis/servicecatalog/v1beta1" \ - --extra-peer-dirs "$(SC_PKG)/pkg/apis/servicecatalog" \ - --extra-peer-dirs "$(SC_PKG)/pkg/apis/servicecatalog/v1beta1" \ - --output-file-base "zz_generated.defaults" - # Generate deep copies - $(DOCKER_CMD) $(BINDIR)/deepcopy-gen \ - --v 1 --logtostderr \ - --go-header-file "vendor/github.com/kubernetes/repo-infra/verify/boilerplate/boilerplate.go.txt" \ - --input-dirs "$(SC_PKG)/pkg/apis/servicecatalog" \ - --input-dirs "$(SC_PKG)/pkg/apis/servicecatalog/v1beta1" \ - --bounding-dirs "github.com/kubernetes-incubator/service-catalog" \ - --output-file-base zz_generated.deepcopy - # Generate conversions - $(DOCKER_CMD) $(BINDIR)/conversion-gen \ - --v 1 --logtostderr \ - --extra-peer-dirs k8s.io/api/core/v1,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/conversion,k8s.io/apimachinery/pkg/runtime \ - --go-header-file "vendor/github.com/kubernetes/repo-infra/verify/boilerplate/boilerplate.go.txt" \ - --input-dirs "$(SC_PKG)/pkg/apis/servicecatalog" \ - --input-dirs "$(SC_PKG)/pkg/apis/servicecatalog/v1beta1" \ - --output-file-base zz_generated.conversion + # generate apiserver deps + $(DOCKER_CMD) $(BUILD_DIR)/update-apiserver-gen.sh # generate all pkg/client contents $(DOCKER_CMD) $(BUILD_DIR)/update-client-gen.sh - # generate openapi - $(DOCKER_CMD) $(BINDIR)/openapi-gen \ - --v 1 --logtostderr \ - --go-header-file "vendor/github.com/kubernetes/repo-infra/verify/boilerplate/boilerplate.go.txt" \ - --input-dirs "github.com/kubernetes-incubator/service-catalog/pkg/apis/servicecatalog/v1beta1,k8s.io/api/core/v1,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/version,k8s.io/apimachinery/pkg/runtime" \ - --output-package "github.com/kubernetes-incubator/service-catalog/pkg/openapi" touch $@ # Some prereq stuff @@ -217,8 +188,8 @@ $(BINDIR)/e2e.test: .init $(NEWEST_E2ETEST_SOURCE) $(NEWEST_GO_FILE) # Util targets ############## -.PHONY: verify verify-client-gen -verify: .init .generate_files verify-client-gen +.PHONY: verify verify-generated verify-client-gen +verify: .init .generate_files verify-generated verify-client-gen @echo Running gofmt: @$(DOCKER_CMD) gofmt -l -s $(TOP_TEST_DIRS) $(TOP_SRC_DIRS)>.out 2>&1||true @[ ! -s .out ] || \ @@ -250,6 +221,9 @@ verify: .init .generate_files verify-client-gen @echo Running errexit checker: @$(DOCKER_CMD) build/verify-errexit.sh +verify-generated: .init .generate_files + $(DOCKER_CMD) $(BUILD_DIR)/update-apiserver-gen.sh --verify-only + verify-client-gen: .init .generate_files $(DOCKER_CMD) $(BUILD_DIR)/verify-client-gen.sh diff --git a/build/update-apiserver-gen.sh b/build/update-apiserver-gen.sh new file mode 100755 index 00000000000..ae2b6f39127 --- /dev/null +++ b/build/update-apiserver-gen.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +# Copyright 2018 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# The only argument this script should ever be called with is '--verify-only' + +set -o errexit +set -o nounset +set -o pipefail +set -o xtrace + +REPO_ROOT=$(realpath $(dirname "${BASH_SOURCE}")/..) +BINDIR=${REPO_ROOT}/bin +SC_PKG='github.com/kubernetes-incubator/service-catalog' + +# Generate defaults +${BINDIR}/defaulter-gen "$@" \ + --v 1 --logtostderr \ + --go-header-file "vendor/github.com/kubernetes/repo-infra/verify/boilerplate/boilerplate.go.txt" \ + --input-dirs "${SC_PKG}/pkg/apis/servicecatalog" \ + --input-dirs "${SC_PKG}/pkg/apis/servicecatalog/v1beta1" \ + --extra-peer-dirs "${SC_PKG}/pkg/apis/servicecatalog" \ + --extra-peer-dirs "${SC_PKG}/pkg/apis/servicecatalog/v1beta1" \ + --output-file-base "zz_generated.defaults" +# Generate deep copies +${BINDIR}/deepcopy-gen "$@" \ + --v 1 --logtostderr \ + --go-header-file "vendor/github.com/kubernetes/repo-infra/verify/boilerplate/boilerplate.go.txt" \ + --input-dirs "${SC_PKG}/pkg/apis/servicecatalog" \ + --input-dirs "${SC_PKG}/pkg/apis/servicecatalog/v1beta1" \ + --bounding-dirs "github.com/kubernetes-incubator/service-catalog" \ + --output-file-base zz_generated.deepcopy +# Generate conversions +${BINDIR}/conversion-gen "$@" \ + --v 1 --logtostderr \ + --extra-peer-dirs k8s.io/api/core/v1,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/conversion,k8s.io/apimachinery/pkg/runtime \ + --go-header-file "vendor/github.com/kubernetes/repo-infra/verify/boilerplate/boilerplate.go.txt" \ + --input-dirs "${SC_PKG}/pkg/apis/servicecatalog" \ + --input-dirs "${SC_PKG}/pkg/apis/servicecatalog/v1beta1" \ + --output-file-base zz_generated.conversion +# generate openapi +${BINDIR}/openapi-gen "$@" \ + --v 1 --logtostderr \ + --go-header-file "vendor/github.com/kubernetes/repo-infra/verify/boilerplate/boilerplate.go.txt" \ + --input-dirs "${SC_PKG}/pkg/apis/servicecatalog/v1beta1,k8s.io/api/core/v1,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/version,k8s.io/apimachinery/pkg/runtime" \ + --output-package "${SC_PKG}/pkg/openapi"