aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts/ci/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/ci/build.sh')
-rwxr-xr-xscripts/ci/build.sh49
1 files changed, 43 insertions, 6 deletions
diff --git a/scripts/ci/build.sh b/scripts/ci/build.sh
index 63f7de705f..df7e794b39 100755
--- a/scripts/ci/build.sh
+++ b/scripts/ci/build.sh
@@ -98,6 +98,45 @@ EOF
fi
}
+# Set the various arguments when JDK 7 is required (deprecated).
+# This method is here to continue to build binary release of Bazel
+# for JDK 7. We will drop this method and JDK 7 support when our
+# ci system turn red on this one.
+function setup_jdk7() {
+ # This is a JDK 7 JavaBuilder from release 0.1.0.
+ local javabuilder_url="https://storage.googleapis.com/bazel/0.1.0/JavaBuilder_deploy.jar"
+ local javac_url="https://github.com/bazelbuild/bazel/blob/0.1.0/third_party/java/jdk/langtools/javac.jar?raw=true"
+ sed -i.bak 's/_version = "8"/_version = "7"/' tools/jdk/BUILD
+ rm -f tools/jdk/BUILD.bak
+ rm -f third_party/java/jdk/langtools/javac.jar
+ curl -Ls -o tools/jdk/JavaBuilder_deploy.jar "${javabuilder_url}"
+ curl -Ls -o third_party/java/jdk/langtools/javac.jar "${javac_url}"
+ # Do not use the skylark bootstrapped version of JavaBuilder
+ export BAZEL_ARGS="--singlejar_top=//src/java_tools/singlejar:bootstrap_deploy.jar \
+ --genclass_top=//src/java_tools/buildjar:bootstrap_genclass_deploy.jar \
+ --ijar_top=//third_party/ijar"
+ # Skip building JavaBuilder
+ export BAZEL_SKIP_TOOL_COMPILATION=tools/jdk/JavaBuilder_deploy.jar
+ # Ignore JDK8 tests
+ export BAZEL_TEST_FILTERS="-jdk8"
+ if ! grep -Fq 'RealJavaBuilder' src/java_tools/buildjar/BUILD; then
+ # And more ugly hack. Overwrite the BUILD file of JavaBuilder
+ # so we use the pre-built version in integration tests.
+ sed -i.bak 's/name = \"JavaBuilder\"/name = \"RealJavaBuilder\"/' \
+ src/java_tools/buildjar/BUILD
+ rm -f src/java_tools/buildjar/BUILD.bak
+ cat >>src/java_tools/buildjar/BUILD <<'EOF'
+genrule(
+ name = "JavaBuilder",
+ outs = ["JavaBuilder_deploy.jar"],
+ srcs = ["//tools/jdk:JavaBuilder_deploy.jar"],
+ cmd = "cp $< $@",
+ visibility = ["//visibility:public"],
+)
+EOF
+ fi
+}
+
# Main entry point for building bazel.
# It sets the embed label to the release name if any, calls the whole
# test suite, compile the various packages, then copy the artifacts
@@ -112,10 +151,9 @@ function bazel_build() {
if [[ "${JAVA_VERSION-}" =~ ^(1\.)?7$ ]]; then
JAVA_VERSION=1.7
- FLAVOUR="-jdk7"
+ setup_jdk7
release_label="${release_label}-jdk7"
else
- FLAVOUR=""
JAVA_VERSION=1.8
fi
@@ -139,16 +177,15 @@ function bazel_build() {
--workspace_status_command=scripts/ci/build_status_command.sh \
--define JAVA_VERSION=${JAVA_VERSION} \
${ARGS} \
- //scripts/packages:install${FLAVOUR}.sh \
- //scripts/bazel-debian${FLAVOUR}.deb} || exit $?
+ //scripts/packages/... || exit $?
if [ -n "${1-}" ]; then
# Copy the results to the output directory
mkdir -p $1/packages
cp output/bazel $1/bazel
- cp bazel-bin/scripts/packages/install${FLAVOUR}.sh $1/bazel-${release_label}-installer.sh
+ cp bazel-bin/scripts/packages/install.sh $1/bazel-${release_label}-installer.sh
if [ "$PLATFORM" = "linux" ]; then
- cp bazel-bin/scripts/packages/bazel-debian${FLAVOUR}.deb $1/bazel_${release_label}.deb
+ cp bazel-bin/scripts/packages/bazel-debian.deb $1/bazel_${release_label}.deb
fi
cp bazel-genfiles/scripts/packages/README.md $1/README.md
fi