This plugin is built with Bazel and two build modes are supported:
Standalone build mode is recommended, as this mode doesn't require local Gerrit tree to exist. This plugin has a side component, gc-executor, to build as well.
Successfully running some of the tests requires Docker, which are skipped if Docker is not available.
Bazel currently does not show link:https://github.com/bazelbuild/bazel/issues/3476[skipped tests].
To build the plugin, issue the following command:
bazel build @PLUGIN@
The output is created in
bazel-bin/@PLUGIN@.jar
To package the plugin sources run:
bazel build lib@PLUGIN@__plugin-src.jar
The output is created in:
bazel-bin/lib@PLUGIN@__plugin-src.jar
To execute the tests run:
bazel test //...
This project can be imported into the Eclipse IDE. Execute:
./tools/eclipse/project.py
to generate the required files and then import the project.
To build the executor, issue the following command:
bazel build gc-executor_deploy.jar
The output is created in:
bazel-bin/gc-executor_deploy.jar
This jar should be renamed to gc-executor.jar before deployment.
Once the executor is built, the resulting postgresql jar file like below should be manually copied over to the gerrit site /lib folder; on macOS:
bazel-out/darwin-fastbuild/bin/gc-executor.runfiles/gc_executor/external/postgresql/jar/postgresql-42.2.5.jar
That file has to be in accordance with potentially existing database driver files under site's /lib, for proper account_patch_reviews support.
Clone or link this plugin to the plugins directory of Gerrit's source tree. Put the external dependency Bazel build file into the Gerrit /plugins directory, replacing the existing empty one.
cd gerrit/plugins rm external_plugin_deps.bzl ln -s @PLUGIN@/external_plugin_deps.bzl .
From Gerrit source tree issue the command:
bazel build plugins/@PLUGIN@
The output is created in
bazel-bin/plugins/@PLUGIN@/@PLUGIN@.jar
To execute the tests run:
bazel test --test_tag_filters=@PLUGIN@ //...
or filtering using the comma separated tags:
bazel test --test_tag_filters=@PLUGIN@ --strict_java_deps=off //...
This project can be imported into the Eclipse IDE. Add the plugin name to the CUSTOM_PLUGINS
set in Gerrit core in tools/bzl/plugins.bzl
, and execute:
./tools/eclipse/project.py