Merge branch 'stable-2.11' into master * origin/stable-2.11: Fix buck test in standalone BUCK build Add standalone BUCK build Change-Id: Id849e37156268a04f125bff3b59c804427bbaa04
diff --git a/.buckconfig b/.buckconfig new file mode 100644 index 0000000..c897236 --- /dev/null +++ b/.buckconfig
@@ -0,0 +1,13 @@ +[alias] + ref-protection = //:ref-protection + plugin = //:ref-protection + +[java] + src_roots = java, resources + +[project] + ignore = .git + +[cache] + mode = dir + dir = buck-out/cache
diff --git a/.gitignore b/.gitignore index 68892bf..cedbcae 100644 --- a/.gitignore +++ b/.gitignore
@@ -1,6 +1,11 @@ -/target -/.classpath -/.project -/.settings/org.maven.ide.eclipse.prefs -/.settings/org.eclipse.m2e.core.prefs -/.idea +buck-out/ +bucklets +target/ +.buckd/ +.buckversion +.classpath +.project +.settings/org.maven.ide.eclipse.prefs +.settings/org.eclipse.m2e.core.prefs +.idea +.watchmanconfig
diff --git a/BUCK b/BUCK index 367d677..17cda8a 100644 --- a/BUCK +++ b/BUCK
@@ -1,3 +1,17 @@ +include_defs('//bucklets/gerrit_plugin.bucklet') + +if STANDALONE_MODE: + TEST_DEPS = GERRIT_PLUGIN_API +else: + TEST_DEPS = [ + '//gerrit-common:server', + '//gerrit-reviewdb:server', + '//gerrit-server:server', + '//lib/jgit:jgit', + '//lib:guava', + '//lib:gwtorm', + ] + gerrit_plugin( name = 'ref-protection', srcs = glob(['src/main/java/**/*.java']), @@ -10,18 +24,18 @@ ], ) +java_library( + name = 'classpath', + deps = [':ref-protection__plugin'], +) + java_test( name = 'ref-protection_tests', srcs = glob(['src/test/java/**/*.java']), - deps = [ + labels = ['ref-protection'], + deps = TEST_DEPS + [ ':ref-protection__plugin', - '//gerrit-common:server', - '//gerrit-reviewdb:server', - '//gerrit-server:server', - '//lib:guava', - '//lib:gwtorm', '//lib:junit', '//lib:truth', - '//lib/jgit:jgit', ], )
diff --git a/lib/BUCK b/lib/BUCK new file mode 100644 index 0000000..f501067 --- /dev/null +++ b/lib/BUCK
@@ -0,0 +1,27 @@ +include_defs('//bucklets/maven_jar.bucklet') + +maven_jar( + name = 'junit', + id = 'junit:junit:4.10', + sha1 = 'e4f1766ce7404a08f45d859fb9c226fc9e41a861', + license = 'DO_NOT_DISTRIBUTE', + deps = [':hamcrest-core'], +) + +maven_jar( + name = 'hamcrest-core', + id = 'org.hamcrest:hamcrest-core:1.3', + sha1 = '42a25dc3219429f0e5d060061f71acb49bf010a0', + license = 'DO_NOT_DISTRIBUTE', + visibility = ['//lib:junit'], +) + +maven_jar( + name = 'truth', + id = 'com.google.truth:truth:0.26', + sha1 = 'b5802815625d82f39c33219299771f3d64301b06', + license = 'DO_NOT_DISTRIBUTE', + deps = [ + ':junit', + ], +)
diff --git a/lib/gerrit/BUCK b/lib/gerrit/BUCK new file mode 100644 index 0000000..96d016a --- /dev/null +++ b/lib/gerrit/BUCK
@@ -0,0 +1,13 @@ +include_defs('//bucklets/maven_jar.bucklet') + +VER = '2.11' +REPO = MAVEN_CENTRAL + +maven_jar( + name = 'plugin-api', + id = 'com.google.gerrit:gerrit-plugin-api:' + VER, + sha1 = 'be80ff991f7b9f8669b7a2a399003ec1ae69ed31', + license = 'Apache2.0', + attach_source = False, + repository = REPO, +)
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md new file mode 100644 index 0000000..c1ea124 --- /dev/null +++ b/src/main/resources/Documentation/build.md
@@ -0,0 +1,84 @@ +Build +===== + +This plugin is built with Buck. + +Two build modes are supported: Standalone and in Gerrit tree. Standalone +build mode is recommended, as this mode doesn't require local Gerrit +tree to exist. + +Build standalone +---------------- + +Clone bucklets library: + +``` + git clone https://gerrit.googlesource.com/bucklets + +``` +and link it to ref-protection directory: + +``` + cd ref-protection && ln -s ../bucklets . +``` + +Add link to the .buckversion file: + +``` + cd ref-protection && ln -s bucklets/buckversion .buckversion +``` + +Add link to the .watchmanconfig file: + +``` + cd ref-protection && ln -s bucklets/watchmanconfig .watchmanconfig +``` + +To build the plugin, issue the following command: + +``` + buck build plugin +``` + +The output is created in + +``` + buck-out/gen/ref-protection.jar +``` + +To run unit tests, issue the following command: + +``` + buck test +``` + +Build in Gerrit tree +-------------------- + +Clone or link this plugin to the plugins directory of Gerrit's source +tree, and issue the command: + +``` + buck build plugins/ref-protection +``` + +The output is created in + +``` + buck-out/gen/plugins/ref-protection/ref-protection.jar +``` + +This project can be imported into the Eclipse IDE: + +``` + ./tools/eclipse/project.py +``` + +To run the unit tests and restrict to run only the tests from this plugin: + +``` + buck test --include ref-protection +``` + +How to build the Gerrit Plugin API is described in the [Gerrit +documentation](../../../Documentation/dev-buck.html#_extension_and_plugin_api_jar_files).