diff --git a/kokoro/linux/dockerfile/test/java_stretch/Dockerfile b/kokoro/linux/dockerfile/test/java_stretch/Dockerfile new file mode 100644 index 0000000000..fc5e82abdb --- /dev/null +++ b/kokoro/linux/dockerfile/test/java_stretch/Dockerfile @@ -0,0 +1,31 @@ +FROM debian:stretch + +# Install dependencies. We start with the basic ones require to build protoc +# and the C++ build +RUN apt-get update && apt-get install -y \ + autoconf \ + autotools-dev \ + build-essential \ + bzip2 \ + ccache \ + curl \ + gcc \ + git \ + libc6 \ + libc6-dbg \ + libc6-dev \ + libgtest-dev \ + libtool \ + make \ + parallel \ + time \ + wget \ + && apt-get clean + +# Java dependencies +RUN apt-get install -y \ + # -- For all Java builds -- \ + maven \ + # -- For java_linkage_monitor \ + openjdk-8-jdk \ + && apt-get clean diff --git a/kokoro/linux/java_linkage_monitor/build.sh b/kokoro/linux/java_linkage_monitor/build.sh new file mode 100755 index 0000000000..c447453f60 --- /dev/null +++ b/kokoro/linux/java_linkage_monitor/build.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# +# This is the top-level script we give to Kokoro as the entry point for +# running the "pull request" project: +# +# This script selects a specific Dockerfile (for building a Docker image) and +# a script to run inside that image. Then we delegate to the general +# build_and_run_docker.sh script. + +# Change to repo root +cd $(dirname $0)/../../.. + +export DOCKERHUB_ORGANIZATION=protobuftesting +# The image of the Dockerfile sha1 is fetched from the organization +export DOCKERFILE_DIR=kokoro/linux/dockerfile/test/java_stretch +export DOCKER_RUN_SCRIPT=kokoro/linux/pull_request_in_docker.sh +export OUTPUT_DIR=testoutput +export TEST_SET="java_linkage_monitor" +./kokoro/linux/build_and_run_docker.sh diff --git a/kokoro/linux/java_linkage_monitor/continuous.cfg b/kokoro/linux/java_linkage_monitor/continuous.cfg new file mode 100644 index 0000000000..d0486cce41 --- /dev/null +++ b/kokoro/linux/java_linkage_monitor/continuous.cfg @@ -0,0 +1,11 @@ +# Config file for running tests in Kokoro + +# Location of the build script in repository +build_file: "protobuf/kokoro/linux/java_linkage_monitor/build.sh" +timeout_mins: 120 + +action { + define_artifacts { + regex: "**/sponge_log.xml" + } +} diff --git a/kokoro/linux/java_linkage_monitor/presubmit.cfg b/kokoro/linux/java_linkage_monitor/presubmit.cfg new file mode 100644 index 0000000000..c02a52f0fa --- /dev/null +++ b/kokoro/linux/java_linkage_monitor/presubmit.cfg @@ -0,0 +1,12 @@ +# Config file for running Linkage Monitor in Kokoro +# https://github.com/GoogleCloudPlatform/cloud-opensource-java/tree/master/linkage-monitor + +# Location of the build script in repository +build_file: "protobuf/kokoro/linux/java_linkage_monitor/build.sh" +timeout_mins: 120 + +action { + define_artifacts { + regex: "**/sponge_log.xml" + } +} diff --git a/tests.sh b/tests.sh index 2ea5f6c4a8..00002b5849 100755 --- a/tests.sh +++ b/tests.sh @@ -168,6 +168,10 @@ build_golang() { use_java() { version=$1 case "$version" in + jdk8) + export PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin:$PATH + export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 + ;; jdk7) export PATH=/usr/lib/jvm/java-7-openjdk-amd64/bin:$PATH export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 @@ -226,6 +230,10 @@ build_java_compatibility() { cd java/compatibility_tests/v2.5.0 ./test.sh 3.0.0-beta-4 } +build_java_linkage_monitor() { + use_java jdk8 + # TODO(#6303): Call Linkage Monitor +} build_objectivec_ios() { # Reused the build script that takes care of configuring and ensuring things @@ -712,6 +720,7 @@ Usage: $0 { cpp | java_jdk7 | java_oracle7 | java_compatibility | + java_linkage_monitor | objectivec_ios | objectivec_ios_debug | objectivec_ios_release |