aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Monteith <stuart.monteith@linaro.org>2017-11-02 11:00:29 +0000
committerStuart Monteith <stuart.monteith@linaro.org>2017-11-07 11:10:36 +0000
commit3bc3d18f6e8818f2d34c79e57efda98422f5b6ca (patch)
tree0a2aee928ac02d651e252f254725dbd25d784728
parent117c1bb250bb9eff295003ce60cfba72386c867b (diff)
downloadconfigs-3bc3d18f6e8818f2d34c79e57efda98422f5b6ca.tar.gz
jdk: Create OpenJDK JDK build projects.
Creates jdkX builds. These track the jdk/hs branch rather than jdk10/hs. These will be the development tree for every version of OpenJDK from now on. Change-Id: I6e2d93e7a830b22386e563dfcebf790e37f1d960
-rw-r--r--jdk10-update-src-tree.yaml3
-rw-r--r--jdkX-build-and-test.yaml120
-rw-r--r--jdkX-build-image.yaml136
-rw-r--r--jdkX-build-release.yaml153
-rw-r--r--jdkX-email-results.yaml37
-rw-r--r--jdkX-generate-email-report.yaml74
-rw-r--r--jdkX-jcstress-test-persist-results.yaml97
-rw-r--r--jdkX-jcstress-test-publish-results.yaml54
-rw-r--r--jdkX-jcstress-test.yaml112
-rw-r--r--jdkX-jtreg-test-persist-results.yaml120
-rw-r--r--jdkX-jtreg-test-publish-results.yaml71
-rw-r--r--jdkX-jtreg-test.yaml254
-rw-r--r--jdkX-persist-all-results.yaml51
-rw-r--r--jdkX-publish-all-results.yaml56
-rw-r--r--jdkX-publish-and-report.yaml63
-rw-r--r--jdkX-specjbb2015-benchmark-persist-results.yaml87
-rw-r--r--jdkX-specjbb2015-benchmark-publish-results.yaml59
-rw-r--r--jdkX-specjbb2015-benchmark.yaml127
-rw-r--r--jdkX-terasort-benchmark-persist-results.yaml85
-rw-r--r--jdkX-terasort-benchmark-publish-results.yaml67
-rw-r--r--jdkX-terasort-benchmark.yaml140
-rw-r--r--jdkX-update-src-tree-persist.yaml56
-rw-r--r--jdkX-update-src-tree.yaml92
23 files changed, 2113 insertions, 1 deletions
diff --git a/jdk10-update-src-tree.yaml b/jdk10-update-src-tree.yaml
index fbf9dc3e7..2a55f1fc0 100644
--- a/jdk10-update-src-tree.yaml
+++ b/jdk10-update-src-tree.yaml
@@ -33,7 +33,8 @@
scm:
- jdk10
triggers:
- - pollscm: 'H 2 */2 * *'
+# Disabled. Repo is not going to change.
+# - pollscm: 'H 2 */2 * *'
wrappers:
- timestamps
builders:
diff --git a/jdkX-build-and-test.yaml b/jdkX-build-and-test.yaml
new file mode 100644
index 000000000..5c8fae0d6
--- /dev/null
+++ b/jdkX-build-and-test.yaml
@@ -0,0 +1,120 @@
+- job:
+ name: jdkX-build-and-test
+ project-type: multijob
+ defaults: global
+ description: |
+ * This jobs builds the jdk images and runs tests and benchmarks against the built images.<br>
+ * <b>Note:</b> this job is usually triggered by a source change (ie. the "jdkX-update-src-tree" job).<br>
+ If it is run manually it will use the source tarball from the last successful build of that job.<br>
+ * If this jobs runs to completion the results are published to http://openjdk.linaro.org/.
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: YEAR
+ default: 'default'
+ - string:
+ name: DAY_OF_YEAR
+ default: 'default'
+ disabled: false
+ node: master
+ display-name: 'OpenJDK JDK - Build jdk images and run tests/benchmarks'
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ builders:
+ - multijob:
+ name: 'Build jdk images'
+ condition: SUCCESSFUL
+ projects:
+ - name: jdkX-build-image
+ current-parameters: true
+ kill-phase-on: FAILURE
+# FIXME - set SPECjbb2015 benchmark continuation condition from SUCCESSFUL to ALWAYS
+# Exception in thread "main" java.util.ServiceConfigurationError:
+# org.spec.jbb.core.comm.connectivity.ConnectivityProvider:
+# Provider org.spec.jbb.core.comm.connectivity.GrizzlyNioProvider could not be instantiated
+# Caused by: java.lang.IllegalStateException: java.lang.RuntimeException: java.lang.NullPointerException
+ - multijob:
+ name: 'SPECjbb2015 benchmark'
+ condition: ALWAYS
+ projects:
+ - name: jdkX-specjbb2015-benchmark
+ current-parameters: true
+ restrict-matrix-project: 'JVM_VARIANT == "server"'
+ kill-phase-on: FAILURE
+ - multijob:
+ name: '1GB Terasort benchmark'
+ condition: SUCCESSFUL
+ projects:
+ - name: jdkX-terasort-benchmark
+ current-parameters: true
+ kill-phase-on: NEVER
+ - multijob:
+ name: 'JTREG tests'
+ condition: SUCCESSFUL
+ projects:
+ - name: jdkX-jtreg-test
+ current-parameters: true
+ predefined-parameters: 'XJTREG_SUBCATEGORIES=tools/javap/typeAnnotations'
+ kill-phase-on: NEVER
+ - multijob:
+ name: 'jcstress'
+ condition: COMPLETED
+ projects:
+ - name: jdkX-jcstress-test
+ current-parameters: true
+ restrict-matrix-project: 'JVM_VARIANT == "server"'
+ kill-phase-on: FAILURE
+ - multijob:
+ name: 'Publish results to openjdk.linaro.org'
+ condition: SUCCESSFUL
+ projects:
+ - name: jdkX-publish-and-report
+ current-parameters: true
+ kill-phase-on: FAILURE
+ - copyartifact:
+ project: jdkX-update-src-tree
+ filter: 'out/*'
+ target: out
+ flatten: true
+ - copyartifact:
+ project: jdkX-build-image
+ filter: 'out/**/*'
+ target: out
+ flatten: true
+ - copyartifact:
+ project: jdkX-specjbb2015-benchmark
+ filter: 'out/**/*'
+ target: out
+ flatten: true
+ - copyartifact:
+ project: jdkX-terasort-benchmark
+ filter: 'out/**/*'
+ target: out
+ flatten: true
+ - copyartifact:
+ project: jdkX-jtreg-test
+ filter: 'out/**/*'
+ target: out
+ flatten: true
+ stable: true
+ - copyartifact:
+ project: jdkX-jcstress-test
+ filter: 'out/**/*'
+ target: out
+ flatten: true
+ publishers:
+ - archive:
+ artifacts: 'out/**/*'
diff --git a/jdkX-build-image.yaml b/jdkX-build-image.yaml
new file mode 100644
index 000000000..12530643b
--- /dev/null
+++ b/jdkX-build-image.yaml
@@ -0,0 +1,136 @@
+- job:
+ name: jdkX-build-image
+ project-type: matrix
+ defaults: global
+ description: |
+ * Configures and builds jdkX (ie, bin/java, bin/javac, et al) for various configurations.<br>
+ * The source tarball is copied from the jdkX-update-src-tree job.<br>
+ * <b>Note:</b> we are no longer building -fastdebug variants as there is not enough time to test the images.
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: JDK_URL
+ default: 'http://openjdk.linaro.org/releases/jdk9-server-release-1708.tar.xz'
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK JDK - Configure and build OpenJDK JDK'
+ axes:
+ - axis:
+ type: user-defined
+ name: JVM_VARIANT
+ values:
+ - server
+# - zero
+ - axis:
+ type: user-defined
+ name: BUILD_TYPE
+ values:
+ - release
+ - axis:
+ type: slave
+ name: label
+ values:
+ - aarch64-06
+ execution-strategy:
+ sequential: true
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ - matrix-tie-parent:
+ node: aarch64-06
+ builders:
+ - copyartifact:
+ project: jdkX-update-src-tree
+ filter: 'out/jdkX.tar.gz'
+ target: incoming
+ flatten: true
+# - copyartifact:
+# project: archive-primordial-jdkX
+# filter: 'out/primordial-jdkX.tar.gz'
+# target: incoming
+# flatten: true
+ - shell: |
+ #!/bin/bash
+
+ set -exu
+
+ #export CCACHE_DIR=~/.ccache-${JVM_VARIANT}-${BUILD_TYPE}
+ #ccache -M 1G
+ #ccache -s
+
+ ccache_build_opts=--disable-ccache
+
+ rm -rf jdk* primordial-jdk* build*
+
+ wget --progress=dot -e dotbytes=2M ${JDK_URL}
+ tar -Jxf jdk*.tar.xz
+
+ cd jdk*/lib/security/
+ rm -f cacerts
+ ln -s /etc/ssl/certs/java/cacerts
+
+ cd ${WORKSPACE}/jdk*
+ export JAVA_HOME=${PWD}
+
+ export PATH=${JAVA_HOME}/bin:${PATH}
+
+ cd ${WORKSPACE}
+
+ # Extract sources from upstream job
+ tar xf incoming/jdkX.tar.gz
+
+ shopt -s nullglob
+
+ # Extract boot jdk
+ # Not used. tar xf incoming/primordial-jdkX.tar.gz
+
+ # Configure and build
+ mkdir -p build-stage1 build-stage2
+
+ two_stage_build=0
+
+ which java
+ java -version
+
+ if [ $two_stage_build = 1 ]; then
+ pushd build-stage1
+ sh ../jdkX/configure --with-jvm-variants=${JVM_VARIANT} --with-debug-level=${BUILD_TYPE} --with-boot-jdk=${WORKSPACE}/primordial-jdkX ${ccache_build_opts}
+ make images build-test-hotspot-jtreg-native build-test-jdk-jtreg-native
+ popd
+
+ pushd build-stage2
+ sh ../jdkX/configure --with-jvm-variants=${JVM_VARIANT} --with-debug-level=${BUILD_TYPE} --with-boot-jdk=${WORKSPACE}/build-stage1/images/jdk ${ccache_build_opts}
+ make images build-test-hotspot-jtreg-native build-test-jdk-jtreg-native
+ popd
+ else
+ pushd build-stage2
+ sh ../jdkX/configure --with-jvm-variants=${JVM_VARIANT} --with-debug-level=${BUILD_TYPE} ${ccache_build_opts}
+ make images build-test-hotspot-jtreg-native build-test-jdk-jtreg-native
+ popd
+ fi
+
+ # Archive the result
+ rm -rf out
+ mkdir out
+ artifact_name=jdkX-${JVM_VARIANT}-${BUILD_TYPE}
+ tar -C build-stage2/images/jdk --exclude=\*.diz --transform="s!^./!$artifact_name/!" -acf out/${artifact_name}.tar.gz .
+
+ # Archive test support files.
+ tar -C build-stage2/ --exclude=hotspot/jtreg/native/support/\* --transform="s!^support/!${artifact_name}-support/support/!" -acf out/${artifact_name}-support.tar.gz support/test
+ publishers:
+ - archive:
+ artifacts: 'out/*.tar.gz'
+ - email:
+ recipients: 'stuart.monteith@linaro.org fathi.boudra@linaro.org'
diff --git a/jdkX-build-release.yaml b/jdkX-build-release.yaml
new file mode 100644
index 000000000..383e997ef
--- /dev/null
+++ b/jdkX-build-release.yaml
@@ -0,0 +1,153 @@
+- job:
+ name: jdkX-build-release
+ project-type: matrix
+ defaults: global
+ description: |
+ * Configures and builds jdkX for release. Run after the source has passed tests.
+ * Tags build with Linaro-YYMM as per normal release procedure.
+ * The source tarball is copied from the jdkX-update-src-tree job.<br>
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: JDK_URL
+ default: 'http://openjdk.linaro.org/releases/jdk9-server-release-1708.tar.xz'
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK JDK - Configure and build OpenJDK JDK Release'
+ axes:
+ - axis:
+ type: user-defined
+ name: JVM_VARIANT
+ values:
+ - server
+ - axis:
+ type: user-defined
+ name: BUILD_TYPE
+ values:
+ - release
+ - axis:
+ type: slave
+ name: label
+ values:
+ - aarch64-06
+ execution-strategy:
+ sequential: true
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ - matrix-tie-parent:
+ node: aarch64-06
+ builders:
+ - copyartifact:
+ project: jdkX-update-src-tree
+ filter: 'out/jdkX.tar.gz'
+ target: incoming
+ flatten: true
+# - copyartifact:
+# project: archive-primordial-jdkX
+# filter: 'out/primordial-jdkX.tar.gz'
+# target: incoming
+# flatten: true
+ - shell: |
+ #!/bin/bash
+
+ set -exu
+
+ #export CCACHE_DIR=~/.ccache-${JVM_VARIANT}-${BUILD_TYPE}
+ #ccache -M 1G
+ #ccache -s
+ export JVM_VARIANT=server
+
+ # Generate files names dependent on year/month.
+ RELEASE=$(date +%y%m)
+ JDKDIR=jdkX-${JVM_VARIANT}-${BUILD_TYPE}-${RELEASE}
+ JDK_SRCDIR=jdkX-src-${RELEASE}
+
+ ccache_build_opts=--disable-ccache
+
+ rm -rf jdk* primordial-jdk* build*
+
+ # Download, setup JDK9 for building.
+ wget --progress=dot -e dotbytes=2M ${JDK_URL}
+ tar -Jxf jdk*.tar.xz
+
+ cd jdk*/lib/security/
+ rm -f cacerts
+ ln -s /etc/ssl/certs/java/cacerts
+
+ cd ${WORKSPACE}/jdk*
+ export JAVA_HOME=${PWD}
+
+ export PATH=${JAVA_HOME}/bin:${PATH}
+
+ cd ${WORKSPACE}
+
+ # Setup archive directory
+ mkdir out
+
+ # Extract sources from upstream job
+ tar xaf incoming/jdkX.tar.gz
+
+ mv jdkX $JDK_SRCDIR
+ # Tar up the source before sullying it with a build.
+ tar --exclude=.hg\* -acf out/jdkX-src-${RELEASE}.tar.xz $JDK_SRCDIR
+
+ mv $JDK_SRCDIR $JDKDIR
+ shopt -s nullglob
+
+ # Configure and build
+ mkdir -p build-stage1 build-stage2
+
+ two_stage_build=0
+
+ which java
+ java -version
+
+ if [ $two_stage_build = 1 ]; then
+ pushd build-stage1
+ sh ../$JDKDIR/configure --with-jvm-variants=${JVM_VARIANT} --with-debug-level=${BUILD_TYPE} --with-boot-jdk=${WORKSPACE}/primordial-jdkX ${ccache_build_opts}
+ make images
+ popd
+
+ pushd build-stage2
+ sh ../$JDKDIR/configure --with-jvm-variants=${JVM_VARIANT} \
+ --with-debug-level=${BUILD_TYPE} \
+ --with-boot-jdk=${WORKSPACE}/build-stage1/images/jdk \
+ ${ccache_build_opts} \
+ --with-version-opt="Linaro-$RELEASE" \
+ --with-version-pre="release"
+ make images
+ popd
+ else
+ pushd build-stage2
+ sh ../$JDKDIR/configure --with-jvm-variants=${JVM_VARIANT} \
+ --with-debug-level=${BUILD_TYPE} \
+ ${ccache_build_opts} \
+ --with-version-opt="Linaro-$RELEASE" \
+ --with-version-pre="release"
+ make images
+ popd
+ fi
+
+ # Archive the result
+ artifact_name=jdkX-${JVM_VARIANT}-${BUILD_TYPE}-${RELEASE}
+
+ # This is different from ordinary builds.
+ tar -C build-stage2/images --exclude=\*.diz --transform="s!^jdk!$artifact_name!" -acf out/${artifact_name}.tar.xz jdk
+ publishers:
+ - archive:
+ artifacts: 'out/*.tar.xz'
+ - email:
+ recipients: 'stuart.monteith@linaro.org fathi.boudra@linaro.org'
diff --git a/jdkX-email-results.yaml b/jdkX-email-results.yaml
new file mode 100644
index 000000000..6a75b047a
--- /dev/null
+++ b/jdkX-email-results.yaml
@@ -0,0 +1,37 @@
+- job:
+ name: jdkX-email-results
+ project-type: freestyle
+ defaults: global
+ description: |
+ * Sends the report.txt file to the aarch64-port-dev mailing list.<br>
+ * The text report is copied from the jdkX-generate-text-report job.
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ disabled: false
+ node: master
+ display-name: 'OpenJDK JDK - Send e-mail report'
+
+ wrappers:
+ - timestamps
+ builders:
+ - copyartifact:
+ project: jdkX-generate-email-report
+ filter: 'report.txt'
+ publishers:
+ - email-ext:
+ recipients: 'stuart.monteith@linaro.org, fathi.boudra@linaro.org, aarch64-port-dev@openjdk.java.net'
+ subject: 'JTREG, JCStress, SPECjbb2015 and Hadoop/Terasort results for OpenJDK X on AArch64'
+ content-type: text
+ body: |
+ ${FILE,path="report.txt"}
+ success: true
diff --git a/jdkX-generate-email-report.yaml b/jdkX-generate-email-report.yaml
new file mode 100644
index 000000000..c76e10b36
--- /dev/null
+++ b/jdkX-generate-email-report.yaml
@@ -0,0 +1,74 @@
+- job:
+ name: jdkX-generate-email-report
+ project-type: freestyle
+ defaults: global
+ description: |
+ This job aggregates the results from various jobs:<br>
+ <br>
+ * jcstress<br>
+ * jtreg<br>
+ * terasort<br>
+ * specjbb<br>
+ <br>
+ in text form suitable for the aarch64-port-dev mailing list.
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: ZERO_BASELINE
+ default: '14115'
+ - string:
+ name: SERVER_MAX_JOPS_BASELINE
+ default: '4090'
+ - string:
+ name: SERVER_CRITICAL_JOPS_BASELINE
+ default: '1015'
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK JDK - Generate e-mail report'
+ wrappers:
+ - timestamps
+# Replaced by parameters
+# - inject:
+# properties-file: '${HOME}/performance-baseline.properties'
+ builders:
+ - copyartifact:
+ project: jtreg-build
+ filter: 'jtreg-build-4.2.0-SNAPSHOT.tar.xz'
+ target: incoming
+ flatten: true
+ - shell: |
+ #!/bin/bash
+
+ tar xf incoming/jtreg-build-4.2.0-SNAPSHOT.tar.xz
+ PATH=${WORKSPACE}/jtreg/bin:${PATH}
+ PERSIST=$HOME/srv/openjdkX
+ export SPECJBB_PRODUCT_HOME=$PERSIST/SPECjbb2015
+ export JDK_VERSION=X
+ which jtdiff
+
+ TOP_DIR=${PERSIST}/openjdk-jtreg-nightly-tests ${PERSIST}/openjdk-test-scripts/openjdk-test-summary release > ${WORKSPACE}/report.txt
+ echo "" >> ${WORKSPACE}/report.txt
+
+ TOP_DIR=${PERSIST} ${PERSIST}/specjbb-test-scripts/specjbb-report >> ${WORKSPACE}/report.txt
+ echo "" >> ${WORKSPACE}/report.txt
+
+ BENCHMARK_RESULTS_DIR=$PERSIST/hadoop-terasort-benchmark-results ${PERSIST}/hadoop-test-scripts/benchmark-terasort-report >> ${WORKSPACE}/report.txt
+ echo "" >> ${WORKSPACE}/report.txt
+
+ TOP_DIR=${PERSIST} ${PERSIST}/jcstress-test-scripts/jcstress-report --url http://openjdk.linaro.org/jdk${JDK_VERSION}/ >> ${WORKSPACE}/report.txt
+ publishers:
+ - archive:
+ artifacts: 'report.txt'
+ - email:
+ recipients: 'fathi.boudra@linaro.org'
diff --git a/jdkX-jcstress-test-persist-results.yaml b/jdkX-jcstress-test-persist-results.yaml
new file mode 100644
index 000000000..27260f0b2
--- /dev/null
+++ b/jdkX-jcstress-test-persist-results.yaml
@@ -0,0 +1,97 @@
+- job:
+ name: jdkX-jcstress-test-persist-results
+ project-type: matrix
+ defaults: global
+ description: |
+ * Writes results to:<br>
+ * /work/openjdk-testing/jcstress-nightly-runs<br>
+ * /work/openjdk-testing/jcstress-results
+ properties:
+ - authorization:
+ linaro:
+ - job-read
+ openjdk-members:
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: YEAR
+ default: 'default'
+ - string:
+ name: DAY_OF_YEAR
+ default: 'default'
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK JDK - Write jcstress tests results'
+ axes:
+ - axis:
+ type: user-defined
+ name: JVM_VARIANT
+ values:
+ - server
+# - client
+ - axis:
+ type: user-defined
+ name: BUILD_TYPE
+ values:
+ - release
+ - axis:
+ type: slave
+ name: label
+ values:
+ - aarch64-06
+ execution-strategy:
+# combination-filter: |
+# JVM_VARIANT=="server"
+ sequential: true
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ - matrix-tie-parent:
+ node: aarch64-06
+ builders:
+ - copyartifact:
+ project: jdkX-update-src-tree
+ filter: 'out/build-date.sh'
+ target: incoming
+ flatten: true
+ - copyartifact:
+ project: jdkX-jcstress-test
+ filter: 'out/jcstress-results-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz'
+ target: incoming
+ flatten: true
+ - shell: |
+ #!/bin/bash
+
+ set -exu
+
+ PERSIST=$HOME/srv/openjdkX
+
+ : ${YEAR:=$(date +%Y)}
+ : ${DAY_OF_YEAR:=$(date +%j)}
+
+ JCSTRESS_RUN_DIR=$PERSIST/jcstress-nightly-runs
+ JCSTRESS_RESULTS_DIR=$PERSIST/jcstress-results
+ RESULTS_CSV=${JCSTRESS_RESULTS_DIR}/results.csv
+
+ mkdir -p $JCSTRESS_RESULTS_DIR
+
+ # Tolerate missing results.csv file.
+ if [ ! -f $RESULTS_CSV ]; then
+ touch $RESULTS_CSV
+ fi
+
+ mkdir -p ${JCSTRESS_RESULTS_DIR} ${JCSTRESS_RUN_DIR}/${YEAR}/${DAY_OF_YEAR}
+ tar -C ${JCSTRESS_RUN_DIR}/${YEAR}/${DAY_OF_YEAR} --strip-components=1 -xzf incoming/BUILD_TYPE=${BUILD_TYPE},JVM_VARIANT=${JVM_VARIANT},label=${label}/jcstress-results-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz
+ numeric_date=$(date +'%s' --date=$(date +'%Y-%m-%d'))
+ echo "Previous Results"
+ cat ${RESULTS_CSV}
+ echo "${numeric_date},${JCSTRESS_RUN_DIR}/${YEAR}/${DAY_OF_YEAR},success" >> ${RESULTS_CSV}
+ sort --unique --field-separator=',' --numeric-sort -o ${RESULTS_CSV} ${RESULTS_CSV}
+
diff --git a/jdkX-jcstress-test-publish-results.yaml b/jdkX-jcstress-test-publish-results.yaml
new file mode 100644
index 000000000..21cb3c010
--- /dev/null
+++ b/jdkX-jcstress-test-publish-results.yaml
@@ -0,0 +1,54 @@
+- job:
+ name: jdkX-jcstress-test-publish-results
+ project-type: freestyle
+ defaults: global
+ description: |
+ * Reports are published to http://openjdk.linaro.org/jcstress-nightly-runs/
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: PUBLISH_DEST
+ default: ''
+ - string:
+ name: PUBLISH_HOST
+ default: ''
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Publish jcstress report'
+ wrappers:
+ - timestamps
+ - ssh-agent-credentials:
+ # openjdk-testing user id
+ users:
+ - '744cffb4-9ce1-4856-b103-9fdda06dad36'
+ builders:
+ - shell: |
+ #!/bin/bash
+
+
+ PERSIST=$HOME/srv/openjdkX
+ SCRIPT_DIR=$PERSIST/jcstress-test-scripts
+ export JDK_VERSION=X
+
+ if [ -d $SCRIPT_DIR ]; then
+ (cd $SCRIPT_DIR; git pull)
+ else
+ git clone https://git.linaro.org/leg/openjdk/jcstress-test-scripts.git $SCRIPT_DIR
+ fi
+ export TOP_DIR=$PERSIST
+
+ $SCRIPT_DIR/jcstress-publish $PUBLISH_DEST
+ publishers:
+ - email:
+ recipients: 'fathi.boudra@linaro.org'
diff --git a/jdkX-jcstress-test.yaml b/jdkX-jcstress-test.yaml
new file mode 100644
index 000000000..1035e8739
--- /dev/null
+++ b/jdkX-jcstress-test.yaml
@@ -0,0 +1,112 @@
+- job:
+ name: jdkX-jcstress-test
+ project-type: matrix
+ defaults: global
+ description: |
+ This job runs the http://openjdk.java.net/projects/code-tools/jcstress/ tests.<br>
+ <b>Note:</b> this test currently takes around <b>10 hours</b> to complete<br>
+ This project currently runs the "server" variant only due to the amount of time both tests would take to complete.
+ properties:
+ - authorization:
+ linaro:
+ - job-read
+ openjdk-members:
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Run jcstress tests'
+ parameters:
+ - string:
+ name: JCSTRESS_MODE
+ default: 'quick'
+ axes:
+ - axis:
+ type: user-defined
+ name: JVM_VARIANT
+ values:
+ - server
+ - client
+ - axis:
+ type: user-defined
+ name: BUILD_TYPE
+ values:
+ - release
+ - axis:
+ type: slave
+ name: label
+ values:
+ - aarch64-06
+ execution-strategy:
+ sequential: true
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ - matrix-tie-parent:
+ node: aarch64-06
+ - timeout:
+ timeout: 900
+ builders:
+ - copyartifact:
+ project: jcstress-build
+ filter: 'tests-custom/target/jcstress.jar, tests-all/target/jcstress.jar'
+ target: incoming
+ flatten: false
+# copyartifact is slow and the file is local
+# copy instead of going back and forth between master <-> slave
+# - copyartifact:
+# project: jdkX-build-image
+# filter: 'out/jdkX-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz'
+# target: incoming
+# flatten: true
+ - shell: |
+ #!/bin/bash
+
+ set -eu
+
+ TEST_TYPE=all
+
+ # client variant uses server with -XX:TieredStopAtLevel=1
+ # zero is a third possible value.
+ REAL_VARIANT=${JVM_VARIANT/client/server}
+
+ JCSTRESS_JAR=${WORKSPACE}/incoming/tests-${TEST_TYPE}/target/jcstress.jar
+ rm -rf jdkX*
+ tar xf ~/workspace/jdkX-build-image/BUILD_TYPE/${BUILD_TYPE}/JVM_VARIANT/${REAL_VARIANT}/label/${NODE_NAME}/out/jdkX-${REAL_VARIANT}-${BUILD_TYPE}.tar.gz
+ export JAVA_HOME=${WORKSPACE}/jdkX-${REAL_VARIANT}-${BUILD_TYPE}
+ export PATH=${JAVA_HOME}/bin:${PATH}
+ which java
+ java -version
+
+ # XXX Don't fail the job if jcstress itself fails.
+ set +e
+ java -jar ${JCSTRESS_JAR} -m ${JCSTRESS_MODE}
+
+ test_result=$?
+ set -e
+
+ rm -rf out
+ mkdir out
+
+ out_dirname=jcstress-results-${JVM_VARIANT}-${BUILD_TYPE}
+
+ rm -rf ${out_dirname}
+ mkdir -p ${out_dirname}
+ cp jcstress-results*.bin.gz ${out_dirname}
+ cp -a results ${out_dirname}
+
+ tar czvf out/${out_dirname}.tar.gz ${out_dirname}
+ publishers:
+ - archive:
+ artifacts: 'out/jcstress-results-*.tar.gz'
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'results'
+ files: 'index.html'
+ keep-all: true
diff --git a/jdkX-jtreg-test-persist-results.yaml b/jdkX-jtreg-test-persist-results.yaml
new file mode 100644
index 000000000..90e3819a4
--- /dev/null
+++ b/jdkX-jtreg-test-persist-results.yaml
@@ -0,0 +1,120 @@
+- job:
+ name: jdkX-jtreg-test-persist-results
+ project-type: matrix
+ defaults: global
+ description: |
+ * Writes the results to $HOME/srv/openjdkX/openjdk-jtreg-nightly-tests.
+ properties:
+ - authorization:
+ linaro:
+ - job-read
+ openjdk-members:
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - job-workspace
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: YEAR
+ default: 'default'
+ - string:
+ name: DAY_OF_YEAR
+ default: 'default'
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Write jtreg tests results'
+ axes:
+ - axis:
+ type: user-defined
+ name: JVM_VARIANT
+ values:
+ - server
+ - client
+ - axis:
+ type: user-defined
+ name: BUILD_TYPE
+ values:
+ - release
+ - axis:
+ type: user-defined
+ name: JTREG_CATEGORY
+ values:
+ - jdk
+ - hotspot
+ - langtools
+ - axis:
+ type: slave
+ name: label
+ values:
+ - aarch64-06
+ execution-strategy:
+ sequential: true
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ - matrix-tie-parent:
+ node: aarch64-06
+ builders:
+ - copyartifact:
+ project: jdkX-jtreg-test
+ filter: 'out/jtreg-results-${JTREG_CATEGORY}-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz'
+ target: incoming
+ flatten: true
+ - copyartifact:
+ project: jdkX-build-image
+ filter: 'out/jdkX-server-${BUILD_TYPE}.tar.gz'
+ target: incoming
+ flatten: true
+ - shell: |
+ #!/bin/bash
+
+ set -exu
+
+ tree -f .
+
+ PERSIST=$HOME/srv/openjdkX
+ export JDK_VERSION=X
+
+ result_tarball=${WORKSPACE}/incoming/BUILD_TYPE=${BUILD_TYPE},JTREG_CATEGORY=${JTREG_CATEGORY},JVM_VARIANT=${JVM_VARIANT},label=${label}/jtreg-results-${JTREG_CATEGORY}-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz
+
+ image_tarball=${WORKSPACE}/incoming/BUILD_TYPE=${BUILD_TYPE},JVM_VARIANT=server,label=${label}/jdkX-server-${BUILD_TYPE}.tar.gz
+
+ : ${YEAR:=$(date +%Y)}
+ : ${DAY_OF_YEAR:=$(date +%j)}
+
+ basedir=$PERSIST/openjdk-jtreg-nightly-tests
+ src_dir=${basedir}/src/${YEAR}/${DAY_OF_YEAR}
+ work_dir=${basedir}/builds/${JVM_VARIANT}-${BUILD_TYPE}/${YEAR}/${DAY_OF_YEAR}/JTwork-${JTREG_CATEGORY}
+ report_dir=${basedir}/reports/${JVM_VARIANT}-${BUILD_TYPE}/${JTREG_CATEGORY}/$(uname -m)/${YEAR}/${DAY_OF_YEAR}/JTreport
+ image_dir=${basedir}/builds/${JVM_VARIANT}-${BUILD_TYPE},label=${label}/${YEAR}/${DAY_OF_YEAR}/images/jdk
+
+ rm -rf ${image_dir}
+ mkdir -p ${image_dir}
+
+ tar -C ${basedir} \
+ --transform="s/YYY__DAY_OF_YEAR__YYY/$DAY_OF_YEAR/;s/XXX__YEAR__XXX/$YEAR/" \
+ --show-transformed-names \
+ --overwrite \
+ -xvf ${result_tarball}
+
+ tar -C ${image_dir} \
+ --strip-components=1 \
+ --show-transformed-names \
+ --overwrite \
+ -xvf ${image_tarball}
+
+ # Change location.
+ # Match the exact output of the cron-based scripts.
+ sed_expr1=$(echo s!XXX__YEAR__XXX!$YEAR!g)
+ sed_expr2=$(echo s!YYY__DAY_OF_YEAR__YYY!$DAY_OF_YEAR!g)
+
+ find ${work_dir} -type f -exec perl -p -i -e "$sed_expr1" {} \;
+ find ${work_dir} -type f -exec perl -p -i -e "$sed_expr2" {} \;
+
+ find ${report_dir} -type f -exec perl -p -i -e "$sed_expr1" {} \;
+ find ${report_dir} -type f -exec perl -p -i -e "$sed_expr2" {} \;
diff --git a/jdkX-jtreg-test-publish-results.yaml b/jdkX-jtreg-test-publish-results.yaml
new file mode 100644
index 000000000..204d5c928
--- /dev/null
+++ b/jdkX-jtreg-test-publish-results.yaml
@@ -0,0 +1,71 @@
+- job:
+ name: jdkX-jtreg-test-publish-results
+ project-type: freestyle
+ defaults: global
+ description: |
+ * Results are published to http://openjdk.linaro.org/jdkX/openjdk-jtreg-nightly-tests/
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: PUBLISH_DEST
+ default: ''
+ - string:
+ name: PUBLISH_HOST
+ default: ''
+ - string:
+ name: YEAR
+ default: 'default'
+ - string:
+ name: DAY_OF_YEAR
+ default: 'default'
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Publish jtreg results'
+ wrappers:
+ - timestamps
+ - ssh-agent-credentials:
+ users:
+ - '744cffb4-9ce1-4856-b103-9fdda06dad36'
+ builders:
+ - copyartifact:
+ project: jtreg-build
+ filter: 'jtreg-build-4.2.0-SNAPSHOT.tar.xz'
+ flatten: true
+ - shell: |
+ #!/bin/bash
+
+ set -ex
+
+ PERSIST=$HOME/srv/openjdkX
+ SCRIPT_DIR=$PERSIST/openjdk-test-scripts
+ export JDK_VERSION=X
+
+ (unset PRIVATE_KEY; env | sort >$WORKSPACE/env.out)
+ tree -fd -L 5 $PERSIST | xz >$WORKSPACE/tree.out.xz
+
+ if [ -d $SCRIPT_DIR ]; then
+ (cd $SCRIPT_DIR; git pull)
+ else
+ git clone https://git.linaro.org/leg/openjdk/openjdk-test-scripts.git $SCRIPT_DIR
+ fi
+
+ tar xf jtreg-build-4.2.0-SNAPSHOT.tar.xz
+ export PATH=${WORKSPACE}/jtreg/bin:$PATH
+ which jtdiff
+ TOP_DIR=$PERSIST/openjdk-jtreg-nightly-tests bash -x $SCRIPT_DIR/publish $PUBLISH_DEST $NODE_NAME
+ publishers:
+ - archive:
+ artifacts: 'tree.out.xz, env.out'
+ - email:
+ recipients: 'fathi.boudra@linaro.org stuart.monteith@linaro.org'
diff --git a/jdkX-jtreg-test.yaml b/jdkX-jtreg-test.yaml
new file mode 100644
index 000000000..7bc8eead6
--- /dev/null
+++ b/jdkX-jtreg-test.yaml
@@ -0,0 +1,254 @@
+- job:
+ name: jdkX-jtreg-test
+ project-type: matrix
+ defaults: global
+ description: |
+ * Runs the jtreg tests.
+ properties:
+ - authorization:
+ linaro:
+ - job-read
+ openjdk-members:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: YEAR
+ default: 'default'
+ - string:
+ name: DAY_OF_YEAR
+ default: 'default'
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Run jtreg tests'
+ axes:
+ - axis:
+ type: user-defined
+ name: JVM_VARIANT
+ values:
+ - server
+ - client
+ - axis:
+ type: user-defined
+ name: BUILD_TYPE
+ values:
+ - release
+ - axis:
+ type: user-defined
+ name: JTREG_CATEGORY
+ values:
+ - hotspot
+ - langtools
+ - jdk
+ - axis:
+ type: slave
+ name: label
+ values:
+ - aarch64-06
+ execution-strategy:
+ sequential: true
+ wrappers:
+ - xvfb:
+ auto-display-name: true
+ additional-options: '-p unix'
+ debug: true
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ - matrix-tie-parent:
+ node: aarch64-06
+ builders:
+ - copyartifact:
+ project: jtreg-build
+ filter: 'jtreg-build-4.2.0-SNAPSHOT.tar.xz'
+ target: incoming
+ flatten: true
+# copyartifact is slow and the file is local
+# copy instead of going back and forth between master <-> slave
+# - copyartifact:
+# project: jdkX-build-image
+# filter: 'out/jdkX-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz'
+# target: incoming
+# flatten: true
+ - copyartifact:
+ project: jdkX-update-src-tree
+ filter: 'out/jdkX.tar.gz, out/build-date.sh'
+ target: incoming
+ flatten: true
+ - copyartifact:
+ project: jcstress-build
+ filter: 'tests-all/target/jcstress.jar'
+ target: incoming
+ flatten: true
+ - shell: |
+ #!/bin/bash
+
+ echo "DISPLAY=${DISPLAY}"
+
+ set -exu
+
+ source incoming/build-date.sh
+
+ export JDK_VERSION=X
+ # client variant uses server with -XX:TieredStopAtLevel=1
+ # zero is a third possible value.
+ REAL_VARIANT=${JVM_VARIANT/client/server}
+ IMAGE_DIR=${WORKSPACE}/jdkX-${REAL_VARIANT}-${BUILD_TYPE}
+ PERSIST=$HOME/srv/openjdkX
+
+ JCSTRESS=$PWD/incoming/jcstress.jar
+
+ # Only set =1 for debugging.
+ use_subcategories=0
+
+ if [ ${use_subcategories} -eq 1 ]; then
+ case ${JTREG_CATEGORY} in
+ langtools)
+ JTREG_SUBCATEGORIES=tools/javap/typeAnnotations
+ ;;
+ jdk)
+ JTREG_SUBCATEGORIES=jdk/net/Sockets
+ ;;
+ hotspot)
+ JTREG_SUBCATEGORIES=runtime/CommandLine
+ ;;
+ esac
+ fi
+
+ : ${JTREG_SUBCATEGORIES:=.}
+
+ tar xf incoming/jdkX.tar.gz
+ tar xf ~/workspace/jdkX-build-image/BUILD_TYPE/${BUILD_TYPE}/JVM_VARIANT/${REAL_VARIANT}/label/${NODE_NAME}/out/jdkX-${REAL_VARIANT}-${BUILD_TYPE}.tar.gz
+ tar xf incoming/jtreg-build-4.2.0-SNAPSHOT.tar.xz
+ tar xf ~/workspace/jdkX-build-image/BUILD_TYPE/${BUILD_TYPE}/JVM_VARIANT/${REAL_VARIANT}/label/${NODE_NAME}/out/jdkX-${REAL_VARIANT}-${BUILD_TYPE}-support.tar.gz
+
+ # All the output directories and general frobbing
+ # output is to match the existing layout as expected
+ # by the cron-based publish and reporting scripts.
+ # XXX There's probably a better way.
+
+ YEAR=XXX__YEAR__XXX
+ DAY_OF_YEAR=YYY__DAY_OF_YEAR__YYY
+
+ basedir=cron_output
+ mkdir -p ${basedir}/{src,builds,reports}
+
+ src_dir=${basedir}/src/${YEAR}/${DAY_OF_YEAR}
+ work_dir=${basedir}/builds/${JVM_VARIANT}-${BUILD_TYPE}/${YEAR}/${DAY_OF_YEAR}/JTwork-${JTREG_CATEGORY}
+ report_dir=${basedir}/reports/${JVM_VARIANT}-${BUILD_TYPE}/${JTREG_CATEGORY}/$(uname -m)/${YEAR}/${DAY_OF_YEAR}/JTreport
+
+ mkdir -p out ${src_dir} ${work_dir} ${report_dir}
+
+ mv jdkX/* ${src_dir}
+
+ # Move the applications tests to exclude them from execution.
+ # JCStress adds days to the execution time.
+ mv ${src_dir}/test/hotspot/jtreg/applications ${src_dir}
+
+ blacklist=${WORKSPACE}/excludes.txt
+ jdk_problem_list=${src_dir}/${JTREG_CATEGORY}/test/ProblemList.txt
+
+ if [ -e $jdk_problem_list ]; then
+ cat $jdk_problem_list > ${blacklist}
+ fi
+
+ aarch64_exclude_file=${src_dir}/test/exclude_aarch64.txt
+
+ if [ -e ${aarch64_exclude_file} ]; then
+ cat ${aarch64_exclude_file} >> ${blacklist}
+ fi
+
+ touch ${blacklist}
+
+ echo "Blacklist"
+ echo "========="
+ cat ${blacklist}
+ echo "---------"
+
+ export JAVA_HOME=${WORKSPACE}/jdkX-${REAL_VARIANT}-${BUILD_TYPE}
+ export PATH=$JAVA_HOME/bin:${PATH}
+
+ # For hotspot and jdk we pass a -nativepath: option to jtreg.
+ # This enables the tests needing native libraries to run.
+ NATIVEPATH=${WORKSPACE}/jdkX-${REAL_VARIANT}-${BUILD_TYPE}-support/support/test/${JTREG_CATEGORY}/jtreg/native/lib
+
+ if [ $JTREG_CATEGORY = "langtools" ]; then
+ # The nativepath option we pass must be a valid directory, or
+ # not at all.`
+ NATIVE_OPT=
+ else
+ # Test executables are expected to be in same directory as libraries
+ mv $NATIVEPATH/../bin/* $NATIVEPATH
+ NATIVE_OPT=-nativepath:$NATIVEPATH
+ fi
+
+ PATH=${WORKSPACE}/jtreg/bin:${PATH}
+ which java
+ java -version
+
+ # Ignore error in jtreg final result.
+ set +e
+
+ # hotspot splits its tests into gtest jtreg tests. We just do jtreg.
+ if [ $JTREG_CATEGORY == "hotspot" ]; then
+ TEST_SUBDIR=${JTREG_CATEGORY}/jtreg
+ else
+ TEST_SUBDIR=${JTREG_CATEGORY}
+ fi
+
+ if [ $JVM_VARIANT = "server" ]; then
+ java -jar jtreg/lib/jtreg.jar \
+ -dir:${src_dir}/test/${TEST_SUBDIR} \
+ -vmoption:-Djdk.test.lib.artifacts.jcstress-tests-all=$JCSTRESS \
+ -vmoption:-XX:-TieredCompilation \
+ -testjdk:${IMAGE_DIR} \
+ -exclude:${blacklist} \
+ -conc:auto \
+ -r:${report_dir} \
+ -w:${work_dir} \
+ $NATIVE_OPT \
+ -timeout:8 \
+ -a -agentvm -ignore:quiet -v1 ${JTREG_SUBCATEGORIES} | cat -n
+ else
+ java -jar jtreg/lib/jtreg.jar \
+ -dir:${src_dir}/test/${TEST_SUBDIR} \
+ -vmoption:-Djdk.test.lib.artifacts.jcstress-tests-all=$JCSTRESS \
+ -vmoption:-XX:+TieredCompilation \
+ -vmoption:-XX:TieredStopAtLevel=1 \
+ -testjdk:${IMAGE_DIR} \
+ -exclude:${blacklist} \
+ -conc:auto \
+ -r:${report_dir} \
+ -w:${work_dir} \
+ $NATIVE_OPT \
+ -timeout:8 \
+ -a -agentvm -ignore:quiet -v1 ${JTREG_SUBCATEGORIES} | cat -n
+ fi
+
+ # Move the applications tests back, for neatness.
+ mv ${src_dir}/applications ${src_dir}/test/hotspot/jtreg
+
+ # Kill leftover jstatd processes.
+ killall -9 jstatd
+ set -e
+
+ # We don't care for the .class files.
+ find ${work_dir} -name \*.class -exec rm {} \;
+
+ # Match the exact output of the cron-based scripts.
+ dest=$PERSIST/openjdk-jtreg-nightly-tests
+ sed_expr=$(echo s!${WORKSPACE}/${basedir}!$dest!g)
+ find ${work_dir} -type f -exec perl -p -i -e "$sed_expr" {} \;
+ find ${report_dir} -type f -exec perl -p -i -e "$sed_expr" {} \;
+
+ mkdir -p out
+ tar -C ${basedir} --show-transformed-names -acvf out/jtreg-results-${JTREG_CATEGORY}-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz builds reports
+ publishers:
+ - archive:
+ artifacts: 'out/jtreg-results-${JTREG_CATEGORY}-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz'
diff --git a/jdkX-persist-all-results.yaml b/jdkX-persist-all-results.yaml
new file mode 100644
index 000000000..482c0be64
--- /dev/null
+++ b/jdkX-persist-all-results.yaml
@@ -0,0 +1,51 @@
+- job:
+ name: jdkX-persist-all-results
+ project-type: freestyle
+ defaults: global
+ description: |
+ * This job persist all results.
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: YEAR
+ default: 'default'
+ - string:
+ name: DAY_OF_YEAR
+ default: 'default'
+ disabled: false
+ node: master
+ display-name: 'OpenJDK X - Persist all results'
+ wrappers:
+ - timestamps
+ builders:
+ - trigger-builds:
+ - project: jdkX-jtreg-test-persist-results
+ block: true
+ current-parameters: true
+ - trigger-builds:
+ - project: jdkX-specjbb2015-benchmark-persist-results
+ block: true
+ current-parameters: true
+ - trigger-builds:
+ - project: jdkX-terasort-benchmark-persist-results
+ block: true
+ current-parameters: true
+ - trigger-builds:
+ - project: jdkX-jcstress-test-persist-results
+ block: true
+ current-parameters: true
+ - trigger-builds:
+ - project: jdkX-update-src-tree-persist
+ block: true
+ current-parameters: true
diff --git a/jdkX-publish-all-results.yaml b/jdkX-publish-all-results.yaml
new file mode 100644
index 000000000..b787dc87e
--- /dev/null
+++ b/jdkX-publish-all-results.yaml
@@ -0,0 +1,56 @@
+- job:
+ name: jdkX-publish-all-results
+ project-type: freestyle
+ defaults: global
+ description: |
+ * Convenience job to invoke all the scripts that sync the results to openjdk.linaro.org.
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ disabled: false
+ node: master
+ display-name: 'OpenJDK X - Invoke all the scripts to sync results to openjdk.linaro.org'
+ parameters:
+ - string:
+ name: PUBLISH_DEST
+ default: '/home/openjdk-testing/jdkX'
+ - string:
+ name: PUBLISH_HOST
+ default: 'stuart.monteith@people.linaro.org'
+ - string:
+ name: YEAR
+ default: 'default'
+ - string:
+ name: DAY_OF_YEAR
+ default: 'default'
+ wrappers:
+ - timestamps
+ builders:
+ - trigger-builds:
+ - project: jdkX-jtreg-test-publish-results
+ block: true
+ current-parameters: true
+ - trigger-builds:
+ - project: jdkX-specjbb2015-benchmark-publish-results
+ block: true
+ current-parameters: true
+ - trigger-builds:
+ - project: jdkX-terasort-benchmark-publish-results
+ block: true
+ current-parameters: true
+ - trigger-builds:
+ - project: jdkX-jcstress-test-publish-results
+ block: true
+ current-parameters: true
+ publishers:
+ - email:
+ recipients: 'fathi.boudra@linaro.org stuart.monteith@linaro.org'
diff --git a/jdkX-publish-and-report.yaml b/jdkX-publish-and-report.yaml
new file mode 100644
index 000000000..bb45ead2c
--- /dev/null
+++ b/jdkX-publish-and-report.yaml
@@ -0,0 +1,63 @@
+- job:
+ name: jdkX-publish-and-report
+ project-type: multijob
+ defaults: global
+ description: |
+ * This job publishes results and send e-mail reports.
+ logrotate:
+ numToKeep: 10
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ parameters:
+ - string:
+ name: DAYS
+ default: '15'
+ - string:
+ name: YEAR
+ default: 'default'
+ - string:
+ name: DAY_OF_YEAR
+ default: 'default'
+ disabled: false
+ node: master
+ display-name: 'OpenJDK X - Publish results and send reports'
+ wrappers:
+ - timestamps
+# Replaced by parameters
+# - inject:
+# properties-content: 'DAYS=15'
+ builders:
+ - multijob:
+ name: 'Persist results'
+ condition: SUCCESSFUL
+ projects:
+ - name: jdkX-persist-all-results
+ current-parameters: true
+ kill-phase-on: FAILURE
+ - multijob:
+ name: 'Publish results to openjdk.linaro.org'
+ condition: SUCCESSFUL
+ projects:
+ - name: jdkX-publish-all-results
+ current-parameters: true
+ kill-phase-on: FAILURE
+ - multijob:
+ name: 'Generate e-mail report'
+ condition: SUCCESSFUL
+ projects:
+ - name: jdkX-generate-email-report
+ current-parameters: true
+ kill-phase-on: FAILURE
+ - multijob:
+ name: 'E-mail results'
+ condition: SUCCESSFUL
+ projects:
+ - name: jdkX-email-results
+ current-parameters: true
+ kill-phase-on: FAILURE
diff --git a/jdkX-specjbb2015-benchmark-persist-results.yaml b/jdkX-specjbb2015-benchmark-persist-results.yaml
new file mode 100644
index 000000000..bcff5f07d
--- /dev/null
+++ b/jdkX-specjbb2015-benchmark-persist-results.yaml
@@ -0,0 +1,87 @@
+- job:
+ name: jdkX-specjbb2015-benchmark-persist-results
+ project-type: matrix
+ defaults: global
+ description: |
+ * Writes the results to $HOME/srv/openjdkX/SPECjbb2015-nightly-runs.<br>
+ * This job has the client axis <b>disabled</b> until there is enough build/test time available.<br>
+ * If the client axis is enabled the heap size for the VM will need to be adjusted using -Xmxm
+ properties:
+ - authorization:
+ linaro:
+ - job-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Write SPECjbb2015 results'
+ axes:
+ - axis:
+ type: user-defined
+ name: JVM_VARIANT
+ values:
+ - server
+# - client
+ - axis:
+ type: user-defined
+ name: BUILD_TYPE
+ values:
+ - release
+ - axis:
+ type: slave
+ name: label
+ values:
+ - aarch64-06
+ execution-strategy:
+# combination-filter: |
+# JVM_VARIANT=="server"
+ sequential: true
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ - matrix-tie-parent:
+ node: aarch64-06
+ builders:
+ - copyartifact:
+ project: jdkX-specjbb2015-benchmark
+ filter: 'out/specjbb*.gz'
+ target: incoming
+ flatten: true
+ - shell: |
+ #!/bin/bash
+
+ tree -f .
+
+ PERSIST=$HOME/srv/openjdkX
+ TOP_DIR=$PERSIST
+ export SPECJBB_PRODUCT_HOME=$PERSIST/SPECjbb2015
+ mkdir -p $TOP_DIR
+
+ SCRIPT_DIR=$PERSIST/specjbb-test-scripts
+ if [ -d $SCRIPT_DIR ]; then
+ (cd $SCRIPT_DIR; git pull)
+ else
+ git clone https://git.linaro.org/leg/openjdk/specjbb-test-scripts.git $SCRIPT_DIR
+ fi
+
+ source $SCRIPT_DIR/common.sh
+
+ # Ensure nightly results dir exists.
+ mkdir -p $SPECJBB_EXPANDED_RESULTS_DIR
+
+ echo "Previous Results"
+ cat ${RESULTS_CSV}
+ set -eux
+ result_tarball=${WORKSPACE}/incoming/BUILD_TYPE=${BUILD_TYPE},JVM_VARIANT=${JVM_VARIANT},label=${label}/specjbb-result-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz
+ [ -e $result_tarball ] || exit 1
+ tar -C ${SPECJBB_EXPANDED_RESULTS_DIR} -xf $result_tarball
+ cp incoming/BUILD_TYPE=${BUILD_TYPE},JVM_VARIANT=${JVM_VARIANT},label=${label}/*.data.gz ${SPECJBB_EXPANDED_RESULTS_DIR}
+ pushd ${SPECJBB_EXPANDED_RESULTS_DIR}
+ echo "Updating ${RESULTS_CSV}"
+ $SCRIPT_DIR/update-results-csv -- --verbose --output=${RESULTS_CSV}
diff --git a/jdkX-specjbb2015-benchmark-publish-results.yaml b/jdkX-specjbb2015-benchmark-publish-results.yaml
new file mode 100644
index 000000000..eff31abab
--- /dev/null
+++ b/jdkX-specjbb2015-benchmark-publish-results.yaml
@@ -0,0 +1,59 @@
+- job:
+ name: jdkX-specjbb2015-benchmark-publish-results
+ project-type: freestyle
+ defaults: global
+ description: |
+ * Reports are published to http://openjdk.linaro.org/jdkX/SPECjbb2015-results/
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: ZERO_BASELINE
+ default: '14115'
+ - string:
+ name: SERVER_MAX_JOPS_BASELINE
+ default: '4090'
+ - string:
+ name: SERVER_CRITICAL_JOPS_BASELINE
+ default: '1015'
+ - string:
+ name: PUBLISH_DEST
+ default: ''
+ - string:
+ name: PUBLISH_HOST
+ default: ''
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Publish SPECjbb2015 benchmark results'
+ wrappers:
+ - timestamps
+ - ssh-agent-credentials:
+ # openjdk-testing user id
+ users:
+ - '744cffb4-9ce1-4856-b103-9fdda06dad36'
+# Replaced by parameters
+# - inject:
+# properties-file: '${HOME}/performance-baseline.properties'
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ set -exu
+ PERSIST=$HOME/srv/openjdkX
+ export TOP_DIR=$PERSIST
+ export SPECJBB_PRODUCT_HOME=$PERSIST/SPECjbb2015
+
+ $PERSIST/specjbb-test-scripts/specjbb-publish $PUBLISH_DEST
+ publishers:
+ - email:
+ recipients: 'fathi.boudra@linaro.org stuart.monteith@linaro.org'
diff --git a/jdkX-specjbb2015-benchmark.yaml b/jdkX-specjbb2015-benchmark.yaml
new file mode 100644
index 000000000..1916cf1b2
--- /dev/null
+++ b/jdkX-specjbb2015-benchmark.yaml
@@ -0,0 +1,127 @@
+- job:
+ name: jdkX-specjbb2015-benchmark
+ project-type: matrix
+ defaults: global
+ description: |
+ * Runs the specjbb2015 benchmark in composite mode (i.e., single VM, single node).
+ properties:
+ - authorization:
+ linaro:
+ - job-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Run SPECjbb2015 benchmark'
+ axes:
+ - axis:
+ type: user-defined
+ name: JVM_VARIANT
+ values:
+ - server
+ - client
+ - axis:
+ type: user-defined
+ name: BUILD_TYPE
+ values:
+ - release
+ - axis:
+ type: slave
+ name: label
+ values:
+ - aarch64-06
+ execution-strategy:
+ sequential: true
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ - matrix-tie-parent:
+ node: aarch64-06
+ builders:
+# copyartifact is slow and the file is local
+# copy instead of going back and forth between master <-> slave
+# - copyartifact:
+# project: jdkX-build-image
+# filter: 'out/jdkX-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz'
+# target: incoming
+# flatten: true
+ - copyartifact:
+ project: archive-specjbb2015-product-tarball
+ filter: 'out/SPECjbb2015.tgz'
+ target: incoming
+ flatten: true
+ - shell: |
+ #!/bin/bash
+
+ set -exu
+ #
+ # client variant uses server with -XX:TieredStopAtLevel=1
+ # zero is a third possible value.
+ REAL_VARIANT=${JVM_VARIANT/client/server}
+
+ ## Extract jdk
+ tar xf ~/workspace/jdkX-build-image/BUILD_TYPE/${BUILD_TYPE}/JVM_VARIANT/${REAL_VARIANT}/label/${NODE_NAME}/out/jdkX-${REAL_VARIANT}-${BUILD_TYPE}.tar.gz
+ export JAVA_HOME=${WORKSPACE}/jdkX-${REAL_VARIANT}-${BUILD_TYPE}
+ export PATH=$JAVA_HOME/bin:$PATH
+ which java
+ java -version
+
+ ## Extract specjbb2015 product
+ tar xf incoming/SPECjbb2015.tgz
+
+ ## Run test
+
+ SPECJBB_PRODUCT_HOME=SPECjbb2015
+
+ # This commented-out invocation is a quick test that
+ # takes about 10 minutes to complete - which can be
+ # useful when debugging.
+
+ #(cd $SPECJBB_PRODUCT_HOME; \
+ # time java \
+ # -Dspecjbb.controller.rtcurve.duration.min=500 \
+ # -Dspecjbb.controller.rtcurve.duration.max=1500 \
+ # -Dspecjbb.controller.type=PRESET \
+ # -Dspecjbb.controller.preset.ir=4000 \
+ # -Dspecjbb.controller.preset.duration=100 \
+ # -jar specjbb2015.jar -m composite)
+
+ if [ $JVM_VARIANT = "server" ]; then
+ (cd $SPECJBB_PRODUCT_HOME; java --add-modules java.se.ee -XX:+UseLargePages -XX:-UseBiasedLocking -Xmx12g -Xms12g -XX:+UseParallelOldGC -jar specjbb2015.jar -m composite)
+ else
+ (cd $SPECJBB_PRODUCT_HOME; java --add-modules java.se.ee -XX:TieredStopAtLevel=1 -XX:+UseLargePages -XX:-UseBiasedLocking -Xmx12g -Xms12g -XX:+UseParallelOldGC -jar specjbb2015.jar -m composite)
+ fi
+
+ mkdir -p out
+
+ datafile=$(basename $(echo $SPECJBB_PRODUCT_HOME/specjbb*.data.gz) | sed "s/\(specjbb2015\)/\1-${JVM_VARIANT}-${BUILD_TYPE}/")
+
+ cp $SPECJBB_PRODUCT_HOME/specjbb*.data.gz out/$datafile
+
+ java -jar $SPECJBB_PRODUCT_HOME/specjbb2015.jar \
+ -m REPORTER \
+ -raw $SPECJBB_PRODUCT_HOME/config/template-M.raw \
+ -p $SPECJBB_PRODUCT_HOME/config/specjbb2015.props \
+ -s $SPECJBB_PRODUCT_HOME/specjbb2015-C-*.data.gz \
+ -l 1
+
+ tar -acf out/specjbb-result-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz result
+
+ rm -rf html
+ mkdir html
+ cp -a result/**/report-00001/* html
+ cp html/*0001.html html/index.html
+ publishers:
+ - archive:
+ artifacts: 'out/*.gz'
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'html'
+ files: 'index.html'
+ keep-all: true
diff --git a/jdkX-terasort-benchmark-persist-results.yaml b/jdkX-terasort-benchmark-persist-results.yaml
new file mode 100644
index 000000000..7811e5d4b
--- /dev/null
+++ b/jdkX-terasort-benchmark-persist-results.yaml
@@ -0,0 +1,85 @@
+- job:
+ name: jdkX-terasort-benchmark-persist-results
+ project-type: matrix
+ defaults: global
+ description: |
+ * Writes results to /work/openjdk-testing/hadoop-terasort-benchmark-results.
+ properties:
+ - authorization:
+ linaro:
+ - job-read
+ openjdk-members:
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Write terasort results'
+ axes:
+ - axis:
+ type: user-defined
+ name: JVM_VARIANT
+ values:
+ - server
+ - client
+ - axis:
+ type: user-defined
+ name: BUILD_TYPE
+ values:
+ - release
+ - axis:
+ type: slave
+ name: label
+ values:
+ - aarch64-06
+ execution-strategy:
+ sequential: true
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ - matrix-tie-parent:
+ node: aarch64-06
+ builders:
+ - copyartifact:
+ project: jdkX-terasort-benchmark
+ filter: 'out/terasort-results-${JVM_VARIANT}-${BUILD_TYPE}.csv'
+ target: incoming
+ flatten: true
+ - shell: |
+ #!/bin/bash
+
+ set -exu
+
+ PERSIST=$HOME/srv/openjdkX
+ export BENCHMARK_RESULTS_DIR=$PERSIST/hadoop-terasort-benchmark-results
+ new_results=incoming/BUILD_TYPE=${BUILD_TYPE},JVM_VARIANT=${JVM_VARIANT},label=${label}/*.csv
+ prev_results=$BENCHMARK_RESULTS_DIR/results.csv
+
+ # Ensure persistent directory exists.
+ mkdir -p $BENCHMARK_RESULTS_DIR
+
+ # Tolerate missing results.csv file.
+ if [ ! -f $prev_results ]; then
+ touch $prev_results
+ fi
+
+ SCRIPT_DIR=$PERSIST/hadoop-test-scripts
+ if [ -d $SCRIPT_DIR ]; then
+ (cd $SCRIPT_DIR; git pull)
+ else
+ git clone https://git.linaro.org/leg/openjdk/hadoop-test-scripts.git $SCRIPT_DIR
+ fi
+
+ echo "Previous Results"
+ echo "----------------"
+ cat ${prev_results}
+ echo
+
+ cat ${new_results} >> ${prev_results}
+
+ $SCRIPT_DIR/update-results-db
diff --git a/jdkX-terasort-benchmark-publish-results.yaml b/jdkX-terasort-benchmark-publish-results.yaml
new file mode 100644
index 000000000..8ef4ecdf5
--- /dev/null
+++ b/jdkX-terasort-benchmark-publish-results.yaml
@@ -0,0 +1,67 @@
+- job:
+ name: jdkX-terasort-benchmark-publish-results
+ project-type: freestyle
+ defaults: global
+ description: |
+ * Results are published to http://openjdk.linaro.org/hadoop-terasort-benchmark-results/
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: ZERO_BASELINE
+ default: '14115'
+ - string:
+ name: SERVER_MAX_JOPS_BASELINE
+ default: '3275'
+ - string:
+ name: SERVER_CRITICAL_JOPS_BASELINE
+ default: '854'
+ - string:
+ name: PUBLISH_DEST
+ default: ''
+ - string:
+ name: PUBLISH_HOST
+ default: ''
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Publish terasort benchmark results'
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - ssh-agent-credentials:
+ # openjdk-testing user id
+ users:
+ - '744cffb4-9ce1-4856-b103-9fdda06dad36'
+ - timestamps
+# Replaced by parameters
+# - inject:
+# properties-file: '${HOME}/performance-baseline.properties'
+ builders:
+ - shell: |
+ #!/bin/bash
+ PERSIST=$HOME/srv/openjdkX
+ export JDK_VERSION=X
+
+ export BENCHMARK_RESULTS_DIR=$PERSIST/hadoop-terasort-benchmark-results
+ SCRIPT_DIR=$PERSIST/hadoop-test-scripts
+
+ if [ -d $SCRIPT_DIR ]; then
+ (cd $SCRIPT_DIR; git pull)
+ else
+ git clone https://git.linaro.org/leg/openjdk/hadoop-test-scripts.git $SCRIPT_DIR
+ fi
+
+ $SCRIPT_DIR/benchmark-terasort-publish $PUBLISH_DEST
+ publishers:
+ - email:
+ recipients: 'fathi.boudra@linaro.org stuart.monteith@linaro.org'
diff --git a/jdkX-terasort-benchmark.yaml b/jdkX-terasort-benchmark.yaml
new file mode 100644
index 000000000..68ba88630
--- /dev/null
+++ b/jdkX-terasort-benchmark.yaml
@@ -0,0 +1,140 @@
+- job:
+ name: jdkX-terasort-benchmark
+ project-type: matrix
+ defaults: global
+ description: |
+ * Runs the terasort benchmark.
+ properties:
+ - authorization:
+ linaro:
+ - job-read
+ openjdk-members:
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Run terasort benchmark'
+ axes:
+ - axis:
+ type: user-defined
+ name: JVM_VARIANT
+ values:
+ - server
+ - client
+ - axis:
+ type: user-defined
+ name: BUILD_TYPE
+ values:
+ - release
+ - axis:
+ type: slave
+ name: label
+ values:
+ - aarch64-06
+ execution-strategy:
+ sequential: true
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ - matrix-tie-parent:
+ node: aarch64-06
+ builders:
+# copyartifact is slow and the file is local
+# copy instead of going back and forth between master <-> slave
+# - copyartifact:
+# project: jdkX-build-image
+# filter: 'out/jdkX-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz'
+# target: incoming
+# flatten: true
+ - copyartifact:
+ project: openjdk8-hadoop-LCA14
+ filter: 'out/openjdk8-hadoop-LCA14.tar.gz'
+ target: incoming
+ flatten: true
+ - shell: |
+ #!/bin/bash
+
+ set -exu
+
+ NGIGABYTES=1
+
+ # client variant uses server with -XX:TieredStopAtLevel=1
+ # zero is a third possible value.
+ REAL_VARIANT=${JVM_VARIANT/client/server}
+
+ ## Extract jdk
+ rm -rf jdkX*
+ tar xf ~/workspace/jdkX-build-image/BUILD_TYPE/${BUILD_TYPE}/JVM_VARIANT/${REAL_VARIANT}/label/${NODE_NAME}/out/jdkX-${REAL_VARIANT}-${BUILD_TYPE}.tar.gz
+
+ export JAVA_HOME=${WORKSPACE}/jdkX-${REAL_VARIANT}-${BUILD_TYPE}
+ export PATH=${JAVA_HOME}/bin:$PATH
+
+ ## Extract Hadoop pre-builts
+ rm -rf openjdk8-hadooop-LCA14
+ tar xf incoming/openjdk8-hadoop-LCA14.tar.gz
+
+ ## Benchmark
+ # FIXME
+ #(cd incoming; wget --progress=dot -e dotbytes=10M http://openjdk-apm1/openjdk8-build-artefacts/${NGIGABYTES}GB.tar.gz; tar xf ${NGIGABYTES}GB.tar.gz)
+ (cd incoming; tar xf ~/srv/hadoop-terasort-reference-files/${NGIGABYTES}GB.tar.gz)
+
+ TERAGEN_BASELINE_DIR=${WORKSPACE}/incoming
+ HADOOP_DIR=${WORKSPACE}/openjdk8-hadoop-LCA14
+
+ rm -rf out
+ mkdir out
+
+ sed -i '/^export JAVA_HOME=/d' ${HADOOP_DIR}/conf/hadoop-env.sh
+ echo "export JAVA_HOME=$JAVA_HOME" >> ${HADOOP_DIR}/conf/hadoop-env.sh
+ sed -i 's|/work/${user.name}/hadoop-tmp|${user.home}/hadoop/tmp|' ${HADOOP_DIR}/conf/core-site.xml
+
+ source ${HADOOP_DIR}/env.sh
+
+ which hadoop
+ which java
+ which hdfs
+ java -version
+
+ stop-dfs.sh
+ stop-yarn.sh
+
+ rm -rf ${HOME}/hadoop
+ mkdir -p ${HOME}/hadoop/tmp
+ hdfs namenode -format -force
+ start-dfs.sh
+ start-yarn.sh
+
+ # Need time for the datanodes to materialise.
+ sleep 30
+ jps
+
+ hadoop fs -mkdir -p /user/$USER
+ hadoop fs -copyFromLocal $TERAGEN_BASELINE_DIR/${NGIGABYTES}GB /user/$USER
+
+ trap "stop-dfs.sh; stop-yarn.sh" EXIT
+
+ # Use only C1 compiler for client runs.
+ if [ $JVM_VARIANT = "client" ]; then
+ VARIANT_OPT=-XX:TieredStopAtLevel=1
+ else
+ VARIANT_OPT=-Dharmless.property
+ fi
+
+ elapsed_time_file=$(mktemp /tmp/benchmark-terasort-XXXXXX.$$)
+ HADOOP_OPTS=${VARIANT_OPT} /usr/bin/time -o $elapsed_time_file -f "%e" terasort ${NGIGABYTES}GB ${NGIGABYTES}GB-sorted
+
+ hadoop fs -rm -R ${NGIGABYTES}GB-sorted
+ sed -i 's/\..*//' $elapsed_time_file
+ elapsed_time=$(cat $elapsed_time_file)
+ date_as_epoch=$(date --date="$(date +'%Y-%m-%d')" +%s)
+ echo "$date_as_epoch,$JVM_VARIANT,$NGIGABYTES,$elapsed_time" > out/terasort-results-${JVM_VARIANT}-${BUILD_TYPE}.csv
+ rm -rf incoming/${NGIGABYTES}*
+ publishers:
+ - archive:
+ artifacts: 'out/terasort-results-*.csv'
diff --git a/jdkX-update-src-tree-persist.yaml b/jdkX-update-src-tree-persist.yaml
new file mode 100644
index 000000000..ba7c6c67c
--- /dev/null
+++ b/jdkX-update-src-tree-persist.yaml
@@ -0,0 +1,56 @@
+- job:
+ name: jdkX-update-src-tree-persist
+ project-type: freestyle
+ defaults: global
+ description: |
+ This jobs writes the current jdkX src tree to /work/openjdk-testing/jdkX/openjdk-jtreg-nightly-tests/...<br>
+ It is used to report failure/errors against the jtreg results.
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ parameters:
+ - string:
+ name: YEAR
+ default: 'default'
+ - string:
+ name: DAY_OF_YEAR
+ default: 'default'
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Write jdkX source tree'
+ wrappers:
+ - workspace-cleanup:
+ dirmatch: false
+ - timestamps
+ builders:
+ - copyartifact:
+ project: jdkX-update-src-tree
+ filter: 'out/*'
+ target: incoming
+ flatten: true
+ - shell: |
+ #!/bin/bash
+
+ set -exu
+
+ : ${YEAR:=$(date +%Y)}
+ : ${DAY_OF_YEAR:=$(date +%j)}
+ PERSIST=$HOME/srv/openjdkX
+
+ TOP_DIR=$PERSIST/openjdk-jtreg-nightly-tests
+ src_dir=$TOP_DIR/src/$YEAR/$DAY_OF_YEAR
+ mkdir -p $src_dir
+ echo "Extracting tarball to $src_dir"
+ tar -C $src_dir --strip-components=1 -xf $WORKSPACE/incoming/jdkX.tar.gz
+
+ # Copy bill-of-materials to persistent area for email report.
+ cp incoming/BOM $TOP_DIR
diff --git a/jdkX-update-src-tree.yaml b/jdkX-update-src-tree.yaml
new file mode 100644
index 000000000..357f531a9
--- /dev/null
+++ b/jdkX-update-src-tree.yaml
@@ -0,0 +1,92 @@
+- scm:
+ name: jdkX
+ scm:
+ - hg:
+ url: http://hg.openjdk.java.net/jdk/hs
+ clean: true
+ subdir: jdkX
+- job:
+ name: jdkX-update-src-tree
+ project-type: freestyle
+ defaults: global
+ description: |
+ This job polls upstream Mercurial servers for changes and,<br>
+ if there are any, triggers "jdkX-build-and-test".<br>
+ Note: this job archives the src which is later required by the jtreg<br>
+ report and publish job. The build-date.sh artefact contains shell<br>
+ variables for the day and day-of-year the source was archived.
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ openjdk-members:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 10
+ artifact-num-to-keep: 5
+ disabled: false
+ node: aarch64-06
+ display-name: 'OpenJDK X - Update jdkX source tree'
+ scm:
+ - jdkX
+ triggers:
+ - pollscm: 'H 2 */2 * *'
+ wrappers:
+ - timestamps
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ set -eu
+
+ rm -rf out
+ mkdir out
+
+ pushd jdkX
+ #find . -name BOM -exec rm {} \;
+ #commit_id=$(hg identify | awk '{print $1}')
+ #echo "jdkX-${commit_id}" | tee -a BOM
+
+ #for i in corba jaxp jaxws langtools jdk hotspot nashorn; do
+ # pushd $i
+ # commit_id=$(hg identify | awk '{print $1}')
+ # dir=$(basename $PWD)
+ # echo "${dir}-${commit_id}" | tee -a ../BOM
+ # popd
+ #done
+
+ ## Pull out subdirectory HG versions
+ echo BOM for $(hg paths default) > BOM
+ echo -e Subdir\\tHash\\t\\tTag\\tTag hash >> BOM
+ echo -e .\\t$(hg head --template '{node|short}\t' tip; hg tags --template="{tag}\t{node|short}\n" | grep -ve '^tip' | head -n1) >>BOM
+
+ cp BOM $WORKSPACE/out
+
+ popd
+
+ : ${YEAR:=$(date +%Y)}
+ : ${DAY_OF_YEAR:=$(date +%j)}
+
+ : ${YEAR_YESTERDAY:=$YEAR}
+ : ${DAY_OF_YEAR_YESTERDAY:=$((10#$DAY_OF_YEAR - 1))}
+
+ echo "YEAR=${YEAR}" >dates.prop
+ echo "DAY_OF_YEAR=${DAY_OF_YEAR}" >>dates.prop
+
+ echo "export YEAR=${YEAR}" > out/build-date.sh
+ echo "export DAY_OF_YEAR=${DAY_OF_YEAR}" >> out/build-date.sh
+
+ tar --exclude=.hg -acf out/jdkX.tar.gz jdkX
+ publishers:
+ - archive:
+ artifacts: 'out/jdkX.tar.gz, out/build-date.sh, out/BOM'
+ - fingerprint:
+ files: 'out/*'
+ record-artifacts: true
+ - trigger-parameterized-builds:
+ - project: jdkX-build-and-test
+ condition: SUCCESS
+ property-file: dates.prop