repositories.bzl 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. load(":envoy_http_archive.bzl", "envoy_http_archive")
  2. load(":external_deps.bzl", "load_repository_locations")
  3. load(":repository_locations.bzl", "REPOSITORY_LOCATIONS_SPEC")
  4. REPOSITORY_LOCATIONS = load_repository_locations(REPOSITORY_LOCATIONS_SPEC)
  5. # Use this macro to reference any HTTP archive from bazel/repository_locations.bzl.
  6. def external_http_archive(name, **kwargs):
  7. envoy_http_archive(
  8. name,
  9. locations = REPOSITORY_LOCATIONS,
  10. **kwargs
  11. )
  12. def api_dependencies():
  13. external_http_archive(
  14. name = "bazel_skylib",
  15. )
  16. external_http_archive(
  17. name = "com_envoyproxy_protoc_gen_validate",
  18. )
  19. external_http_archive(
  20. name = "com_google_googleapis",
  21. )
  22. external_http_archive(
  23. name = "com_github_bazelbuild_buildtools",
  24. )
  25. external_http_archive(
  26. name = "com_github_cncf_udpa",
  27. )
  28. external_http_archive(
  29. name = "prometheus_metrics_model",
  30. build_file_content = PROMETHEUSMETRICS_BUILD_CONTENT,
  31. )
  32. external_http_archive(
  33. name = "opencensus_proto",
  34. )
  35. external_http_archive(
  36. name = "rules_proto",
  37. )
  38. external_http_archive(
  39. name = "com_github_openzipkin_zipkinapi",
  40. build_file_content = ZIPKINAPI_BUILD_CONTENT,
  41. )
  42. external_http_archive(
  43. name = "opentelemetry_proto",
  44. build_file_content = OPENTELEMETRY_LOGS_BUILD_CONTENT,
  45. )
  46. external_http_archive(
  47. name = "com_github_bufbuild_buf",
  48. build_file_content = BUF_BUILD_CONTENT,
  49. tags = ["manual"],
  50. )
  51. PROMETHEUSMETRICS_BUILD_CONTENT = """
  52. load("@envoy_api//bazel:api_build_system.bzl", "api_cc_py_proto_library")
  53. load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
  54. api_cc_py_proto_library(
  55. name = "client_model",
  56. srcs = [
  57. "io/prometheus/client/metrics.proto",
  58. ],
  59. visibility = ["//visibility:public"],
  60. )
  61. go_proto_library(
  62. name = "client_model_go_proto",
  63. importpath = "github.com/prometheus/client_model/go",
  64. proto = ":client_model",
  65. visibility = ["//visibility:public"],
  66. )
  67. """
  68. OPENCENSUSTRACE_BUILD_CONTENT = """
  69. load("@envoy_api//bazel:api_build_system.bzl", "api_cc_py_proto_library")
  70. load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
  71. api_cc_py_proto_library(
  72. name = "trace_model",
  73. srcs = [
  74. "trace.proto",
  75. ],
  76. visibility = ["//visibility:public"],
  77. )
  78. go_proto_library(
  79. name = "trace_model_go_proto",
  80. importpath = "trace_model",
  81. proto = ":trace_model",
  82. visibility = ["//visibility:public"],
  83. )
  84. """
  85. ZIPKINAPI_BUILD_CONTENT = """
  86. load("@envoy_api//bazel:api_build_system.bzl", "api_cc_py_proto_library")
  87. load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
  88. api_cc_py_proto_library(
  89. name = "zipkin",
  90. srcs = [
  91. "zipkin-jsonv2.proto",
  92. "zipkin.proto",
  93. ],
  94. visibility = ["//visibility:public"],
  95. )
  96. go_proto_library(
  97. name = "zipkin_go_proto",
  98. proto = ":zipkin",
  99. visibility = ["//visibility:public"],
  100. )
  101. """
  102. OPENTELEMETRY_LOGS_BUILD_CONTENT = """
  103. load("@envoy_api//bazel:api_build_system.bzl", "api_cc_py_proto_library")
  104. load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
  105. api_cc_py_proto_library(
  106. name = "common",
  107. srcs = [
  108. "opentelemetry/proto/common/v1/common.proto",
  109. ],
  110. visibility = ["//visibility:public"],
  111. )
  112. go_proto_library(
  113. name = "common_go_proto",
  114. importpath = "go.opentelemetry.io/proto/otlp/common/v1",
  115. proto = ":common",
  116. visibility = ["//visibility:public"],
  117. )
  118. # TODO(snowp): Generating one Go package from all of these protos could cause problems in the future,
  119. # but nothing references symbols from collector or resource so we're fine for now.
  120. api_cc_py_proto_library(
  121. name = "logs",
  122. srcs = [
  123. "opentelemetry/proto/collector/logs/v1/logs_service.proto",
  124. "opentelemetry/proto/logs/v1/logs.proto",
  125. "opentelemetry/proto/resource/v1/resource.proto",
  126. ],
  127. deps = [
  128. "//:common",
  129. ],
  130. visibility = ["//visibility:public"],
  131. )
  132. go_proto_library(
  133. name = "logs_go_proto",
  134. importpath = "go.opentelemetry.io/proto/otlp/logs/v1",
  135. proto = ":logs",
  136. visibility = ["//visibility:public"],
  137. )
  138. """
  139. BUF_BUILD_CONTENT = """
  140. package(
  141. default_visibility = ["//visibility:public"],
  142. )
  143. filegroup(
  144. name = "buf",
  145. srcs = [
  146. "@com_github_bufbuild_buf//:bin/buf",
  147. ],
  148. tags = ["manual"], # buf is downloaded as a linux binary; tagged manual to prevent build for non-linux users
  149. )
  150. """