blob: 2b8dc07c93d599ecd0623dea2d25605fda06e403 [file] [log] [blame]
Sergiusz Bazanski5f9b1ec2019-09-22 02:19:18 +02001workspace(
2 name = "hscloud",
3)
4
Sergiusz Bazanskide061802019-01-13 21:14:02 +01005load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
Serge Bazanski146c99e2021-03-18 19:15:38 +00006load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file")
Sergiusz Bazanskide061802019-01-13 21:14:02 +01007
Bartosz Stebelcae27ec2020-07-03 07:05:15 +02008# Protobuf deps (shared between many rules).
9# Load this as early as possible, to avoid a different version being pulled in by deps of something else
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020010http_archive(
11 name = "com_google_protobuf",
Bartosz Stebel4ea5cdb2022-06-19 00:17:30 +020012 sha256 = "8b28fdd45bab62d15db232ec404248901842e5340299a57765e48abe8a80d930",
13 strip_prefix = "protobuf-3.20.1",
14 urls = ["https://github.com/google/protobuf/archive/v3.20.1.tar.gz"],
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020015)
16
17load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
Serge Bazanski1572e522020-12-03 23:19:28 +010018
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020019protobuf_deps()
20
Bartosz Stebelf21ca382023-02-04 23:57:59 +010021rules_python_version = "0.13.0"
Serge Bazanski194b1c82020-09-25 20:24:17 +000022http_archive(
23 name = "rules_python",
Bartosz Stebelf21ca382023-02-04 23:57:59 +010024 sha256 = "8c8fe44ef0a9afc256d1e75ad5f448bb59b81aba149b8958f02f7b3a98f5d9b4",
Bartosz Stebel999a8f52021-06-26 14:51:15 +020025 strip_prefix = "rules_python-{}".format(rules_python_version),
Bartosz Stebele69e98d2022-06-18 23:56:22 +020026 url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/{}.tar.gz".format(rules_python_version),
Serge Bazanski194b1c82020-09-25 20:24:17 +000027)
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020028
Serge Bazanski194b1c82020-09-25 20:24:17 +000029# Download Go/Gazelle rules
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020030http_archive(
31 name = "io_bazel_rules_go",
Patryk Jakuszew28742b82022-11-26 21:33:38 +010032 sha256 = "099a9fb96a376ccbbb7d291ed4ecbdfd42f6bc822ab77ae6f1b5cb9e914e94fa",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020033 urls = [
Patryk Jakuszew28742b82022-11-26 21:33:38 +010034 "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.35.0/rules_go-v0.35.0.zip",
35 "https://github.com/bazelbuild/rules_go/releases/download/v0.35.0/rules_go-v0.35.0.zip",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020036 ],
37)
Serge Bazanski1572e522020-12-03 23:19:28 +010038
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020039http_archive(
40 name = "bazel_gazelle",
Patryk Jakuszew28742b82022-11-26 21:33:38 +010041 sha256 = "448e37e0dbf61d6fa8f00aaa12d191745e14f07c31cabfa731f0c8e8a4f41b97",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020042 urls = [
Patryk Jakuszew28742b82022-11-26 21:33:38 +010043 "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.28.0/bazel-gazelle-v0.28.0.tar.gz",
44 "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.28.0/bazel-gazelle-v0.28.0.tar.gz",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020045 ],
46)
47
Patryk Jakuszew28742b82022-11-26 21:33:38 +010048# Gazelle started requiring this after we bumped the version to v0.28.0.
49http_archive(
50 name = "bazel_skylib",
51 sha256 = "74d544d96f4a5bb630d465ca8bbcfe231e3594e5aae57e1edbf17a6eb3ca2506",
52 urls = [
53 "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
54 "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
55 ],
56)
57
58load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
59
60bazel_skylib_workspace()
61
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020062# Python rules
Bartosz Stebelf21ca382023-02-04 23:57:59 +010063load("@rules_python//python:repositories.bzl", "python_register_toolchains")
64
65python_register_toolchains(
66 name = "python3_10",
67 python_version = "3.10",
68)
69
70load("@python3_10//:defs.bzl", "interpreter")
Serge Bazanski4e534cc2021-06-29 19:16:45 +000071load("@rules_python//python:pip.bzl", "pip_parse")
Serge Bazanski50e987c2021-07-11 12:32:36 +000072
Serge Bazanski4e534cc2021-06-29 19:16:45 +000073pip_parse(
Serge Bazanski1572e522020-12-03 23:19:28 +010074 name = "pydeps",
Bartosz Stebelf21ca382023-02-04 23:57:59 +010075 python_interpreter_target = interpreter,
Serge Bazanski4e534cc2021-06-29 19:16:45 +000076 requirements_lock = "//third_party/py:requirements.txt",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020077)
Serge Bazanski50e987c2021-07-11 12:32:36 +000078
Serge Bazanski4e534cc2021-06-29 19:16:45 +000079load("@pydeps//:requirements.bzl", "install_deps")
80install_deps()
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020081
Serge Bazanski194b1c82020-09-25 20:24:17 +000082# Setup Go toolchain.
Serge Bazanski4b613302021-02-13 13:16:10 +010083load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains")
Serge Bazanski50e987c2021-07-11 12:32:36 +000084
Patryk Jakuszew28742b82022-11-26 21:33:38 +010085go_register_toolchains(version = "1.18.3")
Serge Bazanski194b1c82020-09-25 20:24:17 +000086
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020087# IMPORTANT: match protobuf version above with the one loaded by grpc
88http_archive(
89 name = "com_github_grpc_grpc",
90 sha256 = "419dba362eaf8f1d36849ceee17c3e2ff8ff12ac666b42d3ff02a164ebe090e9",
91 strip_prefix = "grpc-1.30.0",
92 urls = ["https://github.com/grpc/grpc/archive/v1.30.0.tar.gz"],
93)
94
Serge Bazanski194b1c82020-09-25 20:24:17 +000095# Load grpc deps after Go, to prevent overriding Go toolchains/SDK.
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020096load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
Serge Bazanski1572e522020-12-03 23:19:28 +010097
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020098grpc_deps()
Serge Bazanski1572e522020-12-03 23:19:28 +010099
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200100load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
Serge Bazanski1572e522020-12-03 23:19:28 +0100101
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200102grpc_extra_deps()
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200103
Serge Bazanski194b1c82020-09-25 20:24:17 +0000104load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies")
Serge Bazanski1572e522020-12-03 23:19:28 +0100105
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200106go_rules_dependencies()
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200107
Serge Bazanski1e1a4dd2020-08-01 14:07:27 +0200108# gazelle:repository_macro third_party/go/repositories.bzl%go_repositories
Serge Bazanski1572e522020-12-03 23:19:28 +0100109load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
110
Serge Bazanski3e2a5a52021-10-07 19:12:27 +0000111# Force newer version of golang.org/x/crypto that gazelle_dependencies would
112# usually get.
Serge Bazanski39437442021-10-07 18:45:20 +0000113go_repository(
Serge Bazanski3e2a5a52021-10-07 19:12:27 +0000114 name = "org_golang_x_crypto",
115 build_naming_convention = "go_default_library",
116 importpath = "golang.org/x/crypto",
117 sum = "h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=",
118 version = "v0.0.0-20210921155107-089bfa567519",
Serge Bazanski39437442021-10-07 18:45:20 +0000119)
120
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200121gazelle_dependencies()
122
Serge Bazanski194b1c82020-09-25 20:24:17 +0000123# Load Go third-party packages.
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200124load("//third_party/go:repositories.bzl", "go_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100125
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200126go_repositories()
127
Serge Bazanski2ce36762019-07-14 16:29:52 +0200128# Docker rules
129
130http_archive(
131 name = "io_bazel_rules_docker",
Bartosz Stebelf5b1a212023-02-04 23:47:44 +0100132 sha256 = "27d53c1d646fc9537a70427ad7b034734d08a9c38924cc6357cc973fed300820",
133 strip_prefix = "rules_docker-0.24.0",
134 urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.24.0/rules_docker-v0.24.0.tar.gz"],
Serge Bazanski2ce36762019-07-14 16:29:52 +0200135)
136
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200137load("@io_bazel_rules_docker//toolchains/docker:toolchain.bzl", docker_toolchain_configure = "toolchain_configure")
138
139# This forces the use of Docker $HOME/.docker configuration.
140docker_toolchain_configure(
141 name = "docker_config",
Serge Bazanskib2d6b112019-07-30 13:07:04 +0200142 docker_path = "/usr/bin/docker",
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200143)
144
Serge Bazanski2ce36762019-07-14 16:29:52 +0200145load(
146 "@io_bazel_rules_docker//repositories:repositories.bzl",
147 container_repositories = "repositories",
148)
Serge Bazanski1572e522020-12-03 23:19:28 +0100149
Serge Bazanski2ce36762019-07-14 16:29:52 +0200150container_repositories()
Sergiusz Bazanski8fe651b2019-07-21 23:50:05 +0200151
Bartosz Stebelf5b1a212023-02-04 23:47:44 +0100152load(
153 "@io_bazel_rules_docker//python3:image.bzl",
154 _py_image_repos = "repositories",
155)
156
157_py_image_repos()
158
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200159# Docker base images
160
161load("@io_bazel_rules_docker//container:container.bzl", "container_pull")
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200162
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200163container_pull(
Bartosz Stebelf5b1a212023-02-04 23:47:44 +0100164 name = "python-debian",
165 digest = "sha256:cfa3b79333c4e56fc675b6800445b6dcbb3e6cd4d52f2a9ade944ab73dadc6a1",
166 registry = "index.docker.io",
167 repository = "python",
168 tag = "3.10-bullseye", # use the same version as in python_register_toolchains
169)
170
171
172container_pull(
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200173 name = "prodimage-bionic",
Serge Bazanski39437442021-10-07 18:45:20 +0000174 digest = "sha256:1cd1f84169b8e1414a5d511b42909f2d540831c67b6799ae9af8cd6a80d75b5f",
Serge Bazanskib2d6b112019-07-30 13:07:04 +0200175 registry = "registry.k0.hswaw.net",
176 repository = "q3k/prodimage",
Serge Bazanskiec71cb52019-08-22 18:13:13 +0200177 tag = "20190822-1227",
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200178)
179
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200180container_pull(
Serge Bazanskia63c3152021-12-26 10:26:42 +0000181 name = "prodimage-focal",
182 digest = "sha256:fb6159a3ddf2f783092f1169792d1fba6f108714026ad2aa08204e8356825a13",
183 registry = "registry.k0.hswaw.net",
184 repository = "q3k/prodimage-focal",
185 tag = "20211214-0108",
186)
187
188container_pull(
Serge Bazanskidd692212021-03-11 17:51:02 +0100189 name = "gerrit-3.3.2",
Serge Bazanski39437442021-10-07 18:45:20 +0000190 digest = "sha256:f7fc8b749706f38475f94191117091973914a8f084e69518deff7dbc9c2c557d",
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200191 registry = "index.docker.io",
192 repository = "gerritcodereview/gerrit",
Serge Bazanskidd692212021-03-11 17:51:02 +0100193 tag = "3.3.2-ubuntu20",
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200194)
195
Sergiusz Bazanski48050572020-05-10 21:34:10 +0200196# third_party/factorio
197load("//third_party/factorio:factorio.bzl", "factorio_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100198
Sergiusz Bazanski48050572020-05-10 21:34:10 +0200199factorio_repositories()
Sergiusz Bazanski59786c52020-04-01 02:05:42 +0200200
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200201# For devtools/gerrit/gerrit-oauth-provider and gerrit OWNERS plugin
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200202
203git_repository(
204 name = "com_googlesource_gerrit_bazlets",
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100205 commit = "a511f3c90129d7de7ae67c0637001162980c08d5",
Serge Bazanski39437442021-10-07 18:45:20 +0000206 remote = "https://gerrit.googlesource.com/bazlets",
Bartosz Stebel0e2057f2020-12-28 21:40:09 +0100207 shallow_since = "1606931369 -0600",
Serge Bazanski0d3e6092023-09-01 19:08:02 +0200208 patch_args = ["-p1"],
209 patches = [
210 "//third_party:bazlets_py3.patch",
211 ],
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200212)
213
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200214load("@com_googlesource_gerrit_bazlets//:gerrit_api.bzl", "gerrit_api")
Serge Bazanski1572e522020-12-03 23:19:28 +0100215
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200216gerrit_api()
217
Serge Bazanski50e987c2021-07-11 12:32:36 +0000218load("//devtools/gerrit/gerrit-oauth-provider:external_plugin_deps.bzl", gerrit_oauth_deps = "external_plugin_deps")
219
220gerrit_oauth_deps(omit_commons_codec = False)
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200221
Serge Bazanski146c99e2021-03-18 19:15:38 +0000222# Gerrit 3.3.2 built by q3k, backported with fix for 'empty reviewers column' bug.
223# See: https://bugs.chromium.org/p/gerrit/issues/detail?id=13899
224# Override can be removed once we update to > 3.3.2, as the fix for this is
225# pending for the 3.3 branch.
226#
227# Built from v3.3.2 tag at df0507df5917fd78af01aee2495b2663530d52d1
228# Cherry-picked fix from 8731af3ae785efe9ecff7f3d04302b6b01c4fc0b
229# Resulted in commit 5949bfb86e62a32a95293e339ed86bfe52a283e9
230# Built against Java 8:
231# bazel build --java_toolchain //tools:error_prone_warnings_toolchain :release
232#
233http_file(
234 name = "org_q3k_gerrit_3_3_2_backport",
Serge Bazanski39437442021-10-07 18:45:20 +0000235 downloaded_file_path = "gerrit.war",
236 sha256 = "d1839d691a8534f4ccb27bed9a98281e45972fbebec50d004cecd4d5da2b15a6",
Serge Bazanski146c99e2021-03-18 19:15:38 +0000237 urls = [
238 "https://object.ceph-waw3.hswaw.net/q3k-personal/d1839d691a8534f4ccb27bed9a98281e45972fbebec50d004cecd4d5da2b15a6.war",
239 ],
Serge Bazanski146c99e2021-03-18 19:15:38 +0000240)
241
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200242# Gerrit OWNERS plugins external repositories
243
244git_repository(
245 name = "com_googlesource_gerrit_plugin_owners",
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100246 commit = "17817c9e319073c03513f9d5177b6142b8fd567b",
Serge Bazanski39437442021-10-07 18:45:20 +0000247 remote = "https://gerrit.googlesource.com/plugins/owners/",
Bartosz Stebel0e2057f2020-12-28 21:40:09 +0100248 shallow_since = "1593642470 +0200",
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200249)
Serge Bazanski50e987c2021-07-11 12:32:36 +0000250
251load("@com_googlesource_gerrit_plugin_owners//:external_plugin_deps_standalone.bzl", gerrit_owners_deps = "external_plugin_deps_standalone")
252
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100253gerrit_owners_deps()
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200254
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200255# Go image repos for Docker
256
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200257load("@io_bazel_rules_docker//go:image.bzl", go_image_repositories = "repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100258
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200259go_image_repositories()
Sergiusz Bazanski0037eda2020-06-13 22:43:06 +0200260
Serge Bazanski19c8b602022-02-01 09:36:47 +0000261# //hswaw/site deps.
262load("//hswaw/site:deps.bzl", "hswaw_site_deps")
263hswaw_site_deps()
Serge Bazanski39437442021-10-07 18:45:20 +0000264
265# noVNC, used by //dc/drackvm.
266http_archive(
267 name = "com_github_novnc_novnc",
268 build_file_content = """
269filegroup(
270 name = "distfiles",
271 srcs = [
272 "vnc.html",
273 ] + glob([
274 "app/**",
275 "core/**",
276 "vendor/**",
277 ]),
278 visibility = ["//visibility:public"],
279)
280""",
Serge Bazanski39437442021-10-07 18:45:20 +0000281 sha256 = "2c972cca34376dfd2a54939e7e571e466511bf592d03e838440b3c8868441eaf",
282 strip_prefix = "noVNC-1.3.0-beta",
Serge Bazanskid01f9e52021-10-07 19:24:31 +0000283 urls = ["https://github.com/novnc/noVNC/archive/refs/tags/v1.3.0-beta.tar.gz"],
Serge Bazanski1f062302021-06-01 22:24:34 +0000284)
Bartosz Stebel12f176c2021-06-18 13:12:41 +0200285
286# temporarily use upstream binary, see //cluster/tools/BUILD
287http_file(
288 name = "calicoctl_3_15",
289 downloaded_file_path = "calicoctl",
290 urls = ["https://github.com/projectcalico/calicoctl/releases/download/v3.15.5/calicoctl"],
291 sha256 = "f49e9e8d25108f7f22d5a51c756b2fe40cbe36347ad297e31a767376172f2845",
292 executable = True,
293)