mirror of https://github.com/istio/api.git
441 lines
17 KiB
Makefile
441 lines
17 KiB
Makefile
# Copyright Istio 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.
|
|
|
|
all: generate
|
|
|
|
########################
|
|
# setup
|
|
########################
|
|
|
|
repo_dir := .
|
|
out_path = /tmp
|
|
|
|
protoc = protoc -Icommon-protos -I.
|
|
protolock = protolock
|
|
protolock_release = /bin/bash scripts/check-release-locks.sh
|
|
prototool = prototool
|
|
annotations_prep = annotations_prep
|
|
htmlproofer = htmlproofer
|
|
cue = cue -paths=common-protos
|
|
|
|
########################
|
|
# protoc_gen_gogo*
|
|
########################
|
|
|
|
gogofast_plugin_prefix := --gogofast_out=plugins=grpc,
|
|
gogoslick_plugin_prefix := --gogoslick_out=plugins=grpc,
|
|
|
|
comma := ,
|
|
empty :=
|
|
space := $(empty) $(empty)
|
|
|
|
importmaps := \
|
|
gogoproto/gogo.proto=github.com/gogo/protobuf/gogoproto \
|
|
google/protobuf/any.proto=github.com/gogo/protobuf/types \
|
|
google/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor \
|
|
google/protobuf/duration.proto=github.com/gogo/protobuf/types \
|
|
google/protobuf/struct.proto=github.com/gogo/protobuf/types \
|
|
google/protobuf/timestamp.proto=github.com/gogo/protobuf/types \
|
|
google/protobuf/wrappers.proto=github.com/gogo/protobuf/types \
|
|
google/rpc/status.proto=istio.io/gogo-genproto/googleapis/google/rpc \
|
|
google/rpc/code.proto=istio.io/gogo-genproto/googleapis/google/rpc \
|
|
google/rpc/error_details.proto=istio.io/gogo-genproto/googleapis/google/rpc \
|
|
|
|
# generate mapping directive with M<proto>:<go pkg>, format for each proto file
|
|
mapping_with_spaces := $(foreach map,$(importmaps),M$(map),)
|
|
gogo_mapping := $(subst $(space),$(empty),$(mapping_with_spaces))
|
|
|
|
gogofast_plugin := $(gogofast_plugin_prefix)$(gogo_mapping):$(out_path)
|
|
gogoslick_plugin := $(gogoslick_plugin_prefix)$(gogo_mapping):$(out_path)
|
|
|
|
########################
|
|
# protoc_gen_python
|
|
########################
|
|
|
|
python_output_path := python/istio_api
|
|
protoc_gen_python_prefix := --python_out=,
|
|
protoc_gen_python_plugin := $(protoc_gen_python_prefix):$(repo_dir)/$(python_output_path)
|
|
|
|
########################
|
|
# protoc_gen_docs
|
|
########################
|
|
|
|
protoc_gen_docs_plugin := --docs_out=warnings=true,dictionary=$(repo_dir)/dictionaries/en-US,custom_word_list=$(repo_dir)/dictionaries/custom.txt,mode=html_fragment_with_front_matter:$(repo_dir)/
|
|
protoc_gen_docs_plugin_for_networking := --docs_out=warnings=true,dictionary=$(repo_dir)/dictionaries/en-US,custom_word_list=$(repo_dir)/dictionaries/custom.txt,per_file=true,mode=html_fragment_with_front_matter:$(repo_dir)/
|
|
|
|
#####################
|
|
# Generation Rules
|
|
#####################
|
|
|
|
generate: \
|
|
generate-type \
|
|
generate-mcp \
|
|
generate-mesh \
|
|
generate-mixer \
|
|
generate-networking \
|
|
generate-rbac \
|
|
generate-authn \
|
|
generate-security \
|
|
generate-envoy \
|
|
generate-policy \
|
|
generate-annotations \
|
|
generate-openapi-schema
|
|
|
|
#####################
|
|
# type/...
|
|
#####################
|
|
|
|
type_v1beta1_path := type/v1beta1
|
|
type_v1beta1_protos := $(wildcard $(type_v1beta1_path)/*.proto)
|
|
type_v1beta1_pb_gos := $(type_v1beta1_protos:.proto=.pb.go)
|
|
type_v1beta1_pb_pythons := $(patsubst $(type_v1beta1_path)/%.proto,$(python_output_path)/$(type_v1beta1_path)/%_pb2.py,$(type_v1beta1_protos))
|
|
type_v1beta1_pb_doc := $(type_v1beta1_path)/istio.type.v1beta1.pb.html
|
|
type_v1beta1_openapi := $(type_v1beta1_protos:.proto=.json)
|
|
|
|
$(type_v1beta1_pb_gos) $(type_v1beta1_pb_doc) $(type_v1beta1_pb_pythons): $(type_v1beta1_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(type_v1beta1_path) $(protoc_gen_python_plugin) $^
|
|
@cp -r /tmp/istio.io/api/type/* type
|
|
|
|
generate-type: $(type_v1beta1_pb_gos) $(type_v1beta1_pb_doc) $(type_v1beta1_pb_pythons)
|
|
|
|
clean-type:
|
|
@rm -fr $(type_v1beta1_pb_gos) $(type_v1beta1_pb_docs) $(type_v1beta1_pb_pythons)
|
|
|
|
#####################
|
|
# mcp/...
|
|
#####################
|
|
|
|
mcp_v1alpha1_path := mcp/v1alpha1
|
|
mcp_v1alpha1_protos := $(wildcard $(mcp_v1alpha1_path)/*.proto)
|
|
mcp_v1alpha1_pb_gos := $(mcp_v1alpha1_protos:.proto=.pb.go)
|
|
mcp_v1alpha1_pb_pythons := $(patsubst $(mcp_v1alpha1_path)/%.proto,$(python_output_path)/$(mcp_v1alpha1_path)/%_pb2.py,$(mcp_v1alpha1_protos))
|
|
mcp_v1alpha1_openapi := $(mcp_v1alpha1_path)/istio.mcp.v1alpha1.json
|
|
|
|
$(mcp_v1alpha1_pb_gos) $(mcp_v1alpha1_pb_pythons): $(mcp_v1alpha1_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(gogofast_plugin) $(protoc_gen_python_plugin) $^
|
|
@cp -r /tmp/istio.io/api/mcp/* mcp
|
|
|
|
generate-mcp: $(mcp_v1alpha1_pb_gos) $(mcp_v1alpha1_pb_doc) $(mcp_v1alpha1_pb_pythons)
|
|
|
|
clean-mcp:
|
|
@rm -fr $(mcp_v1alpha1_pb_gos) $(mcp_v1alpha1_pb_pythons)
|
|
|
|
#####################
|
|
# mesh/...
|
|
#####################
|
|
|
|
mesh_v1alpha1_path := mesh/v1alpha1
|
|
mesh_v1alpha1_protos := $(wildcard $(mesh_v1alpha1_path)/*.proto)
|
|
mesh_v1alpha1_pb_gos := $(mesh_v1alpha1_protos:.proto=.pb.go)
|
|
mesh_v1alpha1_pb_pythons := $(patsubst $(mesh_v1alpha1_path)/%.proto,$(python_output_path)/$(mesh_v1alpha1_path)/%_pb2.py,$(mesh_v1alpha1_protos))
|
|
mesh_v1alpha1_pb_doc := $(mesh_v1alpha1_path)/istio.mesh.v1alpha1.pb.html
|
|
mesh_v1alpha1_openapi := $(mesh_v1alpha1_path)/istio.mesh.v1alpha1.json
|
|
|
|
$(mesh_v1alpha1_pb_gos) $(mesh_v1alpha1_pb_doc) $(mesh_v1alpha1_pb_pythons): $(mesh_v1alpha1_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(mesh_v1alpha1_path) $(protoc_gen_python_plugin) $^
|
|
@cp -r /tmp/istio.io/api/mesh/* mesh
|
|
|
|
generate-mesh: $(mesh_v1alpha1_pb_gos) $(mesh_v1alpha1_pb_doc) $(mesh_v1alpha1_pb_pythons)
|
|
|
|
clean-mesh:
|
|
@rm -fr $(mesh_v1alpha1_pb_gos) $(mesh_v1alpha1_pb_doc) $(mesh_v1alpha1_pb_pythons)
|
|
|
|
#####################
|
|
# policy/...
|
|
#####################
|
|
|
|
policy_v1beta1_path := policy/v1beta1
|
|
policy_v1beta1_protos := $(wildcard $(policy_v1beta1_path)/*.proto)
|
|
policy_v1beta1_pb_gos := $(policy_v1beta1_protos:.proto=.pb.go)
|
|
policy_v1beta1_pb_pythons := $(patsubst $(policy_v1beta1_path)/%.proto,$(python_output_path)/$(policy_v1beta1_path)/%_pb2.py,$(policy_v1beta1_protos))
|
|
policy_v1beta1_pb_doc := $(policy_v1beta1_path)/istio.policy.v1beta1.pb.html
|
|
policy_v1beta1_openapi := $(policy_v1beta1_path)/istio.policy.v1beta1.json
|
|
|
|
$(policy_v1beta1_pb_gos) $(policy_v1beta1_pb_doc) $(policy_v1beta1_pb_pythons): $(policy_v1beta1_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(gogoslick_plugin) $(protoc_gen_docs_plugin)$(policy_v1beta1_path) $(protoc_gen_python_plugin) $^
|
|
@cp -r /tmp/istio.io/api/policy/* policy
|
|
|
|
generate-policy: $(policy_v1beta1_pb_gos) $(policy_v1beta1_pb_doc) $(policy_v1beta1_pb_pythons)
|
|
|
|
clean-policy:
|
|
@rm -fr $(policy_v1beta1_pb_gos) policy/v1beta1/fixed_cfg.pb.go $(policy_v1beta1_pb_doc) $(policy_v1beta1_pb_pythons)
|
|
|
|
#####################
|
|
# mixer/...
|
|
#####################
|
|
|
|
mixer_v1_path := mixer/v1
|
|
mixer_v1_protos := $(wildcard $(mixer_v1_path)/*.proto)
|
|
mixer_v1_pb_gos := $(mixer_v1_protos:.proto=.pb.go)
|
|
mixer_v1_pb_pythons := $(patsubst $(mixer_v1_path)/%.proto,$(python_output_path)/$(mixer_v1_path)/%_pb2.py,$(mixer_v1_protos))
|
|
mixer_v1_openapi := $(mixer_v1_path)/istio.mixer.v1.json
|
|
|
|
mixer_config_client_path := mixer/v1/config/client
|
|
mixer_config_client_protos := $(wildcard $(mixer_config_client_path)/*.proto)
|
|
mixer_config_client_pb_gos := $(mixer_config_client_protos:.proto=.pb.go)
|
|
mixer_config_client_pb_pythons := $(patsubst $(mixer_config_client_path)/%.proto,$(python_output_path)/$(mixer_client_config_path)/%_pb2.py,$(mixer_client_config_protos))
|
|
mixer_config_client_pb_doc := $(mixer_config_client_path)/istio.mixer.v1.config.client.pb.html
|
|
mixer_config_client_openapi := $(mixer_config_client_path)/istio.mixer.v1.config.client.json
|
|
|
|
mixer_adapter_model_v1beta1_path := mixer/adapter/model/v1beta1
|
|
mixer_adapter_model_v1beta1_protos := $(wildcard $(mixer_adapter_model_v1beta1_path)/*.proto)
|
|
mixer_adapter_model_v1beta1_pb_gos := $(mixer_adapter_model_v1beta1_protos:.proto=.pb.go)
|
|
mixer_adapter_model_v1beta1_pb_pythons := $(patsubst $(mixer_adapter_model_v1beta1_path)/%.proto,$(python_output_path)/$(mixer_client_config_path)/%_pb2.py,$(mixer_client_config_protos))
|
|
mixer_adapter_model_v1beta1_openapi := $(mixer_adapter_model_v1beta1_path)/istio.mixer.adapter.model.v1beta1.json
|
|
|
|
$(mixer_v1_pb_gos) $(mixer_v1_pb_pythons): $(mixer_v1_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(gogoslick_plugin) $(protoc_gen_python_plugin) $^
|
|
@cp -r /tmp/istio.io/api/mixer/* mixer
|
|
|
|
$(mixer_config_client_pb_gos) $(mixer_config_client_pb_doc) $(mixer_config_client_pb_pythons): $(mixer_config_client_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(gogoslick_plugin) $(protoc_gen_docs_plugin)$(mixer_config_client_path) $(protoc_gen_python_plugin) $^
|
|
@cp -r /tmp/istio.io/api/mixer/* mixer
|
|
|
|
$(mixer_adapter_model_v1beta1_pb_gos) $(mixer_adapter_model_v1beta1_pb_pythons): $(mixer_adapter_model_v1beta1_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(gogoslick_plugin) $(protoc_gen_python_plugin) $^
|
|
@cp -r /tmp/istio.io/api/mixer/* mixer
|
|
|
|
generate-mixer: \
|
|
$(mixer_v1_pb_gos) $(mixer_v1_pb_pythons) \
|
|
$(mixer_config_client_pb_gos) $(mixer_config_client_pb_doc) $(mixer_config_client_pb_pythons) \
|
|
$(mixer_adapter_model_v1beta1_pb_gos) $(mixer_adapter_model_v1beta1_pb_pythons)
|
|
|
|
clean-mixer:
|
|
@rm -fr $(mixer_v1_pb_gos) $(mixer_v1_pb_pythons)
|
|
@rm -fr $(mixer_config_client_pb_gos) $(mixer_config_client_pb_doc) $(mixer_config_client_pb_pythons)
|
|
@rm -fr $(mixer_adapter_model_v1beta1_pb_gos) $(mixer_adapter_model_v1beta1_pb_pythons)
|
|
|
|
#####################
|
|
# networking/...
|
|
#####################
|
|
|
|
networking_v1alpha3_path := networking/v1alpha3
|
|
networking_v1alpha3_protos := $(wildcard $(networking_v1alpha3_path)/*.proto)
|
|
networking_v1alpha3_pb_gos := $(networking_v1alpha3_protos:.proto=.pb.go)
|
|
networking_v1alpha3_pb_pythons := $(patsubst $(networking_v1alpha3_path)/%.proto,$(python_output_path)/$(networking_v1alpha3_path)/%_pb2.py,$(networking_v1alpha3_protos))
|
|
networking_v1alpha3_pb_docs := $(networking_v1alpha3_protos:.proto=.pb.html)
|
|
networking_v1alpha3_openapi := $(networking_v1alpha3_protos:.proto=.json)
|
|
|
|
$(networking_v1alpha3_pb_gos) $(networking_v1alpha3_pb_docs) $(networking_v1alpha3_pb_pythons): $(networking_v1alpha3_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(gogofast_plugin) $(protoc_gen_docs_plugin_for_networking)$(networking_v1alpha3_path) $(protoc_gen_python_plugin) $^
|
|
@cp -r /tmp/istio.io/api/networking/* networking
|
|
|
|
generate-networking: $(networking_v1alpha3_pb_gos) $(networking_v1alpha3_pb_docs) $(networking_v1alpha3_pb_pythons)
|
|
|
|
clean-networking:
|
|
@rm -fr $(networking_v1alpha3_pb_gos) $(networking_v1alpha3_pb_docs) $(networking_v1alpha3_pb_pythons)
|
|
|
|
#####################
|
|
# rbac/...
|
|
#####################
|
|
|
|
rbac_v1alpha1_path := rbac/v1alpha1
|
|
rbac_v1alpha1_protos := $(wildcard $(rbac_v1alpha1_path)/*.proto)
|
|
rbac_v1alpha1_pb_gos := $(rbac_v1alpha1_protos:.proto=.pb.go)
|
|
rbac_v1alpha1_pb_pythons := $(patsubst $(rbac_v1alpha1_path)/%.proto,$(python_output_path)/$(rbac_v1alpha1_path)/%_pb2.py,$(rbac_v1alpha1_protos))
|
|
rbac_v1alpha1_pb_doc := $(rbac_v1alpha1_path)/istio.rbac.v1alpha1.pb.html
|
|
rbac_v1alpha1_openapi := $(rbac_v1alpha1_path)/istio.rbac.v1alpha1.json
|
|
|
|
$(rbac_v1alpha1_pb_gos) $(rbac_v1alpha1_pb_doc) $(rbac_v1alpha1_pb_pythons): $(rbac_v1alpha1_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(rbac_v1alpha1_path) $(protoc_gen_python_plugin) $^
|
|
@cp -r /tmp/istio.io/api/rbac/* rbac
|
|
|
|
generate-rbac: $(rbac_v1alpha1_pb_gos) $(rbac_v1alpha1_pb_doc) $(rbac_v1alpha1_protos)
|
|
|
|
clean-rbac:
|
|
@rm -fr $(rbac_v1alpha1_pb_gos) $(rbac_v1alpha1_pb_doc) $(rbac_v1alpha1_pb_pythons)
|
|
|
|
#####################
|
|
# authentication/...
|
|
#####################
|
|
|
|
authn_v1alpha1_path := authentication/v1alpha1
|
|
authn_v1alpha1_protos := $(wildcard $(authn_v1alpha1_path)/*.proto)
|
|
authn_v1alpha1_pb_gos := $(authn_v1alpha1_protos:.proto=.pb.go)
|
|
authn_v1alpha1_pb_pythons := $(patsubst $(authn_v1alpha1_path)/%.proto,$(python_output_path)/$(authn_v1alpha1_path)/%_pb2.py,$(authn_v1alpha1_protos))
|
|
authn_v1alpha1_pb_doc := $(authn_v1alpha1_path)/istio.authentication.v1alpha1.pb.html
|
|
authn_v1alpha1_openapi := $(authn_v1alpha1_path)/istio.authentication.v1alpha1.json
|
|
|
|
$(authn_v1alpha1_pb_gos) $(authn_v1alpha1_pb_doc) $(authn_v1alpha1_pb_pythons): $(authn_v1alpha1_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(authn_v1alpha1_path) $(protoc_gen_python_plugin) $^
|
|
@cp -r /tmp/istio.io/api/authentication/* authentication
|
|
|
|
generate-authn: $(authn_v1alpha1_pb_gos) $(authn_v1alpha1_pb_doc) $(authn_v1alpha1_pb_pythons)
|
|
|
|
clean-authn:
|
|
@rm -fr $(authn_v1alpha1_pb_gos) $(authn_v1alpha1_pb_doc) $(authn_v1alpha1_pb_pythons)
|
|
|
|
#####################
|
|
# security/...
|
|
#####################
|
|
|
|
security_v1beta1_path := security/v1beta1
|
|
security_v1beta1_protos := $(wildcard $(security_v1beta1_path)/*.proto)
|
|
security_v1beta1_pb_gos := $(security_v1beta1_protos:.proto=.pb.go)
|
|
security_v1beta1_pb_pythons := $(patsubst $(security_v1beta1_path)/%.proto,$(python_output_path)/$(security_v1beta1_path)/%_pb2.py,$(security_v1beta1_protos))
|
|
security_v1beta1_pb_doc := $(security_v1beta1_path)/istio.security.v1beta1.pb.html
|
|
security_v1beta1_openapi := $(security_v1beta1_protos:.proto=.json)
|
|
|
|
$(security_v1beta1_pb_gos) $(security_v1beta1_pb_doc) $(security_v1beta1_pb_pythons): $(security_v1beta1_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(security_v1beta1_path) $(protoc_gen_python_plugin) $^
|
|
@cp -r /tmp/istio.io/api/security/* security
|
|
|
|
generate-security: $(security_v1beta1_pb_gos) $(security_v1beta1_pb_doc) $(security_v1beta1_pb_pythons)
|
|
|
|
clean-security:
|
|
@rm -fr $(security_v1beta1_pb_gos) $(security_v1beta1_pb_docs) $(security_v1beta1_pb_pythons)
|
|
|
|
#####################
|
|
# envoy/...
|
|
#####################
|
|
|
|
envoy_path := envoy
|
|
envoy_protos := $(shell find $(envoy_path) -type f -name '*.proto' | sort)
|
|
envoy_pb_gos := $(envoy_protos:.proto=.pb.go)
|
|
envoy_pb_pythons := $(patsubst $(envoy_path)/%.proto,$(python_output_path)/$(envoy_path)/%_pb2.py,$(envoy_protos))
|
|
|
|
$(envoy_pb_gos): %.pb.go : %.proto
|
|
@$(protolock) status
|
|
@$(protoc) $(gogofast_plugin) $<
|
|
@cp -r /tmp/istio.io/api/envoy/* envoy
|
|
|
|
$(envoy_pb_pythons): $(envoy_protos)
|
|
@$(protolock) status
|
|
@$(protoc) $(protoc_gen_python_plugin) $^
|
|
|
|
generate-envoy: $(envoy_pb_gos) $(envoy_pb_pythons)
|
|
|
|
clean-envoy:
|
|
@rm -fr $(envoy_pb_gos) $(envoy_pb_pythons)
|
|
|
|
#####################
|
|
# annotation/...
|
|
#####################
|
|
|
|
annotations_path := annotation
|
|
annotations_pb_go := $(annotations_path)/annotations.gen.go
|
|
annotations_pb_doc := $(annotations_path)/annotations.pb.html
|
|
|
|
$(annotations_pb_go) $(annotations_pb_doc): $(annotations_path)/annotations.yaml
|
|
@$(annotations_prep) --input $(annotations_path)/annotations.yaml --output $(annotations_pb_go) --html_output $(annotations_pb_doc)
|
|
|
|
generate-annotations: $(annotations_pb_go) $(annotations_pb_doc)
|
|
|
|
clean-annotations:
|
|
@rm -fr $(annotations_pb_go) $(annotations_pb_doc)
|
|
|
|
#####################
|
|
# Protolock
|
|
#####################
|
|
|
|
proto-commit:
|
|
@$(protolock) commit
|
|
|
|
proto-commit-force:
|
|
@$(protolock) commit --force
|
|
|
|
proto-status:
|
|
@$(protolock) status
|
|
|
|
release-lock-status:
|
|
@$(protolock_release)
|
|
|
|
#####################
|
|
# Misc
|
|
#####################
|
|
|
|
lint: lint-all
|
|
@$(htmlproofer) . --url-swap "istio.io:preliminary.istio.io" --assume-extension --check-html --check-external-hash --check-opengraph --timeframe 2d --storage-dir $(repo_dir)/.htmlproofer --url-ignore "/localhost/"
|
|
|
|
fmt: format-python
|
|
|
|
#####################
|
|
# OpenAPI Schema
|
|
#####################
|
|
|
|
all_protos := \
|
|
$(mcp_v1alpha1_protos) \
|
|
$(mesh_v1alpha1_protos) \
|
|
$(policy_v1beta1_protos) \
|
|
$(mixer_v1_protos) \
|
|
$(mixer_config_client_protos) \
|
|
$(mixer_adapter_model_v1beta1_protos) \
|
|
$(networking_v1alpha3_protos) \
|
|
$(rbac_v1alpha1_protos) \
|
|
$(authn_v1alpha1_protos) \
|
|
$(security_v1beta1_protos) \
|
|
$(type_v1beta1_protos)
|
|
|
|
all_openapi := \
|
|
$(mcp_v1alpha1_openapi) \
|
|
$(mesh_v1alpha1_openapi) \
|
|
$(policy_v1beta1_openapi) \
|
|
$(mixer_v1_openapi) \
|
|
$(mixer_config_client_openapi) \
|
|
$(mixer_adapter_model_v1beta1_openapi) \
|
|
$(networking_v1alpha3_openapi) \
|
|
$(rbac_v1alpha1_openapi) \
|
|
$(authn_v1alpha1_openapi) \
|
|
$(security_v1beta1_openapi) \
|
|
$(type_v1beta1_openapi)
|
|
|
|
$(all_openapi): $(all_protos)
|
|
@$(cue) -f=$(repo_dir)/cue.yaml
|
|
|
|
generate-openapi-schema: $(all_openapi)
|
|
|
|
clean-openapi-schema:
|
|
@rm -fr $(all_openapi)
|
|
|
|
#####################
|
|
# Cleanup
|
|
#####################
|
|
|
|
clean: \
|
|
clean-mcp \
|
|
clean-mesh \
|
|
clean-mixer \
|
|
clean-networking \
|
|
clean-rbac \
|
|
clean-authn \
|
|
clean-envoy \
|
|
clean-policy \
|
|
clean-annotations \
|
|
clean-openapi-schema \
|
|
clean-security \
|
|
clean-type
|
|
|
|
#####################
|
|
# CI System
|
|
#####################
|
|
|
|
presubmit: clean generate proto-commit lint release-lock-status
|
|
postsubmit: presubmit
|
|
|
|
#####################
|
|
# Common definitions
|
|
#####################
|
|
|
|
include common/Makefile.common.mk |