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-acceptance-tests/BUILD b/gerrit-acceptance-tests/BUILD
new file mode 100644
index 0000000..2ec7a05
--- /dev/null
+++ b/gerrit-acceptance-tests/BUILD
@@ -0,0 +1,42 @@
+load('//tools/bzl:java.bzl', 'java_library2')
+
+java_library2(
+ name = 'lib',
+ srcs = glob(['src/test/java/com/google/gerrit/acceptance/*.java']),
+ exported_deps = [
+ '//gerrit-acceptance-framework:lib',
+ '//gerrit-common:annotations',
+ '//gerrit-common:server',
+ '//gerrit-extension-api:api',
+ '//gerrit-gpg:testutil',
+ '//gerrit-launcher:launcher',
+ '//gerrit-lucene:lucene',
+ '//gerrit-httpd:httpd',
+ '//gerrit-pgm:init',
+ '//gerrit-pgm:pgm',
+ '//gerrit-pgm:util',
+ '//gerrit-reviewdb:server',
+ '//gerrit-server:server',
+ '//gerrit-server:testutil',
+ '//gerrit-server/src/main/prolog:common',
+ '//gerrit-sshd:sshd',
+
+ '//lib:args4j',
+ '//lib:gson',
+ '//lib:gwtjsonrpc',
+ '//lib:gwtorm',
+ '//lib:h2',
+ '//lib:jsch',
+ '//lib:servlet-api-3_1-without-neverlink',
+
+ '//lib/bouncycastle:bcpg',
+ '//lib/bouncycastle:bcprov',
+ '//lib/guice:guice',
+ '//lib/guice:guice-assistedinject',
+ '//lib/guice:guice-servlet',
+ '//lib/log:api',
+ '//lib/jgit/org.eclipse.jgit:jgit',
+ '//lib/mina:sshd',
+ ],
+ visibility = ['//visibility:public'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/BUILD
new file mode 100644
index 0000000..9935eeb
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/BUILD
@@ -0,0 +1,7 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'api_account',
+ srcs = glob(['*IT.java']),
+ labels = ['api'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/BUILD
new file mode 100644
index 0000000..2502cad
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/BUILD
@@ -0,0 +1,7 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'api_change',
+ srcs = glob(['*IT.java']),
+ labels = ['api'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/config/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/config/BUILD
new file mode 100644
index 0000000..da8274d
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/config/BUILD
@@ -0,0 +1,7 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'api_config',
+ srcs = glob(['*IT.java']),
+ labels = ['api'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/BUILD
new file mode 100644
index 0000000..1a374f0
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/BUILD
@@ -0,0 +1,23 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'api_group',
+ srcs = glob(['*IT.java']),
+ deps = [
+ ':util',
+ '//gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account:util',
+ ],
+ labels = ['api'],
+)
+
+java_library(
+ name = 'util',
+ srcs = ['GroupAssert.java'],
+ deps = [
+ '//gerrit-extension-api:api',
+ '//gerrit-reviewdb:server',
+ '//gerrit-server:server',
+ '//lib:gwtorm',
+ '//lib:truth',
+ ],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/project/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/project/BUILD
new file mode 100644
index 0000000..4fb65ff
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/project/BUILD
@@ -0,0 +1,7 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'api_project',
+ srcs = glob(['*IT.java']),
+ labels = ['api'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/BUILD
new file mode 100644
index 0000000..e527b9d
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/BUILD
@@ -0,0 +1,7 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'api_revision',
+ srcs = glob(['*IT.java']),
+ labels = ['api'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/edit/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/edit/BUILD
new file mode 100644
index 0000000..3fcf2d8
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/edit/BUILD
@@ -0,0 +1,11 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'edit',
+ srcs = ['ChangeEditIT.java'],
+ deps = [
+ '//lib/commons:codec',
+ '//lib/joda:joda-time',
+ ],
+ labels = ['edit'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/BUILD
new file mode 100644
index 0000000..db0d8e9
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/BUILD
@@ -0,0 +1,26 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'git',
+ srcs = glob(['*IT.java']),
+ deps = [
+ ':submodule_util',
+ ':push_for_review',
+ ],
+ labels = ['git'],
+)
+
+java_library(
+ name = 'push_for_review',
+ srcs = ['AbstractPushForReview.java'],
+ deps = [
+ '//gerrit-acceptance-tests:lib',
+ '//lib/joda:joda-time',
+ ],
+)
+
+java_library(
+ name = 'submodule_util',
+ srcs = ['AbstractSubmoduleSubscription.java',],
+ deps = ['//gerrit-acceptance-tests:lib',]
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/pgm/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/pgm/BUILD
new file mode 100644
index 0000000..806acd2
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/pgm/BUILD
@@ -0,0 +1,8 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'pgm',
+ srcs = glob(['*IT.java']),
+ source_under_test = ['//gerrit-pgm:pgm'],
+ labels = ['pgm'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account/BUILD
new file mode 100644
index 0000000..558d0a9
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account/BUILD
@@ -0,0 +1,23 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'rest_account',
+ srcs = glob(['*IT.java']),
+ deps = [':util'],
+ labels = ['rest']
+)
+
+java_library(
+ name = 'util',
+ srcs = [
+ 'AccountAssert.java',
+ 'CapabilityInfo.java',
+ ],
+ deps = [
+ '//gerrit-acceptance-tests:lib',
+ '//gerrit-reviewdb:server',
+ '//lib:gwtorm',
+ '//lib:junit',
+ ],
+ visibility = ['//visibility:public'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/BUILD
new file mode 100644
index 0000000..c06f02f
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/BUILD
@@ -0,0 +1,36 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+SUBMIT_UTIL_SRCS = [
+ 'AbstractSubmit.java',
+ 'AbstractSubmitByMerge.java',
+]
+
+SUBMIT_TESTS = glob(['Submit*IT.java'])
+OTHER_TESTS = glob(['*IT.java'], exclude = SUBMIT_TESTS)
+
+acceptance_tests(
+ group = 'rest_change_other',
+ srcs = OTHER_TESTS,
+ deps = [
+ ':submit_util',
+ '//lib/joda:joda-time',
+ ],
+ labels = ['rest'],
+)
+
+acceptance_tests(
+ group = 'rest_change_submit',
+ srcs = SUBMIT_TESTS,
+ deps = [
+ ':submit_util',
+ ],
+ labels = ['rest'],
+)
+
+java_library(
+ name = 'submit_util',
+ srcs = SUBMIT_UTIL_SRCS,
+ deps = [
+ '//gerrit-acceptance-tests:lib',
+ ],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/config/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/config/BUILD
new file mode 100644
index 0000000..b9d3ffb
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/config/BUILD
@@ -0,0 +1,7 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'rest_config',
+ srcs = glob(['*IT.java']),
+ labels = ['rest']
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/group/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/group/BUILD
new file mode 100644
index 0000000..d9a400c
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/group/BUILD
@@ -0,0 +1,8 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'rest_group',
+ srcs = glob(['*IT.java']),
+ labels = ['rest']
+)
+
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/BUILD
new file mode 100644
index 0000000..579171f
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/BUILD
@@ -0,0 +1,37 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'rest_project',
+ srcs = glob(['*IT.java']),
+ deps = [
+ ':branch',
+ ':project',
+ ],
+ labels = ['rest'],
+)
+
+java_library(
+ name = 'branch',
+ srcs = [
+ 'BranchAssert.java',
+ ],
+ deps = [
+ '//lib:truth',
+ '//gerrit-extension-api:api',
+ '//gerrit-server:server',
+ ],
+)
+
+java_library(
+ name = 'project',
+ srcs = [
+ 'ProjectAssert.java',
+ ],
+ deps = [
+ '//gerrit-extension-api:api',
+ '//gerrit-reviewdb:server',
+ '//gerrit-server:server',
+ '//lib:gwtorm',
+ '//lib:truth',
+ ],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/BUILD
new file mode 100644
index 0000000..a5e6d36
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/BUILD
@@ -0,0 +1,7 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'server_change',
+ srcs = glob(['*IT.java']),
+ labels = ['server'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/event/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/event/BUILD
new file mode 100644
index 0000000..ff0c51b
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/event/BUILD
@@ -0,0 +1,7 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'server_event',
+ srcs = glob(['*IT.java']),
+ labels = ['server'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/notedb/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/notedb/BUILD
new file mode 100644
index 0000000..17c4cdc
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/notedb/BUILD
@@ -0,0 +1,7 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'server_notedb',
+ srcs = glob(['*IT.java']),
+ labels = ['notedb', 'server'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/BUILD
new file mode 100644
index 0000000..bcf9c9f
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/BUILD
@@ -0,0 +1,16 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+FLAKY_TEST_CASES=['ProjectWatchIT.java']
+
+acceptance_tests(
+ group = 'server_project',
+ srcs = glob(['*IT.java'], exclude=FLAKY_TEST_CASES),
+ labels = ['server'],
+)
+
+acceptance_tests(
+ group = 'server_project_flaky',
+ flaky = 1,
+ srcs = FLAKY_TEST_CASES,
+ labels = ['server', 'flaky'],
+)
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/BUILD b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/BUILD
new file mode 100644
index 0000000..3c91aa1
--- /dev/null
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/BUILD
@@ -0,0 +1,8 @@
+load('//gerrit-acceptance-tests:tests.bzl', 'acceptance_tests')
+
+acceptance_tests(
+ group = 'ssh',
+ srcs = glob(['*IT.java']),
+ deps = ['//lib/commons:compress'],
+ labels = ['ssh'],
+)
diff --git a/gerrit-acceptance-tests/tests.bzl b/gerrit-acceptance-tests/tests.bzl
new file mode 100644
index 0000000..ff2562d
--- /dev/null
+++ b/gerrit-acceptance-tests/tests.bzl
@@ -0,0 +1,28 @@
+load('//tools/bzl:junit.bzl', 'junit_tests')
+
+BOUNCYCASTLE = [
+ '//lib/bouncycastle:bcpkix-without-neverlink',
+ '//lib/bouncycastle:bcpg-without-neverlink',
+]
+
+def acceptance_tests(
+ group,
+ srcs,
+ flaky = 0,
+ deps = [],
+ labels = [],
+ source_under_test = [], #unused
+ vm_args = ['-Xmx256m']):
+ junit_tests(
+ name = group,
+ srcs = srcs,
+ flaky = flaky,
+ deps = deps + BOUNCYCASTLE + [
+ '//gerrit-acceptance-tests:lib',
+ ],
+ tags = labels + [
+ 'acceptance',
+ 'slow',
+ ],
+ jvm_flags = vm_args,
+ )