blob: 6ecd65844fc855250a4001831e1f05bbcae902e6 [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")
Sergiusz Bazanski3e597182019-04-19 14:40:47 +02006load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
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",
12 sha256 = "bb8ce9ba11eb7bccf080599fe7cad9cc461751c8dd1ba61701c0070d58cde973",
13 strip_prefix = "protobuf-3.12.2",
14 urls = ["https://github.com/google/protobuf/archive/v3.12.2.tar.gz"],
15)
16
17load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
18protobuf_deps()
19
Serge Bazanski194b1c82020-09-25 20:24:17 +000020# Force rules_python at a bleeding edge version (for pip3_import).
21http_archive(
22 name = "rules_python",
23 url = "https://github.com/bazelbuild/rules_python/releases/download/0.0.3/rules_python-0.0.3.tar.gz",
24 sha256 = "e46612e9bb0dae8745de6a0643be69e8665a03f63163ac6610c210e80d14c3e4",
25)
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020026
Serge Bazanski194b1c82020-09-25 20:24:17 +000027# Load and setup Nixpkgs, if Nix is present on the build system.
28http_archive(
29 name = "io_tweag_rules_nixpkgs",
30 strip_prefix = "rules_nixpkgs-dc24090573d74adcf38730422941fd69b87682c7",
31 urls = ["https://github.com/tweag/rules_nixpkgs/archive/dc24090573d74adcf38730422941fd69b87682c7.tar.gz"],
32 sha256 = "aca86baa64174478c57f74ed09d5c2313113abe94aa3af030486d1b14032d3ed",
33)
34load("//third_party/nix:repository_rules.bzl", "hscloud_setup_nix")
35hscloud_setup_nix(
36 revision = "1179841f9a88b8a548f4b11d1a03aa25a790c379",
37 sha256 = "8b64041bfb9760de9e797c0a985a4830880c21732489f397e217d877edd9a990",
38)
39
40# Download Go/Gazelle rules
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020041http_archive(
42 name = "io_bazel_rules_go",
43 sha256 = "6a68e269802911fa419abb940c850734086869d7fe9bc8e12aaf60a09641c818",
44 urls = [
45 "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.23.0/rules_go-v0.23.0.tar.gz",
46 "https://github.com/bazelbuild/rules_go/releases/download/v0.23.0/rules_go-v0.23.0.tar.gz",
47 ],
48)
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020049http_archive(
50 name = "bazel_gazelle",
51 sha256 = "bfd86b3cbe855d6c16c6fce60d76bd51f5c8dbc9cfcaef7a2bb5c1aafd0710e8",
52 urls = [
53 "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.21.0/bazel-gazelle-v0.21.0.tar.gz",
54 "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.21.0/bazel-gazelle-v0.21.0.tar.gz",
55 ],
56)
57
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020058# Python rules
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020059# Important: rules_python must be loaded before protobuf (and grpc) because they load an older version otherwise
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020060load("@rules_python//python:repositories.bzl", "py_repositories")
61py_repositories()
62
63load("@rules_python//python:pip.bzl", "pip_repositories")
64pip_repositories()
65
Serge Bazanski194b1c82020-09-25 20:24:17 +000066load("@hscloud_pip_imports//:imports.bzl", "hscloud_pip3_import")
67hscloud_pip3_import(
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020068 name = "pydeps",
69 requirements = "//third_party/py:requirements.txt",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020070)
71
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020072load("@pydeps//:requirements.bzl", "pip_install")
73pip_install()
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +020074
Serge Bazanski194b1c82020-09-25 20:24:17 +000075
76# Setup Go toolchain.
77# This workspace is generated by hscloud_setup_nixpkgs. It will either call
78# go_register_toolchains() to automagically get Go toolchains from the Internet
79# or, if nix is present, instead setup a toolchain from nixpkgs.
80load("@hscloud_go_toolchain//:imports.bzl", "hscloud_go_register_toolchains")
81hscloud_go_register_toolchains()
82
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020083# IMPORTANT: match protobuf version above with the one loaded by grpc
84http_archive(
85 name = "com_github_grpc_grpc",
86 sha256 = "419dba362eaf8f1d36849ceee17c3e2ff8ff12ac666b42d3ff02a164ebe090e9",
87 strip_prefix = "grpc-1.30.0",
88 urls = ["https://github.com/grpc/grpc/archive/v1.30.0.tar.gz"],
89)
90
Serge Bazanski194b1c82020-09-25 20:24:17 +000091# Load grpc deps after Go, to prevent overriding Go toolchains/SDK.
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020092load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
93grpc_deps()
94load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
95grpc_extra_deps()
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +020096
Serge Bazanski194b1c82020-09-25 20:24:17 +000097load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies")
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020098go_rules_dependencies()
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020099
Serge Bazanski1e1a4dd2020-08-01 14:07:27 +0200100# gazelle:repository_macro third_party/go/repositories.bzl%go_repositories
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200101load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200102gazelle_dependencies()
103
Serge Bazanski194b1c82020-09-25 20:24:17 +0000104# Load Go third-party packages.
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200105load("//third_party/go:repositories.bzl", "go_repositories")
106go_repositories()
107
Serge Bazanski2ce36762019-07-14 16:29:52 +0200108# Docker rules
109
110http_archive(
111 name = "io_bazel_rules_docker",
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200112 sha256 = "dc97fccceacd4c6be14e800b2a00693d5e8d07f69ee187babfd04a80a9f8e250",
113 strip_prefix = "rules_docker-0.14.1",
114 urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.14.1/rules_docker-v0.14.1.tar.gz"],
Serge Bazanski2ce36762019-07-14 16:29:52 +0200115)
116
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200117load("@io_bazel_rules_docker//toolchains/docker:toolchain.bzl", docker_toolchain_configure = "toolchain_configure")
118
119# This forces the use of Docker $HOME/.docker configuration.
120docker_toolchain_configure(
121 name = "docker_config",
122 client_config = "",
Serge Bazanskib2d6b112019-07-30 13:07:04 +0200123 docker_path = "/usr/bin/docker",
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200124)
125
Serge Bazanski2ce36762019-07-14 16:29:52 +0200126load(
127 "@io_bazel_rules_docker//repositories:repositories.bzl",
128 container_repositories = "repositories",
129)
Serge Bazanski2ce36762019-07-14 16:29:52 +0200130container_repositories()
Sergiusz Bazanski8fe651b2019-07-21 23:50:05 +0200131
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200132# Docker base images
133
134load("@io_bazel_rules_docker//container:container.bzl", "container_pull")
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200135
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200136container_pull(
137 name = "prodimage-bionic",
Serge Bazanskib2d6b112019-07-30 13:07:04 +0200138 registry = "registry.k0.hswaw.net",
139 repository = "q3k/prodimage",
Serge Bazanskiec71cb52019-08-22 18:13:13 +0200140 tag = "20190822-1227",
141 digest = "sha256:1cd1f84169b8e1414a5d511b42909f2d540831c67b6799ae9af8cd6a80d75b5f",
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200142)
143
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200144container_pull(
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200145 name = "gerrit-3.0.8",
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200146 registry = "index.docker.io",
147 repository = "gerritcodereview/gerrit",
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200148 tag = "3.0.8-ubuntu18",
149 digest = "sha256:8f58236129e6547d92502a2e9d8f40129f45f15007beaeafb59fed4faffddb3e",
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200150)
151
Sergiusz Bazanski48050572020-05-10 21:34:10 +0200152# third_party/factorio
153load("//third_party/factorio:factorio.bzl", "factorio_repositories")
154factorio_repositories()
Sergiusz Bazanski59786c52020-04-01 02:05:42 +0200155
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200156# For devtools/gerrit/gerrit-oauth-provider and gerrit OWNERS plugin
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200157
158git_repository(
159 name = "com_googlesource_gerrit_bazlets",
160 remote = "https://gerrit.googlesource.com/bazlets",
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200161 commit = "1d381f01c853e2c02ae35430a8e294e485635d62",
Bartosz Stebel7418a5a2020-07-01 05:43:28 +0200162 shallow_since = "1559431096 -0400"
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200163)
164
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200165load("@com_googlesource_gerrit_bazlets//:gerrit_api.bzl", "gerrit_api")
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200166gerrit_api()
167
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200168load("@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl", gerrit_maven_jar="maven_jar", GERRIT="GERRIT")
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200169PROLOG_VERS = "1.4.3"
170JACKSON_VER = "2.9.7"
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200171
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200172gerrit_maven_jar(
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200173 name = "scribe",
174 artifact = "org.scribe:scribe:1.3.7",
175 sha1 = "583921bed46635d9f529ef5f14f7c9e83367bc6e",
176)
177
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200178gerrit_maven_jar(
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200179 name = "commons-codec",
180 artifact = "commons-codec:commons-codec:1.4",
181 sha1 = "4216af16d38465bbab0f3dff8efa14204f7a399a",
182)
183
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200184gerrit_maven_jar(
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200185 name = "jackson-core",
186 artifact = "com.fasterxml.jackson.core:jackson-core:" + JACKSON_VER,
187 sha1 = "4b7f0e0dc527fab032e9800ed231080fdc3ac015",
188)
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200189gerrit_maven_jar(
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200190 name = "jackson-databind",
191 artifact = "com.fasterxml.jackson.core:jackson-databind:" + JACKSON_VER,
192 sha1 = "e6faad47abd3179666e89068485a1b88a195ceb7",
193)
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200194gerrit_maven_jar(
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200195 name = "jackson-annotations",
196 artifact = "com.fasterxml.jackson.core:jackson-annotations:" + JACKSON_VER,
197 sha1 = "4b838e5c4fc17ac02f3293e9a558bb781a51c46d",
198)
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200199gerrit_maven_jar(
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200200 name = "jackson-dataformat-yaml",
201 artifact = "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:" + JACKSON_VER,
202 sha1 = "a428edc4bb34a2da98a50eb759c26941d4e85960",
203)
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200204gerrit_maven_jar(
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200205 name = "snakeyaml",
206 artifact = "org.yaml:snakeyaml:1.23",
207 sha1 = "ec62d74fe50689c28c0ff5b35d3aebcaa8b5be68",
208)
209
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200210gerrit_maven_jar(
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200211 name = "prolog-runtime",
212 artifact = "com.googlecode.prolog-cafe:prolog-runtime:" + PROLOG_VERS,
213 attach_source = False,
214 repository = GERRIT,
215 sha1 = "d5206556cbc76ffeab21313ffc47b586a1efbcbb",
216)
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200217gerrit_maven_jar(
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200218 name = "prolog-compiler",
219 artifact = "com.googlecode.prolog-cafe:prolog-compiler:" + PROLOG_VERS,
220 attach_source = False,
221 repository = GERRIT,
222 sha1 = "f37032cf1dec3e064427745bc59da5a12757a3b2",
223)
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200224gerrit_maven_jar(
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200225 name = "prolog-io",
226 artifact = "com.googlecode.prolog-cafe:prolog-io:" + PROLOG_VERS,
227 attach_source = False,
228 repository = GERRIT,
229 sha1 = "d02b2640b26f64036b6ba2b45e4acc79281cea17",
230)
231
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200232# minecraft spigot/bukkit deps
233# this uses rules_jvm_external vs gerrit's maven_jar because we need SNAPSHOT support
234
235http_archive(
236 name = "io_grpc_grpc_java",
237 sha256 = "446ad7a2e85bbd05406dbf95232c7c49ed90de83b3b60cb2048b0c4c9f254d29",
238 strip_prefix = "grpc-java-1.29.0",
239 url = "https://github.com/grpc/grpc-java/archive/v1.29.0.zip",
240)
241
242RULES_JVM_EXTERNAL_TAG = "3.0"
243RULES_JVM_EXTERNAL_SHA = "62133c125bf4109dfd9d2af64830208356ce4ef8b165a6ef15bbff7460b35c3a"
244
245http_archive(
246 name = "rules_jvm_external",
247 strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
248 sha256 = RULES_JVM_EXTERNAL_SHA,
249 url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
250)
251
252load("@rules_jvm_external//:defs.bzl", "maven_install")
253load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS")
254load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS")
255
256maven_install(
257 artifacts = [
258 "org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT",
259 "io.grpc:grpc-netty-shaded:1.29.0",
260 "io.grpc:grpc-services:1.29.0",
261 ] + IO_GRPC_GRPC_JAVA_ARTIFACTS,
262 generate_compat_repositories = True,
263 override_targets = IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS,
264 repositories = [
265 "https://hub.spigotmc.org/nexus/content/repositories/snapshots",
266 "https://oss.sonatype.org/content/repositories/snapshots",
267 "https://repo1.maven.org/maven2/",
268 ],
269 maven_install_json = "//third_party/java:maven_install.json",
270)
271
272load("@maven//:defs.bzl", "pinned_maven_install")
273pinned_maven_install()
274
275load("@maven//:compat.bzl", "compat_repositories")
276compat_repositories()
277
278load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories")
279grpc_java_repositories()
280
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200281# Gerrit OWNERS plugins external repositories
282
283git_repository(
284 name = "com_googlesource_gerrit_plugin_owners",
285 remote = "https://gerrit.googlesource.com/plugins/owners/",
286 commit = "5e691e87b8c00a04d261a8dd313f4d16c54797e8",
Bartosz Stebel7418a5a2020-07-01 05:43:28 +0200287 shallow_since = "1559729722 +0900"
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200288)
289
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200290# Go image repos for Docker
291
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200292load("@io_bazel_rules_docker//go:image.bzl", go_image_repositories = "repositories")
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200293go_image_repositories()
Sergiusz Bazanski0037eda2020-06-13 22:43:06 +0200294
295# oniguruma, with build from //third_party/oniguruma
296
297http_archive(
298 name = "com_github_kkos_oniguruma",
299 urls = ["https://github.com/kkos/oniguruma/releases/download/v6.9.5_rev1/onig-6.9.5_rev1.tar.gz"],
300 strip_prefix = "onig-6.9.5",
301 sha256 = "d33c849d1672af227944878cefe0a8fcf26fc62bedba32aa517f2f63c314a99e",
302 build_file = "@hscloud//third_party/oniguruma:BUILD.external",
303)
304
305# jq, with build from //third_party/jq
306
307http_archive(
308 name = "com_github_stedolan_jq",
309 urls = ["https://github.com/stedolan/jq/releases/download/jq-1.6/jq-1.6.tar.gz"],
310 strip_prefix = "jq-1.6",
311 sha256 = "5de8c8e29aaa3fb9cc6b47bb27299f271354ebb72514e3accadc7d38b5bbaa72",
312 build_file = "@hscloud//third_party/jq:BUILD.external",
313)