blob: 8616c3ccf05f935fb6ee666618455df35da4e6a1 [file] [log] [blame]
load("@npm_bazel_rollup//:index.bzl", "rollup_bundle")
load("@rules_java//java:defs.bzl", "java_library")
load("//tools/bzl:junit.bzl", "junit_tests")
load(
"//tools/bzl:plugin.bzl",
"PLUGIN_DEPS",
"PLUGIN_TEST_DEPS",
"gerrit_plugin",
)
load("//tools/bzl:genrule2.bzl", "genrule2")
load("//tools/bzl:js.bzl", "polygerrit_plugin")
LFS_DEPS = [
"@jgit//org.eclipse.jgit.lfs.server:jgit-lfs-server",
"@jgit//org.eclipse.jgit.lfs:jgit-lfs",
]
DEPLOY_ENV = [
"//lib:gson",
"//lib/httpcomponents:httpclient",
"//lib:jgit",
"//lib:servlet-api-without-neverlink",
]
# TODO(davido): Remove this workaround, when provided_deps attribute is added:
# https://github.com/bazelbuild/bazel/issues/1402
java_binary(
name = "gerrit_core_provided_env",
main_class = "Dummy",
runtime_deps = DEPLOY_ENV,
)
gerrit_plugin(
name = "lfs",
srcs = glob(["src/main/java/**/*.java"]),
deploy_env = ["gerrit_core_provided_env"],
manifest_entries = [
"Gerrit-PluginName: lfs",
"Gerrit-Module: com.googlesource.gerrit.plugins.lfs.Module",
"Gerrit-HttpModule: com.googlesource.gerrit.plugins.lfs.HttpModule",
"Gerrit-SshModule: com.googlesource.gerrit.plugins.lfs.SshModule",
"Gerrit-InitStep: com.googlesource.gerrit.plugins.lfs.InitLfs",
],
resource_jars = [":gr-lfs-static"],
resources = glob(["src/main/resources/**/*"]),
deps = LFS_DEPS,
)
genrule2(
name = "gr-lfs-static",
srcs = [":gr-lfs"],
outs = ["gr-lfs-static.jar"],
cmd = " && ".join([
"mkdir $$TMP/static",
"cp -r $(locations :gr-lfs) $$TMP/static",
"cd $$TMP",
"zip -Drq $$ROOT/$@ -g .",
]),
)
polygerrit_plugin(
name = "gr-lfs",
app = "gr-lfs-bundle.js",
plugin_name = "gr-lfs",
)
rollup_bundle(
name = "gr-lfs-bundle",
srcs = glob(["gr-lfs/*.js"]),
entry_point = "gr-lfs/plugin.js",
format = "iife",
rollup_bin = "//tools/node_tools:rollup-bin",
sourcemap = "hidden",
deps = [
"@tools_npm//rollup-plugin-node-resolve",
],
)
junit_tests(
name = "lfs_tests",
srcs = glob(["src/test/java/**/*.java"]),
tags = ["lfs"],
deps = [
":lfs__plugin_test_deps",
],
)
java_library(
name = "lfs__plugin_test_deps",
testonly = 1,
visibility = ["//visibility:public"],
exports = PLUGIN_DEPS + PLUGIN_TEST_DEPS + LFS_DEPS + [
":lfs__plugin",
],
)