Implement Bazel build

To run the tests:

  bazel test //...

To build the Gerrit plugin API, run:

  bazel build gerrit-plugin-api:plugin-api_deploy.jar

To build the Gerrit extension API, run:

  bazel build gerrit-extension-api:extension-api_deploy.jar

TODOs:

Licenses
Reduce visibility (all public for now)
Generate HTML Documentation
Core plugins
gerrit_plugin() rule to build plugins in tree and standalone modes
GWT UI (only gwt_module() skylark rule is provided, no gwt_binary())
PolyGerrit UI
WAR
Publish artifacts to Maven Central
Ask Bazel team to add Gerrit to their CI on ci.bazel.io

Contributed-By: Han-Wen Nienhuys <hanwen@google.com>
Change-Id: I9a86e670882a44a5c966579cdeb8ed79b1590de3
diff --git a/gerrit-gpg/BUILD b/gerrit-gpg/BUILD
new file mode 100644
index 0000000..79f50b1
--- /dev/null
+++ b/gerrit-gpg/BUILD
@@ -0,0 +1,58 @@
+load('//tools/bzl:junit.bzl', 'junit_tests')
+
+DEPS = [
+  '//gerrit-common:server',
+  '//gerrit-extension-api:api',
+  '//gerrit-reviewdb:server',
+  '//gerrit-server:server',
+  '//lib:guava',
+  '//lib:gwtorm',
+  '//lib/guice:guice',
+  '//lib/guice:guice-assistedinject',
+  '//lib/guice:guice-servlet',
+  '//lib/jgit/org.eclipse.jgit:jgit',
+  '//lib/log:api',
+]
+
+java_library(
+  name = 'gpg',
+  srcs = glob(['src/main/java/**/*.java']),
+  deps = DEPS + [
+    '//lib/bouncycastle:bcpg',
+    '//lib/bouncycastle:bcprov',
+  ],
+  visibility = ['//visibility:public'],
+)
+
+TESTUTIL_SRCS = glob(['src/test/**/testutil/**/*.java'])
+
+java_library(
+  name = 'testutil',
+  srcs = TESTUTIL_SRCS,
+  deps = DEPS + [
+    ':gpg',
+    '//lib/bouncycastle:bcpg-without-neverlink',
+    '//lib/bouncycastle:bcprov-without-neverlink',
+  ],
+  visibility = ['//visibility:public'],
+)
+
+junit_tests(
+  name = 'gpg_tests',
+  srcs = glob(
+    ['src/test/java/**/*.java'],
+    exclude = TESTUTIL_SRCS,
+  ),
+  deps = DEPS + [
+    ':gpg',
+    ':testutil',
+    '//gerrit-cache-h2:cache-h2',
+    '//gerrit-lucene:lucene',
+    '//gerrit-server:testutil',
+    '//lib:truth',
+    '//lib/jgit/org.eclipse.jgit.junit:junit',
+    '//lib/bouncycastle:bcpg-without-neverlink',
+    '//lib/bouncycastle:bcprov-without-neverlink',
+  ],
+  visibility = ['//visibility:public'],
+)