Build
=====

This plugin can be built with Bazel in the Gerrit tree.

Clone or symlink this plugin repository to the `plugins/` directory
of Gerrit's source tree. Edit the external dependency Bazel build file
`gerrit/plugins/external_plugin_deps.MODULE.bazel` and add a line
to import the plugin's external dependencies.

If you also want to build the high-availability plugin (which
the @PLUGIN@ depends on) from source code also clone or symlink
its repository to the `plugins/` directory and add another line
to the `external_plugin_deps.MODULE.bazel`:

```
include("//plugins/high-availability:external_plugin_deps.MODULE.bazel")
include("//plugins/high-availability-aws:external_plugin_deps.MODULE.bazel")
```

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 either one of:

```
  bazel test --test_tag_filters=@PLUGIN@ //...
  bazel test plugins/@PLUGIN@:@PLUGIN@_tests
```

[Back to @PLUGIN@ documentation index][index]

[index]: index.html
