| load("//tools/bzl:junit.bzl", "junit_tests") |
| load("//tools/bzl:js.bzl", "gerrit_js_bundle") |
| load("//tools/js:eslint.bzl", "eslint") |
| load( |
| "//tools/bzl:plugin.bzl", |
| "PLUGIN_DEPS", |
| "PLUGIN_TEST_DEPS", |
| "gerrit_plugin", |
| ) |
| load("@rules_java//java:defs.bzl", "java_library", "java_plugin") |
| |
| plugin_name = "depends-on" |
| |
| java_plugin( |
| name = "auto-annotation-plugin", |
| processor_class = "com.google.auto.value.processor.AutoAnnotationProcessor", |
| deps = [ |
| "@auto-value-annotations//jar", |
| "@auto-value//jar", |
| ], |
| ) |
| |
| java_plugin( |
| name = "auto-value-plugin", |
| processor_class = "com.google.auto.value.processor.AutoValueProcessor", |
| deps = [ |
| "@auto-value-annotations//jar", |
| "@auto-value//jar", |
| ], |
| ) |
| |
| java_library( |
| name = "auto-value", |
| exported_plugins = [ |
| ":auto-annotation-plugin", |
| ":auto-value-plugin", |
| ], |
| visibility = ["//visibility:public"], |
| exports = ["@auto-value//jar"], |
| ) |
| |
| java_library( |
| name = "auto-value-annotations", |
| exported_plugins = [ |
| ":auto-annotation-plugin", |
| ":auto-value-plugin", |
| ], |
| visibility = ["//visibility:public"], |
| exports = ["@auto-value-annotations//jar"], |
| ) |
| |
| gerrit_plugin( |
| name = plugin_name, |
| srcs = glob(["src/main/java/**/*.java"]), |
| manifest_entries = [ |
| "Gerrit-PluginName: " + plugin_name, |
| "Implementation-Title: Depends-on Plugin", |
| "Implementation-URL: https://gerrit-review.googlesource.com/#/admin/projects/plugins/" + plugin_name, |
| "Gerrit-Module: com.googlesource.gerrit.plugins.depends.on.Module", |
| ], |
| resource_jars = [":gr-depends-on-plugin"], |
| resources = glob(["src/main/resources/**/*"]), |
| deps = [ |
| ":auto-value", |
| ":auto-value-annotations", |
| ], |
| ) |
| |
| gerrit_js_bundle( |
| name = "gr-depends-on-plugin", |
| srcs = glob(["gr-depends-on-plugin/*.js"]), |
| entry_point = "gr-depends-on-plugin/plugin.js", |
| ) |
| |
| eslint( |
| name = "lint", |
| srcs = glob(["gr-depends-on-plugin/**/*.js"]), |
| config = ".eslintrc.json", |
| data = [], |
| extensions = [ |
| ".js", |
| ], |
| ignore = ".eslintignore", |
| plugins = [ |
| "@npm//eslint-config-google", |
| "@npm//eslint-plugin-html", |
| "@npm//eslint-plugin-import", |
| "@npm//eslint-plugin-jsdoc", |
| ], |
| ) |
| |
| junit_tests( |
| name = "depends-on_tests", |
| srcs = glob(["src/test/java/**/*Test.java"]), |
| tags = [plugin_name], |
| deps = [":depends-on__plugin_test_deps"], |
| ) |
| |
| java_library( |
| name = "depends-on__plugin_test_deps", |
| testonly = True, |
| srcs = glob( |
| ["src/test/java/**/*.java"], |
| exclude = ["src/test/java/**/*Test.java"], |
| ), |
| visibility = ["//visibility:public"], |
| exports = PLUGIN_DEPS + PLUGIN_TEST_DEPS + [plugin_name], |
| ) |
| |
| sh_test( |
| name = "docker-tests", |
| size = "medium", |
| srcs = ["test/docker/run.sh"], |
| args = [ |
| "--plugin", plugin_name, |
| "$(location :depends-on)", |
| ], |
| data = [plugin_name] + glob(["test/**"]), |
| local = True, |
| tags = ["docker"], |
| ) |