Adds the ability to specify startup options
So we can inject --host_jvm_args=-Dbazel.DigestFunction=... to test
remote caching/execution.
Change-Id: I2cf3500c4d98f42c4112a4a9c66c85e2bfdd2f6a
diff --git a/docs/owner.md b/docs/owner.md
index 736631f..3d55a00 100644
--- a/docs/owner.md
+++ b/docs/owner.md
@@ -206,6 +206,7 @@
* `build_opts`: list of options to add to the bazelrc as `build`
options, note that they impact testing too.
* `test_opts`: list of options to add to the bazelrc as `test` options.
+* `startup_opts`: list of options to add to the bazelrc as `startup` options.
## Bazel bootstrap
diff --git a/jenkins/lib/src/build/bazel/ci/BazelUtils.groovy b/jenkins/lib/src/build/bazel/ci/BazelUtils.groovy
index 89467d2..8449a76 100644
--- a/jenkins/lib/src/build/bazel/ci/BazelUtils.groovy
+++ b/jenkins/lib/src/build/bazel/ci/BazelUtils.groovy
@@ -90,6 +90,7 @@
// Write a RC file to consume by the other step
def writeRc(build_opts = [],
test_opts = [],
+ startup_opts = [],
extra_bazelrc = "") {
def rc_file_content = [
"common --color=yes",
@@ -98,6 +99,7 @@
]
rc_file_content.addAll(build_opts.collect { "build ${it}" })
rc_file_content.addAll(test_opts.collect { "test ${it}" })
+ rc_file_content.addAll(startup_opts.collect { "startup ${it}" })
// Store the BEP events on a json file.
// TODO(dmarting): We should archive it and generate a good HTML report instead of
// the hard to read jenkins dashboard.
diff --git a/jenkins/lib/vars/bazelCiConfiguredJob.groovy b/jenkins/lib/vars/bazelCiConfiguredJob.groovy
index bf26d98..98be1df 100644
--- a/jenkins/lib/vars/bazelCiConfiguredJob.groovy
+++ b/jenkins/lib/vars/bazelCiConfiguredJob.groovy
@@ -49,6 +49,7 @@
configuration: params.get("configure", []),
build_opts: params.get("build_opts", []),
test_opts: params.get("test_opts", []),
+ startup_opts: params.get("startup_opts", []),
bazel_version: config.bazel_version + conf.get("variation", ""),
extra_bazelrc: config.extra_bazelrc,
build_tag_filters: params.get("build_tag_filters", []),
diff --git a/jenkins/lib/vars/bazelCiJob.groovy b/jenkins/lib/vars/bazelCiJob.groovy
index b88d392..2b620df 100644
--- a/jenkins/lib/vars/bazelCiJob.groovy
+++ b/jenkins/lib/vars/bazelCiJob.groovy
@@ -41,6 +41,7 @@
config["configuration"] = config.get("configuration", [])
config["build_opts"] = config.get("build_opts", [])
config["test_opts"] = config.get("test_opts", [])
+ config["startup_opts"] = config.get("startup_opts", [])
config["extra_bazelrc"] = config.get("extra_bazelrc", "")
config["build_tag_filters"] = config.get("build_tag_filters", [])
config["test_tag_filters"] = config.get("test_tag_filters", [])
@@ -86,6 +87,7 @@
bazelJob(binary: bazel,
build_opts: build_options,
test_opts: test_options,
+ startup_opts: config.startup_opts,
extra_bazelrc: extrarc,
targets: config.targets,
tests: config.tests,
diff --git a/jenkins/lib/vars/bazelJob.groovy b/jenkins/lib/vars/bazelJob.groovy
index ed24bcd..37d4343 100644
--- a/jenkins/lib/vars/bazelJob.groovy
+++ b/jenkins/lib/vars/bazelJob.groovy
@@ -35,6 +35,7 @@
config["configuration"] = config.get("configuration", [])
config["build_opts"] = config.get("build_opts", [])
config["test_opts"] = config.get("test_opts", [])
+ config["startup_opts"] = config.get("startup_opts", [])
config["extra_bazelrc"] = config.get("extra_bazelrc", "")
config["stage_name"] = config.get("stage_name", "")
@@ -45,7 +46,7 @@
// And now the various stage
def stage_prefix = config.stage_name.isEmpty() ? "" : "[${config.stage_name}] "
- utils.writeRc(config.build_opts, config.test_opts, config.extra_bazelrc)
+ utils.writeRc(config.build_opts, config.test_opts, config.startup_opts, config.extra_bazelrc)
stage("${stage_prefix}Bazel version") {
utils.bazelCommand("version")
}