blob: 376fe43e8d8bc4794259d93e049767a1cf650c0e [file] [log] [blame]
Sergiusz Bazanski5f9b1ec2019-09-22 02:19:18 +02001workspace(
2 name = "hscloud",
3)
4
Serge Bazanski97b5cd72023-07-28 17:14:50 +00005local_repository(
6 name = "rules_jvm_external",
7 path = "/home/q3k/Software/rules_jvm_external",
8)
9
Sergiusz Bazanskide061802019-01-13 21:14:02 +010010load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
Serge Bazanski146c99e2021-03-18 19:15:38 +000011load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file")
Sergiusz Bazanskide061802019-01-13 21:14:02 +010012
Serge Bazanski97b5cd72023-07-28 17:14:50 +000013# Load skylib
Patryk Jakuszew28742b82022-11-26 21:33:38 +010014http_archive(
15 name = "bazel_skylib",
16 sha256 = "74d544d96f4a5bb630d465ca8bbcfe231e3594e5aae57e1edbf17a6eb3ca2506",
17 urls = [
18 "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
19 "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
20 ],
21)
22
23load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
24
25bazel_skylib_workspace()
26
Serge Bazanski97b5cd72023-07-28 17:14:50 +000027load("@bazel_skylib//lib:versions.bzl", "versions")
28
29versions.check(minimum_bazel_version = "5.4.1")
30
31# Protobuf deps (shared between many rules).
32# Load this as early as possible, to avoid a different version being pulled in by deps of something else
33http_archive(
34 name = "com_google_protobuf",
35 sha256 = "76a33e2136f23971ce46c72fd697cd94dc9f73d56ab23b753c3e16854c90ddfd",
36 strip_prefix = "protobuf-2c5fa078d8e86e5f4bd34e6f4c9ea9e8d7d4d44a",
37 urls = [
38 "https://github.com/protocolbuffers/protobuf/archive/2c5fa078d8e86e5f4bd34e6f4c9ea9e8d7d4d44a.tar.gz",
39 ],
40)
41
42http_archive(
43 name = "rules_proto",
44 sha256 = "dc3fb206a2cb3441b485eb1e423165b231235a1ea9b031b4433cf7bc1fa460dd",
45 strip_prefix = "rules_proto-5.3.0-21.7",
46 urls = [
47 "https://github.com/bazelbuild/rules_proto/archive/refs/tags/5.3.0-21.7.tar.gz",
48 ],
49)
50
51load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
52
53rules_proto_dependencies()
54
55rules_proto_toolchains()
56
57rules_python_version = "0.24.0"
58
59http_archive(
60 name = "rules_python",
61 sha256 = "0a8003b044294d7840ac7d9d73eef05d6ceb682d7516781a4ec62eeb34702578",
62 strip_prefix = "rules_python-{}".format(rules_python_version),
63 url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/{}.tar.gz".format(rules_python_version),
64)
65
66# Download Go/Gazelle rules
67http_archive(
68 name = "io_bazel_rules_go",
69 sha256 = "51dc53293afe317d2696d4d6433a4c33feedb7748a9e352072e2ec3c0dafd2c6",
70 urls = [
71 "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.40.1/rules_go-v0.40.1.zip",
72 "https://github.com/bazelbuild/rules_go/releases/download/v0.40.1/rules_go-v0.40.1.zip",
73 ],
74)
75
76http_archive(
77 name = "bazel_gazelle",
78 sha256 = "29d5dafc2a5582995488c6735115d1d366fcd6a0fc2e2a153f02988706349825",
79 urls = [
80 "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.31.0/bazel-gazelle-v0.31.0.tar.gz",
81 "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.31.0/bazel-gazelle-v0.31.0.tar.gz",
82 ],
83)
84
85load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
86load("//third_party/go:repositories.bzl", "go_repositories")
87
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020088# Python rules
Bartosz Stebelf21ca382023-02-04 23:57:59 +010089load("@rules_python//python:repositories.bzl", "python_register_toolchains")
90
91python_register_toolchains(
92 name = "python3_10",
93 python_version = "3.10",
94)
95
96load("@python3_10//:defs.bzl", "interpreter")
Serge Bazanski4e534cc2021-06-29 19:16:45 +000097load("@rules_python//python:pip.bzl", "pip_parse")
Serge Bazanski50e987c2021-07-11 12:32:36 +000098
Serge Bazanski4e534cc2021-06-29 19:16:45 +000099pip_parse(
Serge Bazanski1572e522020-12-03 23:19:28 +0100100 name = "pydeps",
Bartosz Stebelf21ca382023-02-04 23:57:59 +0100101 python_interpreter_target = interpreter,
Serge Bazanski4e534cc2021-06-29 19:16:45 +0000102 requirements_lock = "//third_party/py:requirements.txt",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200103)
Serge Bazanski50e987c2021-07-11 12:32:36 +0000104
Serge Bazanski4e534cc2021-06-29 19:16:45 +0000105load("@pydeps//:requirements.bzl", "install_deps")
Serge Bazanski97b5cd72023-07-28 17:14:50 +0000106
Serge Bazanski4e534cc2021-06-29 19:16:45 +0000107install_deps()
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200108
Serge Bazanski194b1c82020-09-25 20:24:17 +0000109# Setup Go toolchain.
Serge Bazanski50e987c2021-07-11 12:32:36 +0000110
Serge Bazanski97b5cd72023-07-28 17:14:50 +0000111# gazelle:repository_macro third_party/go/repositories.bzl%go_repositories
112# gazelle:repository go_repository name=hscloud importpath=code.hackerspace.pl/hscloud
113go_repositories()
Serge Bazanski194b1c82020-09-25 20:24:17 +0000114
Serge Bazanski97b5cd72023-07-28 17:14:50 +0000115load("@bazel_gazelle//:deps.bzl", "go_repository")
116
117go_repository(
118 name = "org_golang_x_mod",
119 build_external = "external",
120 importpath = "golang.org/x/mod",
121 sum = "h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=",
122 version = "v0.10.0",
123)
124
125go_rules_dependencies()
126
127go_register_toolchains(go_version = "1.20.5")
128
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200129http_archive(
130 name = "com_github_grpc_grpc",
Serge Bazanski97b5cd72023-07-28 17:14:50 +0000131 patch_args = ["-p1"],
132 patches = [
133 "//third_party:grpc_extra_deps.patch",
134 ],
135 sha256 = "931f07db9d48cff6a6007c1033ba6d691fe655bea2765444bc1ad974dfc840aa",
136 strip_prefix = "grpc-1.56.2",
137 urls = ["https://github.com/grpc/grpc/archive/v1.56.2.tar.gz"],
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200138)
139
Serge Bazanski194b1c82020-09-25 20:24:17 +0000140# Load grpc deps after Go, to prevent overriding Go toolchains/SDK.
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200141load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
Serge Bazanski1572e522020-12-03 23:19:28 +0100142
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200143grpc_deps()
Serge Bazanski1572e522020-12-03 23:19:28 +0100144
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200145load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
Serge Bazanski1572e522020-12-03 23:19:28 +0100146
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200147grpc_extra_deps()
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200148
Serge Bazanski97b5cd72023-07-28 17:14:50 +0000149load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
Serge Bazanski39437442021-10-07 18:45:20 +0000150
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200151gazelle_dependencies()
152
Serge Bazanski2ce36762019-07-14 16:29:52 +0200153# Docker rules
154
155http_archive(
156 name = "io_bazel_rules_docker",
Serge Bazanski97b5cd72023-07-28 17:14:50 +0000157 sha256 = "b1e80761a8a8243d03ebca8845e9cc1ba6c82ce7c5179ce2b295cd36f7e394bf",
158 urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.25.0/rules_docker-v0.25.0.tar.gz"],
Serge Bazanski2ce36762019-07-14 16:29:52 +0200159)
160
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200161load("@io_bazel_rules_docker//toolchains/docker:toolchain.bzl", docker_toolchain_configure = "toolchain_configure")
162
Serge Bazanski2ce36762019-07-14 16:29:52 +0200163load(
164 "@io_bazel_rules_docker//repositories:repositories.bzl",
165 container_repositories = "repositories",
166)
Serge Bazanski1572e522020-12-03 23:19:28 +0100167
Serge Bazanski2ce36762019-07-14 16:29:52 +0200168container_repositories()
Sergiusz Bazanski8fe651b2019-07-21 23:50:05 +0200169
Bartosz Stebelf5b1a212023-02-04 23:47:44 +0100170load(
171 "@io_bazel_rules_docker//python3:image.bzl",
172 _py_image_repos = "repositories",
173)
174
175_py_image_repos()
176
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200177# Docker base images
178
179load("@io_bazel_rules_docker//container:container.bzl", "container_pull")
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200180
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200181container_pull(
Bartosz Stebelf5b1a212023-02-04 23:47:44 +0100182 name = "python-debian",
183 digest = "sha256:cfa3b79333c4e56fc675b6800445b6dcbb3e6cd4d52f2a9ade944ab73dadc6a1",
184 registry = "index.docker.io",
185 repository = "python",
186 tag = "3.10-bullseye", # use the same version as in python_register_toolchains
187)
188
189
190container_pull(
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200191 name = "prodimage-bionic",
Serge Bazanski39437442021-10-07 18:45:20 +0000192 digest = "sha256:1cd1f84169b8e1414a5d511b42909f2d540831c67b6799ae9af8cd6a80d75b5f",
Serge Bazanskib2d6b112019-07-30 13:07:04 +0200193 registry = "registry.k0.hswaw.net",
194 repository = "q3k/prodimage",
Serge Bazanskiec71cb52019-08-22 18:13:13 +0200195 tag = "20190822-1227",
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200196)
197
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200198container_pull(
Serge Bazanskia63c3152021-12-26 10:26:42 +0000199 name = "prodimage-focal",
200 digest = "sha256:fb6159a3ddf2f783092f1169792d1fba6f108714026ad2aa08204e8356825a13",
201 registry = "registry.k0.hswaw.net",
202 repository = "q3k/prodimage-focal",
203 tag = "20211214-0108",
204)
205
206container_pull(
Serge Bazanskidd692212021-03-11 17:51:02 +0100207 name = "gerrit-3.3.2",
Serge Bazanski39437442021-10-07 18:45:20 +0000208 digest = "sha256:f7fc8b749706f38475f94191117091973914a8f084e69518deff7dbc9c2c557d",
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200209 registry = "index.docker.io",
210 repository = "gerritcodereview/gerrit",
Serge Bazanskidd692212021-03-11 17:51:02 +0100211 tag = "3.3.2-ubuntu20",
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200212)
213
Sergiusz Bazanski48050572020-05-10 21:34:10 +0200214# third_party/factorio
215load("//third_party/factorio:factorio.bzl", "factorio_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100216
Sergiusz Bazanski48050572020-05-10 21:34:10 +0200217factorio_repositories()
Sergiusz Bazanski59786c52020-04-01 02:05:42 +0200218
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200219# For devtools/gerrit/gerrit-oauth-provider and gerrit OWNERS plugin
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200220
221git_repository(
222 name = "com_googlesource_gerrit_bazlets",
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100223 commit = "a511f3c90129d7de7ae67c0637001162980c08d5",
Serge Bazanski39437442021-10-07 18:45:20 +0000224 remote = "https://gerrit.googlesource.com/bazlets",
Bartosz Stebel0e2057f2020-12-28 21:40:09 +0100225 shallow_since = "1606931369 -0600",
Serge Bazanski0d3e6092023-09-01 19:08:02 +0200226 patch_args = ["-p1"],
227 patches = [
228 "//third_party:bazlets_py3.patch",
229 ],
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200230)
231
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200232load("@com_googlesource_gerrit_bazlets//:gerrit_api.bzl", "gerrit_api")
Serge Bazanski1572e522020-12-03 23:19:28 +0100233
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200234gerrit_api()
235
Serge Bazanski50e987c2021-07-11 12:32:36 +0000236load("//devtools/gerrit/gerrit-oauth-provider:external_plugin_deps.bzl", gerrit_oauth_deps = "external_plugin_deps")
237
238gerrit_oauth_deps(omit_commons_codec = False)
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200239
Serge Bazanski146c99e2021-03-18 19:15:38 +0000240# Gerrit 3.3.2 built by q3k, backported with fix for 'empty reviewers column' bug.
241# See: https://bugs.chromium.org/p/gerrit/issues/detail?id=13899
242# Override can be removed once we update to > 3.3.2, as the fix for this is
243# pending for the 3.3 branch.
244#
245# Built from v3.3.2 tag at df0507df5917fd78af01aee2495b2663530d52d1
246# Cherry-picked fix from 8731af3ae785efe9ecff7f3d04302b6b01c4fc0b
247# Resulted in commit 5949bfb86e62a32a95293e339ed86bfe52a283e9
248# Built against Java 8:
249# bazel build --java_toolchain //tools:error_prone_warnings_toolchain :release
250#
251http_file(
252 name = "org_q3k_gerrit_3_3_2_backport",
Serge Bazanski39437442021-10-07 18:45:20 +0000253 downloaded_file_path = "gerrit.war",
254 sha256 = "d1839d691a8534f4ccb27bed9a98281e45972fbebec50d004cecd4d5da2b15a6",
Serge Bazanski146c99e2021-03-18 19:15:38 +0000255 urls = [
256 "https://object.ceph-waw3.hswaw.net/q3k-personal/d1839d691a8534f4ccb27bed9a98281e45972fbebec50d004cecd4d5da2b15a6.war",
257 ],
Serge Bazanski146c99e2021-03-18 19:15:38 +0000258)
259
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200260# Gerrit OWNERS plugins external repositories
261
262git_repository(
263 name = "com_googlesource_gerrit_plugin_owners",
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100264 commit = "17817c9e319073c03513f9d5177b6142b8fd567b",
Serge Bazanski39437442021-10-07 18:45:20 +0000265 remote = "https://gerrit.googlesource.com/plugins/owners/",
Bartosz Stebel0e2057f2020-12-28 21:40:09 +0100266 shallow_since = "1593642470 +0200",
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200267)
Serge Bazanski50e987c2021-07-11 12:32:36 +0000268
269load("@com_googlesource_gerrit_plugin_owners//:external_plugin_deps_standalone.bzl", gerrit_owners_deps = "external_plugin_deps_standalone")
270
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100271gerrit_owners_deps()
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200272
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200273# Go image repos for Docker
274
Serge Bazanski97b5cd72023-07-28 17:14:50 +0000275load(
276 "@io_bazel_rules_docker//go:image.bzl",
277 go_image_repos = "repositories",
278)
Serge Bazanski1572e522020-12-03 23:19:28 +0100279
Serge Bazanski97b5cd72023-07-28 17:14:50 +0000280go_image_repos()
Sergiusz Bazanski0037eda2020-06-13 22:43:06 +0200281
Serge Bazanski19c8b602022-02-01 09:36:47 +0000282# //hswaw/site deps.
283load("//hswaw/site:deps.bzl", "hswaw_site_deps")
Serge Bazanski97b5cd72023-07-28 17:14:50 +0000284
Serge Bazanski19c8b602022-02-01 09:36:47 +0000285hswaw_site_deps()
Serge Bazanski39437442021-10-07 18:45:20 +0000286
287# noVNC, used by //dc/drackvm.
288http_archive(
289 name = "com_github_novnc_novnc",
290 build_file_content = """
291filegroup(
292 name = "distfiles",
293 srcs = [
294 "vnc.html",
295 ] + glob([
296 "app/**",
297 "core/**",
298 "vendor/**",
299 ]),
300 visibility = ["//visibility:public"],
301)
302""",
Serge Bazanski39437442021-10-07 18:45:20 +0000303 sha256 = "2c972cca34376dfd2a54939e7e571e466511bf592d03e838440b3c8868441eaf",
304 strip_prefix = "noVNC-1.3.0-beta",
Serge Bazanskid01f9e52021-10-07 19:24:31 +0000305 urls = ["https://github.com/novnc/noVNC/archive/refs/tags/v1.3.0-beta.tar.gz"],
Serge Bazanski1f062302021-06-01 22:24:34 +0000306)
Bartosz Stebel12f176c2021-06-18 13:12:41 +0200307
308# temporarily use upstream binary, see //cluster/tools/BUILD
309http_file(
310 name = "calicoctl_3_15",
311 downloaded_file_path = "calicoctl",
Bartosz Stebel12f176c2021-06-18 13:12:41 +0200312 executable = True,
Serge Bazanski97b5cd72023-07-28 17:14:50 +0000313 sha256 = "f49e9e8d25108f7f22d5a51c756b2fe40cbe36347ad297e31a767376172f2845",
314 urls = ["https://github.com/projectcalico/calicoctl/releases/download/v3.15.5/calicoctl"],
Bartosz Stebel12f176c2021-06-18 13:12:41 +0200315)