blob: bb3caf71d542f7b664e9d178165699606015acb9 [file] [log] [blame]
Sean Condon0a884ad2019-10-28 17:57:21 +00001workspace(
2 name = "org_onosproject_onos",
3 managed_directories = {
4 "@gui1_npm": ["tools/gui/node_modules"],
Sean Condon98b6ddb2019-12-24 08:07:40 +00005 "@npm": ["web/gui2/node_modules"],
Sean Condon0a884ad2019-10-28 17:57:21 +00006 },
7)
Ray Milkey6b3775a2018-06-28 11:18:44 -07008
Thomas Vachuska46848a82018-08-13 14:32:05 -07009load("//tools/build/bazel:bazel_version.bzl", "check_bazel_version")
Ray Milkey5063f5b2018-08-15 16:22:30 -070010
Thomas Vachuska46848a82018-08-13 14:32:05 -070011check_bazel_version()
12
Sean Condondfc6dba2019-11-09 11:50:23 +000013load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
14
15# It is necessary to explicitly load this version of bazel-skylib for the
16# GUI build with native bazel e.g. ts_web_test_suite or ts_library. If not specified
17# here an older version is pulled in by something else. It may be possible to update
18# this once other tools are updated
19BAZEL_SKYLIB_VERSION = "1.0.2"
20
21BAZEL_SKYLIB_SHA256 = "97e70364e9249702246c0e9444bccdc4b847bed1eb03c5a3ece4f83dfe6abc44"
22
23http_archive(
24 name = "bazel_skylib",
25 sha256 = BAZEL_SKYLIB_SHA256,
26 urls = [
27 "https://github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % (BAZEL_SKYLIB_VERSION, BAZEL_SKYLIB_VERSION),
28 ],
29)
30
31load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
32
33bazel_skylib_workspace()
34
Thomas Vachuskac4d03772018-11-26 10:53:58 -080035load("//tools/build/bazel:local_jar.bzl", "local_atomix", "local_jar", "local_yang_tools")
Thomas Vachuska9379a072018-08-21 14:19:02 -070036
37# Use this to build against locally built arbitrary 3rd party artifacts
38#local_jar(
39# name = "atomix",
Thomas Vachuskad389a6e2018-10-29 15:17:17 -070040# path = "/Users/tom/atomix/core/target/atomix-3.0.8-SNAPSHOT.jar",
Thomas Vachuska9379a072018-08-21 14:19:02 -070041#)
42
43# Use this to build against locally built Atomix
44#local_atomix(
Thomas Vachuskad389a6e2018-10-29 15:17:17 -070045# path = "/Users/tom/atomix",
46# version = "3.0.8-SNAPSHOT",
Thomas Vachuska9379a072018-08-21 14:19:02 -070047#)
48
Thomas Vachuskac4d03772018-11-26 10:53:58 -080049# Use this to build against locally built YANG tools
50#local_yang_tools(
51# path = "/Users/andrea/onos-yang-tools",
52# version = "2.6-SNAPSHOT",
53#)
54
Carmelo Cascone72893b72018-08-09 00:59:06 -070055load("//tools/build/bazel:generate_workspace.bzl", "generated_maven_jars")
Ray Milkey5063f5b2018-08-15 16:22:30 -070056
Ray Milkey7dac7da2017-08-01 16:56:05 -070057generated_maven_jars()
Carmelo Cascone72893b72018-08-09 00:59:06 -070058
59load("//tools/build/bazel:protobuf_workspace.bzl", "generate_protobuf")
Ray Milkey5063f5b2018-08-15 16:22:30 -070060
Carmelo Cascone72893b72018-08-09 00:59:06 -070061generate_protobuf()
62
Carmelo Casconeb9536692019-05-28 18:15:23 -070063load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
64
65protobuf_deps()
66
Carmelo Cascone72893b72018-08-09 00:59:06 -070067load("//tools/build/bazel:grpc_workspace.bzl", "generate_grpc")
Ray Milkey5063f5b2018-08-15 16:22:30 -070068
Ray Milkey30773582018-07-26 15:52:23 -070069generate_grpc()
Ray Milkey7dac7da2017-08-01 16:56:05 -070070
Carmelo Cascone72893b72018-08-09 00:59:06 -070071load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories")
Carmelo Cascone72893b72018-08-09 00:59:06 -070072
Carmelo Casconeb9536692019-05-28 18:15:23 -070073# We omit as many dependencies as we can and instead import the same via
74# deps.json, so they get wrapped properly for Karaf runtime.
Ray Milkey5063f5b2018-08-15 16:22:30 -070075grpc_java_repositories(
Carmelo Casconeb9536692019-05-28 18:15:23 -070076 omit_bazel_skylib = False,
Ray Milkey0b67f5d2020-01-15 12:26:25 -080077 omit_com_google_android_annotations = True,
Carmelo Cascone6a1ae712018-08-10 12:19:47 -070078 omit_com_google_api_grpc_google_common_protos = True,
Carmelo Cascone6a1ae712018-08-10 12:19:47 -070079 omit_com_google_auth_google_auth_library_credentials = True,
Carmelo Casconeef478a62019-01-29 18:45:22 -080080 omit_com_google_auth_google_auth_library_oauth2_http = True,
Carmelo Cascone72893b72018-08-09 00:59:06 -070081 omit_com_google_code_findbugs_jsr305 = True,
82 omit_com_google_code_gson = True,
Ray Milkey5063f5b2018-08-15 16:22:30 -070083 omit_com_google_errorprone_error_prone_annotations = True,
Carmelo Cascone72893b72018-08-09 00:59:06 -070084 omit_com_google_guava = True,
Ray Milkey0b67f5d2020-01-15 12:26:25 -080085 omit_com_google_guava_failureaccess = True,
Carmelo Casconeef478a62019-01-29 18:45:22 -080086 omit_com_google_j2objc_j2objc_annotations = True,
Carmelo Cascone72893b72018-08-09 00:59:06 -070087 omit_com_google_protobuf = True,
88 omit_com_google_protobuf_javalite = True,
Carmelo Cascone72893b72018-08-09 00:59:06 -070089 omit_com_google_truth_truth = True,
90 omit_com_squareup_okhttp = True,
91 omit_com_squareup_okio = True,
Carmelo Casconeb9536692019-05-28 18:15:23 -070092 omit_io_grpc_grpc_proto = True,
Carmelo Cascone72893b72018-08-09 00:59:06 -070093 omit_io_netty_buffer = True,
Carmelo Cascone72893b72018-08-09 00:59:06 -070094 omit_io_netty_codec = True,
Carmelo Cascone72893b72018-08-09 00:59:06 -070095 omit_io_netty_codec_http = True,
96 omit_io_netty_codec_http2 = True,
Ray Milkey5063f5b2018-08-15 16:22:30 -070097 omit_io_netty_codec_socks = True,
98 omit_io_netty_common = True,
Carmelo Cascone72893b72018-08-09 00:59:06 -070099 omit_io_netty_handler = True,
100 omit_io_netty_handler_proxy = True,
101 omit_io_netty_resolver = True,
102 omit_io_netty_tcnative_boringssl_static = True,
Ray Milkey5063f5b2018-08-15 16:22:30 -0700103 omit_io_netty_transport = True,
104 omit_io_opencensus_api = True,
105 omit_io_opencensus_grpc_metrics = True,
Carmelo Casconecf6a8282019-07-14 20:01:51 -0700106 omit_io_perfmark = True,
Carmelo Casconeb9536692019-05-28 18:15:23 -0700107 omit_javax_annotation = True,
Carmelo Cascone72893b72018-08-09 00:59:06 -0700108 omit_junit_junit = True,
Carmelo Casconeb9536692019-05-28 18:15:23 -0700109 omit_net_zlib = True,
Ray Milkey5063f5b2018-08-15 16:22:30 -0700110 omit_org_apache_commons_lang3 = True,
Ray Milkeyefb6cc52019-04-24 13:45:18 -0700111 omit_org_codehaus_mojo_animal_sniffer_annotations = True,
Carmelo Cascone72893b72018-08-09 00:59:06 -0700112)
113
Carmelo Cascone72893b72018-08-09 00:59:06 -0700114load("//tools/build/bazel:p4lang_workspace.bzl", "generate_p4lang")
Carmelo Cascone72893b72018-08-09 00:59:06 -0700115
Ray Milkey5063f5b2018-08-15 16:22:30 -0700116generate_p4lang()
Carmelo Cascone72893b72018-08-09 00:59:06 -0700117
Yi Tsenge671fc92018-10-31 15:34:30 -0700118load("//tools/build/bazel:gnmi_workspace.bzl", "generate_gnmi")
119
120generate_gnmi()
121
oleksandr.yashchuk@plvision.eu3dbcaaf2019-03-13 14:44:46 +0200122load("//tools/build/bazel:gnoi_workspace.bzl", "generate_gnoi")
123
124generate_gnoi()
125
Sean Condondfc6dba2019-11-09 11:50:23 +0000126# For GUI2 build
Sean Condon0bd777c2021-01-01 14:23:29 +0000127RULES_NODEJS_VERSION = "2.3.2"
Sean Condondfc6dba2019-11-09 11:50:23 +0000128
Sean Condon0bd777c2021-01-01 14:23:29 +0000129RULES_NODEJS_SHA256 = "b3521b29c7cb0c47a1a735cce7e7e811a4f80d8e3720cf3a1b624533e4bb7cb6"
Ray Milkey973d11e2018-12-13 15:55:08 -0800130
Thomas Vachuska13433eb2019-12-02 11:11:13 -0800131load("//tools/build/bazel:topo_workspace.bzl", "generate_topo_device")
132
133generate_topo_device()
134
Sean Condon0a884ad2019-10-28 17:57:21 +0000135http_archive(
Carmelo Cascone72893b72018-08-09 00:59:06 -0700136 name = "build_bazel_rules_nodejs",
Sean Condondfc6dba2019-11-09 11:50:23 +0000137 sha256 = RULES_NODEJS_SHA256,
138 urls = [
139 "https://github.com/bazelbuild/rules_nodejs/releases/download/%s/rules_nodejs-%s.tar.gz" % (RULES_NODEJS_VERSION, RULES_NODEJS_VERSION),
140 ],
Ray Milkey6b3775a2018-06-28 11:18:44 -0700141)
142
Sean Condondfc6dba2019-11-09 11:50:23 +0000143# Rules for compiling sass
Sean Condone4e8f6a2020-04-13 10:30:35 +0100144RULES_SASS_VERSION = "1.25.0"
Ray Milkey5063f5b2018-08-15 16:22:30 -0700145
Sean Condone4e8f6a2020-04-13 10:30:35 +0100146RULES_SASS_SHA256 = "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647"
Sean Condondfc6dba2019-11-09 11:50:23 +0000147
148http_archive(
149 name = "io_bazel_rules_sass",
150 sha256 = RULES_SASS_SHA256,
151 strip_prefix = "rules_sass-%s" % RULES_SASS_VERSION,
Sean Condon98b6ddb2019-12-24 08:07:40 +0000152 urls = [
153 "https://github.com/bazelbuild/rules_sass/archive/%s.zip" % RULES_SASS_VERSION,
154 "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/%s.zip" % RULES_SASS_VERSION,
155 ],
Sean Condondfc6dba2019-11-09 11:50:23 +0000156)
157
Sean Condon98b6ddb2019-12-24 08:07:40 +0000158load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "npm_install", "yarn_install")
Sean Condondfc6dba2019-11-09 11:50:23 +0000159
160# Setup the Node repositories. We need a NodeJS version that is more recent than v10.15.0
161# because "selenium-webdriver" which is required for "ng e2e" cannot be installed.
Sean Condon2f1fb8d2018-08-31 16:05:02 +0100162node_repositories(
Sean Condon0a884ad2019-10-28 17:57:21 +0000163 node_repositories = {
Sean Condon0bd777c2021-01-01 14:23:29 +0000164 "10.16.0-linux_arm64": ("node-v10.16.0-linux-arm64.tar.gz", "node-v10.16.0-linux-arm64", "2d84a777318bc95dd2a201ab8d700aea7e20641b3ece0c048399398dc645cbd7"),
Sean Condon0a884ad2019-10-28 17:57:21 +0000165 "10.16.0-darwin_amd64": ("node-v10.16.0-darwin-x64.tar.gz", "node-v10.16.0-darwin-x64", "6c009df1b724026d84ae9a838c5b382662e30f6c5563a0995532f2bece39fa9c"),
166 "10.16.0-linux_amd64": ("node-v10.16.0-linux-x64.tar.xz", "node-v10.16.0-linux-x64", "1827f5b99084740234de0c506f4dd2202a696ed60f76059696747c34339b9d48"),
167 "10.16.0-windows_amd64": ("node-v10.16.0-win-x64.zip", "node-v10.16.0-win-x64", "aa22cb357f0fb54ccbc06b19b60e37eefea5d7dd9940912675d3ed988bf9a059"),
168 },
169 node_version = "10.16.0",
Sean Condon2f1fb8d2018-08-31 16:05:02 +0100170)
Ray Milkey6b3775a2018-06-28 11:18:44 -0700171
Sean Condondfc6dba2019-11-09 11:50:23 +0000172# TODO give this a name like `gui2_npm` once the @bazel/karma tools can tolerate a name other than `npm`
173yarn_install(
174 name = "npm",
Sean Condon98b6ddb2019-12-24 08:07:40 +0000175 package_json = "//web/gui2:package.json",
Sean Condone4e8f6a2020-04-13 10:30:35 +0100176 use_global_yarn_cache = True,
Sean Condon98b6ddb2019-12-24 08:07:40 +0000177 yarn_lock = "//web/gui2:yarn.lock",
Sean Condondfc6dba2019-11-09 11:50:23 +0000178)
Sean Condon0a884ad2019-10-28 17:57:21 +0000179
180npm_install(
181 # Name this npm so that Bazel Label references look like @npm//package
182 name = "gui1_npm",
183 package_json = "//tools/gui:package.json",
184 package_lock_json = "//tools/gui:package-lock.json",
185)
186
Sean Condon0a884ad2019-10-28 17:57:21 +0000187# Install any Bazel rules which were extracted earlier by the npm_install rule.
Sean Condondfc6dba2019-11-09 11:50:23 +0000188# Versions are set in web/gui2-fw-lib/package.json
Ray Milkey5063f5b2018-08-15 16:22:30 -0700189
Sean Condon98b6ddb2019-12-24 08:07:40 +0000190RULES_WEBTESTING_VERSION = "0.3.3"
Sean Condondfc6dba2019-11-09 11:50:23 +0000191
Sean Condon98b6ddb2019-12-24 08:07:40 +0000192RULES_WEBTESTING_SHA256 = "9bb461d5ef08e850025480bab185fd269242d4e533bca75bfb748001ceb343c3"
Sean Condondfc6dba2019-11-09 11:50:23 +0000193
194http_archive(
195 name = "io_bazel_rules_webtesting",
196 sha256 = RULES_WEBTESTING_SHA256,
197 urls = [
198 "https://github.com/bazelbuild/rules_webtesting/releases/download/%s/rules_webtesting.tar.gz" % RULES_WEBTESTING_VERSION,
199 ],
200)
201
202load("//tools/build/bazel:angular_workspace.bzl", "load_angular")
203
204load_angular()
205
Ray Milkey5063f5b2018-08-15 16:22:30 -0700206# buildifier is written in Go and hence needs rules_go to be built.
207# See https://github.com/bazelbuild/rules_go for the up to date setup instructions.
Sean Condondfc6dba2019-11-09 11:50:23 +0000208RULES_GO_VERSION = "v0.19.8"
209
210RULES_GO_SHA256 = "9976c2572587aa71f81b502cc870ef8058f6de37f5fcfaade6a5996934b4a324"
211
Ray Milkey5063f5b2018-08-15 16:22:30 -0700212http_archive(
213 name = "io_bazel_rules_go",
Sean Condondfc6dba2019-11-09 11:50:23 +0000214 sha256 = RULES_GO_SHA256,
Carmelo Cascone21eb0422019-06-17 12:00:33 -0700215 urls = [
Sean Condondfc6dba2019-11-09 11:50:23 +0000216 "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/rules_go/releases/download/%s/rules_go-%s.tar.gz" % (RULES_GO_VERSION, RULES_GO_VERSION),
217 "https://github.com/bazelbuild/rules_go/releases/download/%s/rules_go-%s.tar.gz" % (RULES_GO_VERSION, RULES_GO_VERSION),
Carmelo Cascone21eb0422019-06-17 12:00:33 -0700218 ],
Ray Milkey5063f5b2018-08-15 16:22:30 -0700219)
220
Carmelo Cascone21eb0422019-06-17 12:00:33 -0700221load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
222
223go_rules_dependencies()
224
225go_register_toolchains()
226
Sean Condondfc6dba2019-11-09 11:50:23 +0000227GAZELLE_VERSION = "0.18.1"
228
229GAZELLE_SHA256 = "be9296bfd64882e3c08e3283c58fcb461fa6dd3c171764fcc4cf322f60615a9b"
230
Ray Milkey5063f5b2018-08-15 16:22:30 -0700231http_archive(
Thomas Vachuska2bf24532019-10-14 15:41:45 -0700232 name = "bazel_gazelle",
Sean Condondfc6dba2019-11-09 11:50:23 +0000233 sha256 = GAZELLE_SHA256,
Thomas Vachuska2bf24532019-10-14 15:41:45 -0700234 urls = [
Sean Condondfc6dba2019-11-09 11:50:23 +0000235 "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/bazel-gazelle/releases/download/%s/bazel-gazelle-%s.tar.gz" % (GAZELLE_VERSION, GAZELLE_VERSION),
236 "https://github.com/bazelbuild/bazel-gazelle/releases/download/%s/bazel-gazelle-%s.tar.gz" % (GAZELLE_VERSION, GAZELLE_VERSION),
Thomas Vachuska2bf24532019-10-14 15:41:45 -0700237 ],
Ray Milkey5063f5b2018-08-15 16:22:30 -0700238)
239
Thomas Vachuska2bf24532019-10-14 15:41:45 -0700240load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
Ray Milkey5063f5b2018-08-15 16:22:30 -0700241
Thomas Vachuska2bf24532019-10-14 15:41:45 -0700242gazelle_dependencies()
243
Sean Condondfc6dba2019-11-09 11:50:23 +0000244BUILDTOOLS_VERSION = "0.29.0"
245
246BUILDTOOLS_SHA256 = "05eb52437fb250c7591dd6cbcfd1f9b5b61d85d6b20f04b041e0830dd1ab39b3"
247
Thomas Vachuska2bf24532019-10-14 15:41:45 -0700248http_archive(
Thomas Vachuska2bf24532019-10-14 15:41:45 -0700249 name = "com_github_bazelbuild_buildtools",
Sean Condondfc6dba2019-11-09 11:50:23 +0000250 sha256 = BUILDTOOLS_SHA256,
251 strip_prefix = "buildtools-" + BUILDTOOLS_VERSION,
252 url = "https://github.com/bazelbuild/buildtools/archive/%s.zip" % BUILDTOOLS_VERSION,
Thomas Vachuska2bf24532019-10-14 15:41:45 -0700253)