Merge branch 'stable-3.0'

* stable-3.0:
  Add build validation with Jenkinsfile

Change-Id: Id9c6a71daf396bc6a8a250ad95ce518f1e36f67b
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..c555bcf
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,34 @@
+pipeline {
+    options { checkoutToSubdirectory('zookeeper') }
+    agent { label 'bazel-debian' }
+    stages {
+        stage('GJF') {
+            steps {
+                sh "find zookeeper -name '*.java' | xargs /home/jenkins/format/google-java-format-1.7 -i"
+                script {
+                    def formatOut = sh (script: 'cd zookeeper && git status --porcelain', returnStdout: true)
+                    if (formatOut.trim()) {
+                        def files = formatOut.split('\n').collect { it.split(' ').last() }
+                        files.each { gerritComment path:it, message: 'Needs reformatting with GJF' }
+                        gerritReview labels: [Formatting: -1]
+                    } else {
+                        gerritReview labels: [Formatting: 1]
+                    }
+                }
+            }
+        }
+        stage('build') {
+            steps {
+                gerritReview labels: [Verified: 0], message: "Build started: ${env.BUILD_URL}"
+                sh "git clone --recursive -b stable-3.0 https://gerrit.googlesource.com/gerrit"
+                sh 'cd gerrit/plugins && ln -sf ../../zookeeper . && ln -sf zookeeper/external_plugin_deps.bzl .'
+                sh 'cd gerrit && bazel build plugins/zookeeper && bazel test plugins/zookeeper:zookeeper_tests'
+            }
+        }
+    }
+    post {
+        success { gerritReview labels: [Verified: 1] }
+        unstable { gerritReview labels: [Verified: 0], message: "Build is unstable: ${env.BUILD_URL}" }
+        failure { gerritReview labels: [Verified: -1], message: "Build failed: ${env.BUILD_URL}" }
+    }
+}