Build Buck and/or Bazel depending on BUCK/BUILD files
Bug: Issue 5306
Change-Id: I5a5044cb48dfd417911e9f667a42ae84826f66e5
diff --git a/jenkins/gerrit-verifier-change.groovy b/jenkins/gerrit-verifier-change.groovy
index e2b6ec1..16d51b3 100644
--- a/jenkins/gerrit-verifier-change.groovy
+++ b/jenkins/gerrit-verifier-change.groovy
@@ -156,11 +156,44 @@
def branch = change.branch
def changeUrl = Globals.gerrit + "#/c/" + changeNum + "/" + patchNum
def refspec = "+" + ref + ":" + ref.replaceAll('ref/', 'ref/remotes/origin/')
- def tools = ["buck"]
+ def tools = []
def modes = ["reviewdb"]
+ def workspace = build.environment.get("WORKSPACE")
+ println "workspace: $workspace"
+ def cwd = new File("$workspace")
+ println "cwd: $cwd"
+ println "ref: $ref"
if(branch == "master") {
- tools += ["bazel"]
+ def sout = new StringBuilder(), serr = new StringBuilder()
+ def fetchCmd = "git fetch origin $ref"
+ println "CMD: $fetchCmd"
+ def fetch = fetchCmd.execute([],cwd)
+ fetch.consumeProcessOutput(sout, serr)
+ fetch.waitForOrKill(30000)
+ println "OUT: $sout"
+ println "ERR: $serr"
+
+ def coCmd = "git checkout FETCH_HEAD"
+ println "CMD: $coCmd"
+ def co = coCmd.execute([],cwd)
+ sout = new StringBuilder()
+ serr = new StringBuilder()
+ co.consumeProcessOutput(sout, serr)
+ co.waitForOrKill(30000)
+ println "OUT: $sout"
+ println "ERR: $serr"
+
+ if(new java.io.File("$cwd/BUCK").exists()) {
+ tools += ["buck"]
+ }
+
+ if(new java.io.File("$cwd/BUILD").exists()) {
+ tools += ["bazel"]
+ }
+ }
+ else {
+ tools += ["buck"]
}
println "Building Change " + changeUrl
diff --git a/jenkins/gerrit-verifier.yaml b/jenkins/gerrit-verifier.yaml
index 8ab2c0f..c68944d 100644
--- a/jenkins/gerrit-verifier.yaml
+++ b/jenkins/gerrit-verifier.yaml
@@ -152,15 +152,27 @@
name: 'Gerrit-verifier-change'
project-type: flow
concurrent: true
+ needs-workspace: true
parameters:
- string:
name: CHANGE_ID
description: Gerrit Change-ID to build and verify
+ scm:
+ - git:
+ url: https://gerrit.googlesource.com/gerrit
+ branches:
+ - "*/master"
+ submodule:
+ disable: true
+ skip-tag: true
dsl:
!include-raw: gerrit-verifier-change.groovy
properties:
- build-discarder:
days-to-keep: 7
+ - inject:
+ keep-build-variables: true
+ keep-system-variables: true
- job:
name: 'Gerrit-verifier-flow'