mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
bazel: add openapi generation for non-main spec and fix main spec
This commit is contained in:
parent
87b744715e
commit
53a7dcdee9
@ -51,7 +51,15 @@ def openapi_deps():
|
||||
deps.extend([bazel_go_library(pkg) for pkg in tags_values_pkgs["openapi-gen"]["true"]])
|
||||
return deps
|
||||
|
||||
def gen_openapi(outs, output_pkg):
|
||||
def applies(pkg, prefixes, default):
|
||||
if prefixes == None or len(prefixes) == 0:
|
||||
return default
|
||||
for prefix in prefixes:
|
||||
if pkg == prefix or pkg.startswith(prefix + "/"):
|
||||
return True
|
||||
return False
|
||||
|
||||
def gen_openapi(outs, output_pkg, include_pkgs=[], exclude_pkgs=[]):
|
||||
"""Calls openapi-gen to produce the zz_generated.openapi.go file,
|
||||
which should be provided in outs.
|
||||
output_pkg should be set to the full go package name for this generated file.
|
||||
@ -72,7 +80,7 @@ def gen_openapi(outs, output_pkg):
|
||||
"--output-file-base zz_generated.openapi",
|
||||
"--output-package " + output_pkg,
|
||||
"--report-filename tmp_api_violations.report",
|
||||
"--input-dirs " + ",".join([go_pkg(pkg) for pkg in tags_values_pkgs["openapi-gen"]["true"]]),
|
||||
"--input-dirs " + ",".join([go_pkg(pkg) for pkg in tags_values_pkgs["openapi-gen"]["true"] if applies(pkg, include_pkgs, True) and not applies(pkg, exclude_pkgs, False)]),
|
||||
"&& cp $$GOPATH/src/" + output_pkg + "/zz_generated.openapi.go $$GO_GENRULE_EXECROOT/$(location :zz_generated.openapi.go)",
|
||||
"&& rm tmp_api_violations.report",
|
||||
]),
|
||||
|
@ -30,7 +30,7 @@ fi
|
||||
|
||||
# Remove generated files prior to running kazel.
|
||||
# TODO(spxtr): Remove this line once Bazel is the only way to build.
|
||||
rm -f "${KUBE_ROOT}/pkg/generated/openapi/zz_generated.openapi.go"
|
||||
rm -f "${KUBE_ROOT}/{pkg/generated,staging/src/k8s.io/apiextensions-apiserver/pkg/client,staging/src/k8s.io/kube-aggregator/pkg/client}/openapi/zz_generated.openapi.go"
|
||||
|
||||
_tmpdir="$(kube::realpath "$(mktemp -d -t verify-bazel.XXXXXX)")"
|
||||
kube::util::trap_add "rm -rf ${_tmpdir}" EXIT
|
||||
|
@ -5,6 +5,10 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
|
||||
|
||||
gen_openapi(
|
||||
outs = ["zz_generated.openapi.go"],
|
||||
exclude_pkgs = [
|
||||
"staging/src/k8s.io/code-generator",
|
||||
"staging/src/k8s.io/sample-apiserver",
|
||||
],
|
||||
output_pkg = "k8s.io/kubernetes/pkg/generated/openapi",
|
||||
)
|
||||
|
||||
|
@ -1,16 +1,26 @@
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
load("//build:code_generation.bzl", "gen_openapi", "openapi_deps")
|
||||
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||
|
||||
gen_openapi(
|
||||
outs = ["zz_generated.openapi.go"],
|
||||
include_pkgs = [
|
||||
"staging/src/k8s.io/apimachinery/pkg/apis/meta/v1",
|
||||
"staging/src/k8s.io/apimachinery/pkg/runtime",
|
||||
"staging/src/k8s.io/apimachinery/pkg/version",
|
||||
"staging/src/k8s.io/sample-apiserver",
|
||||
],
|
||||
output_pkg = "k8s.io/sample-apiserver/pkg/generated/openapi",
|
||||
)
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["zz_generated.openapi.go"],
|
||||
importmap = "k8s.io/kubernetes/vendor/k8s.io/sample-apiserver/pkg/generated/openapi",
|
||||
importpath = "k8s.io/sample-apiserver/pkg/generated/openapi",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||
"//vendor/github.com/go-openapi/spec:go_default_library",
|
||||
"//vendor/k8s.io/kube-openapi/pkg/common:go_default_library",
|
||||
],
|
||||
deps = openapi_deps(), # keep
|
||||
)
|
||||
|
||||
filegroup(
|
||||
|
Loading…
Reference in New Issue
Block a user