blob: 36a26fe56262ce579e27004e9448614ecb848dd1 [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")
Serge Bazanski1572e522020-12-03 23:19:28 +010018
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020019protobuf_deps()
20
Serge Bazanski194b1c82020-09-25 20:24:17 +000021# Force rules_python at a bleeding edge version (for pip3_import).
22http_archive(
23 name = "rules_python",
24 url = "https://github.com/bazelbuild/rules_python/releases/download/0.0.3/rules_python-0.0.3.tar.gz",
25 sha256 = "e46612e9bb0dae8745de6a0643be69e8665a03f63163ac6610c210e80d14c3e4",
26)
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020027
Serge Bazanski194b1c82020-09-25 20:24:17 +000028# Load and setup Nixpkgs, if Nix is present on the build system.
29http_archive(
30 name = "io_tweag_rules_nixpkgs",
31 strip_prefix = "rules_nixpkgs-dc24090573d74adcf38730422941fd69b87682c7",
32 urls = ["https://github.com/tweag/rules_nixpkgs/archive/dc24090573d74adcf38730422941fd69b87682c7.tar.gz"],
33 sha256 = "aca86baa64174478c57f74ed09d5c2313113abe94aa3af030486d1b14032d3ed",
34)
Serge Bazanski1572e522020-12-03 23:19:28 +010035
Serge Bazanski194b1c82020-09-25 20:24:17 +000036load("//third_party/nix:repository_rules.bzl", "hscloud_setup_nix")
Serge Bazanski1572e522020-12-03 23:19:28 +010037
Serge Bazanski194b1c82020-09-25 20:24:17 +000038hscloud_setup_nix(
39 revision = "1179841f9a88b8a548f4b11d1a03aa25a790c379",
40 sha256 = "8b64041bfb9760de9e797c0a985a4830880c21732489f397e217d877edd9a990",
41)
42
43# Download Go/Gazelle rules
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020044http_archive(
45 name = "io_bazel_rules_go",
Serge Bazanski42b21ec2020-11-27 10:22:15 +010046 sha256 = "207fad3e6689135c5d8713e5a17ba9d1290238f47b9ba545b63d9303406209c6",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020047 urls = [
Serge Bazanski42b21ec2020-11-27 10:22:15 +010048 "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.24.7/rules_go-v0.24.7.tar.gz",
49 "https://github.com/bazelbuild/rules_go/releases/download/v0.24.7/rules_go-v0.24.7.tar.gz",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020050 ],
51)
Serge Bazanski1572e522020-12-03 23:19:28 +010052
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020053http_archive(
54 name = "bazel_gazelle",
55 sha256 = "bfd86b3cbe855d6c16c6fce60d76bd51f5c8dbc9cfcaef7a2bb5c1aafd0710e8",
56 urls = [
57 "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.21.0/bazel-gazelle-v0.21.0.tar.gz",
58 "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.21.0/bazel-gazelle-v0.21.0.tar.gz",
59 ],
60)
61
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020062# Python rules
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020063# Important: rules_python must be loaded before protobuf (and grpc) because they load an older version otherwise
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020064load("@rules_python//python:repositories.bzl", "py_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +010065
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020066py_repositories()
67
68load("@rules_python//python:pip.bzl", "pip_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +010069
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020070pip_repositories()
71
Serge Bazanski194b1c82020-09-25 20:24:17 +000072load("@hscloud_pip_imports//:imports.bzl", "hscloud_pip3_import")
Serge Bazanski1572e522020-12-03 23:19:28 +010073
Serge Bazanski194b1c82020-09-25 20:24:17 +000074hscloud_pip3_import(
Serge Bazanski1572e522020-12-03 23:19:28 +010075 name = "pydeps",
76 requirements = "//third_party/py:requirements.txt",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020077)
78
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020079load("@pydeps//:requirements.bzl", "pip_install")
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +020080
Serge Bazanski1572e522020-12-03 23:19:28 +010081pip_install()
Serge Bazanski194b1c82020-09-25 20:24:17 +000082
83# Setup Go toolchain.
84# This workspace is generated by hscloud_setup_nixpkgs. It will either call
85# go_register_toolchains() to automagically get Go toolchains from the Internet
86# or, if nix is present, instead setup a toolchain from nixpkgs.
87load("@hscloud_go_toolchain//:imports.bzl", "hscloud_go_register_toolchains")
Serge Bazanski1572e522020-12-03 23:19:28 +010088
Serge Bazanski194b1c82020-09-25 20:24:17 +000089hscloud_go_register_toolchains()
90
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020091# IMPORTANT: match protobuf version above with the one loaded by grpc
92http_archive(
93 name = "com_github_grpc_grpc",
94 sha256 = "419dba362eaf8f1d36849ceee17c3e2ff8ff12ac666b42d3ff02a164ebe090e9",
95 strip_prefix = "grpc-1.30.0",
96 urls = ["https://github.com/grpc/grpc/archive/v1.30.0.tar.gz"],
97)
98
Serge Bazanski194b1c82020-09-25 20:24:17 +000099# Load grpc deps after Go, to prevent overriding Go toolchains/SDK.
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200100load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
Serge Bazanski1572e522020-12-03 23:19:28 +0100101
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200102grpc_deps()
Serge Bazanski1572e522020-12-03 23:19:28 +0100103
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200104load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
Serge Bazanski1572e522020-12-03 23:19:28 +0100105
Bartosz Stebelcae27ec2020-07-03 07:05:15 +0200106grpc_extra_deps()
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200107
Serge Bazanski194b1c82020-09-25 20:24:17 +0000108load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies")
Serge Bazanski1572e522020-12-03 23:19:28 +0100109
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200110go_rules_dependencies()
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200111
Serge Bazanski1e1a4dd2020-08-01 14:07:27 +0200112# gazelle:repository_macro third_party/go/repositories.bzl%go_repositories
Serge Bazanski1572e522020-12-03 23:19:28 +0100113load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
114
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200115gazelle_dependencies()
116
Serge Bazanski194b1c82020-09-25 20:24:17 +0000117# Load Go third-party packages.
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200118load("//third_party/go:repositories.bzl", "go_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100119
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200120go_repositories()
121
Serge Bazanski2ce36762019-07-14 16:29:52 +0200122# Docker rules
123
124http_archive(
125 name = "io_bazel_rules_docker",
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200126 sha256 = "dc97fccceacd4c6be14e800b2a00693d5e8d07f69ee187babfd04a80a9f8e250",
127 strip_prefix = "rules_docker-0.14.1",
128 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 +0200129)
130
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200131load("@io_bazel_rules_docker//toolchains/docker:toolchain.bzl", docker_toolchain_configure = "toolchain_configure")
132
133# This forces the use of Docker $HOME/.docker configuration.
134docker_toolchain_configure(
135 name = "docker_config",
136 client_config = "",
Serge Bazanskib2d6b112019-07-30 13:07:04 +0200137 docker_path = "/usr/bin/docker",
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200138)
139
Serge Bazanski2ce36762019-07-14 16:29:52 +0200140load(
141 "@io_bazel_rules_docker//repositories:repositories.bzl",
142 container_repositories = "repositories",
143)
Serge Bazanski1572e522020-12-03 23:19:28 +0100144
Serge Bazanski2ce36762019-07-14 16:29:52 +0200145container_repositories()
Sergiusz Bazanski8fe651b2019-07-21 23:50:05 +0200146
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200147# Docker base images
148
149load("@io_bazel_rules_docker//container:container.bzl", "container_pull")
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200150
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200151container_pull(
152 name = "prodimage-bionic",
Serge Bazanskib2d6b112019-07-30 13:07:04 +0200153 registry = "registry.k0.hswaw.net",
154 repository = "q3k/prodimage",
Serge Bazanskiec71cb52019-08-22 18:13:13 +0200155 tag = "20190822-1227",
156 digest = "sha256:1cd1f84169b8e1414a5d511b42909f2d540831c67b6799ae9af8cd6a80d75b5f",
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200157)
158
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200159container_pull(
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100160 name = "gerrit-3.3.0",
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200161 registry = "index.docker.io",
162 repository = "gerritcodereview/gerrit",
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100163 tag = "3.3.0-ubuntu20",
164 digest = "sha256:c7c43db7be19394a9a5f28a016d0063be2713144dc4bb815ceb698c895bc88d1",
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200165)
166
Sergiusz Bazanski48050572020-05-10 21:34:10 +0200167# third_party/factorio
168load("//third_party/factorio:factorio.bzl", "factorio_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100169
Sergiusz Bazanski48050572020-05-10 21:34:10 +0200170factorio_repositories()
Sergiusz Bazanski59786c52020-04-01 02:05:42 +0200171
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200172# For devtools/gerrit/gerrit-oauth-provider and gerrit OWNERS plugin
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200173
174git_repository(
175 name = "com_googlesource_gerrit_bazlets",
176 remote = "https://gerrit.googlesource.com/bazlets",
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100177 commit = "a511f3c90129d7de7ae67c0637001162980c08d5",
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200178)
179
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200180load("@com_googlesource_gerrit_bazlets//:gerrit_api.bzl", "gerrit_api")
Serge Bazanski1572e522020-12-03 23:19:28 +0100181
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200182gerrit_api()
183
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100184load("//devtools/gerrit/gerrit-oauth-provider:external_plugin_deps.bzl", gerrit_oauth_deps="external_plugin_deps")
185gerrit_oauth_deps(omit_commons_codec=False)
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200186
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200187# minecraft spigot/bukkit deps
188# this uses rules_jvm_external vs gerrit's maven_jar because we need SNAPSHOT support
189
190http_archive(
191 name = "io_grpc_grpc_java",
192 sha256 = "446ad7a2e85bbd05406dbf95232c7c49ed90de83b3b60cb2048b0c4c9f254d29",
193 strip_prefix = "grpc-java-1.29.0",
194 url = "https://github.com/grpc/grpc-java/archive/v1.29.0.zip",
195)
196
197RULES_JVM_EXTERNAL_TAG = "3.0"
Serge Bazanski1572e522020-12-03 23:19:28 +0100198
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200199RULES_JVM_EXTERNAL_SHA = "62133c125bf4109dfd9d2af64830208356ce4ef8b165a6ef15bbff7460b35c3a"
200
201http_archive(
202 name = "rules_jvm_external",
203 strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
204 sha256 = RULES_JVM_EXTERNAL_SHA,
205 url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
206)
207
208load("@rules_jvm_external//:defs.bzl", "maven_install")
209load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS")
210load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS")
211
212maven_install(
213 artifacts = [
214 "org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT",
215 "io.grpc:grpc-netty-shaded:1.29.0",
216 "io.grpc:grpc-services:1.29.0",
Serge Bazanski1572e522020-12-03 23:19:28 +0100217 ] + IO_GRPC_GRPC_JAVA_ARTIFACTS,
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200218 generate_compat_repositories = True,
219 override_targets = IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS,
220 repositories = [
221 "https://hub.spigotmc.org/nexus/content/repositories/snapshots",
222 "https://oss.sonatype.org/content/repositories/snapshots",
223 "https://repo1.maven.org/maven2/",
224 ],
225 maven_install_json = "//third_party/java:maven_install.json",
226)
227
228load("@maven//:defs.bzl", "pinned_maven_install")
Serge Bazanski1572e522020-12-03 23:19:28 +0100229
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200230pinned_maven_install()
231
232load("@maven//:compat.bzl", "compat_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100233
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200234compat_repositories()
235
236load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100237
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200238grpc_java_repositories()
239
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200240# Gerrit OWNERS plugins external repositories
241
242git_repository(
243 name = "com_googlesource_gerrit_plugin_owners",
244 remote = "https://gerrit.googlesource.com/plugins/owners/",
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100245 commit = "17817c9e319073c03513f9d5177b6142b8fd567b",
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200246)
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100247load("@com_googlesource_gerrit_plugin_owners//:external_plugin_deps_standalone.bzl", gerrit_owners_deps="external_plugin_deps_standalone")
248gerrit_owners_deps()
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200249
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200250# Go image repos for Docker
251
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200252load("@io_bazel_rules_docker//go:image.bzl", go_image_repositories = "repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100253
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200254go_image_repositories()
Sergiusz Bazanski0037eda2020-06-13 22:43:06 +0200255
256# oniguruma, with build from //third_party/oniguruma
257
258http_archive(
259 name = "com_github_kkos_oniguruma",
260 urls = ["https://github.com/kkos/oniguruma/releases/download/v6.9.5_rev1/onig-6.9.5_rev1.tar.gz"],
261 strip_prefix = "onig-6.9.5",
262 sha256 = "d33c849d1672af227944878cefe0a8fcf26fc62bedba32aa517f2f63c314a99e",
263 build_file = "@hscloud//third_party/oniguruma:BUILD.external",
264)
265
266# jq, with build from //third_party/jq
267
268http_archive(
269 name = "com_github_stedolan_jq",
270 urls = ["https://github.com/stedolan/jq/releases/download/jq-1.6/jq-1.6.tar.gz"],
271 strip_prefix = "jq-1.6",
272 sha256 = "5de8c8e29aaa3fb9cc6b47bb27299f271354ebb72514e3accadc7d38b5bbaa72",
273 build_file = "@hscloud//third_party/jq:BUILD.external",
274)
Serge Bazanski1572e522020-12-03 23:19:28 +0100275
276go_repository(
277 name = "com_github_gorilla_sessions",
278 importpath = "github.com/gorilla/sessions",
279 sum = "h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=",
280 version = "v1.2.1",
281)
282
283go_repository(
284 name = "com_github_boltdb_bolt",
285 importpath = "github.com/boltdb/bolt",
286 sum = "h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4=",
287 version = "v1.3.1",
288)
289
290go_repository(
291 name = "com_github_gorilla_securecookie",
292 importpath = "github.com/gorilla/securecookie",
293 sum = "h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=",
294 version = "v1.1.1",
295)