From 1e0d8199c452740d81df3ff5a3f0e7992704091c Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Sat, 16 Sep 2017 09:08:45 +0000 Subject: [PATCH] Jenkins DSL: * Enable SCM-retry to see if that helps against the frequent SVN update failures * Add a POI-DSL-Test-Environment to have this Job also defined via DSL git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1808525 13f79535-47bb-0310-9956-ffa450edef68 --- jenkins/create_jobs.groovy | 257 +++++++++++++++++++++++-------------- 1 file changed, 158 insertions(+), 99 deletions(-) diff --git a/jenkins/create_jobs.groovy b/jenkins/create_jobs.groovy index af7a75b9af..3f3ff71cdf 100644 --- a/jenkins/create_jobs.groovy +++ b/jenkins/create_jobs.groovy @@ -18,71 +18,71 @@ def xercesUrl = 'http://repo1.maven.org/maven2/xerces/xercesImpl/2.6.1/xercesImp def xercesLib = 'compile-lib/xercesImpl-2.6.1.jar' def poijobs = [ - [ name: 'POI-DSL-1.6', - // workaround as Sourceforge does not accept any of the SSL ciphers in JDK 6 any more and thus we cannot download this jar - // as part of the Ant build - addShell: "wget -O ${findbugs2Lib} ${findbugs2Url}", - disabled: true - ], - [ name: 'POI-DSL-1.8', jdk: '1.8', trigger: 'H */12 * * *' - ], - [ name: 'POI-DSL-OpenJDK', jdk: 'OpenJDK', trigger: 'H */12 * * *', - // H13-H20 (Ubuntu 16.04) do not have OpenJDK 6 installed, see https://issues.apache.org/jira/browse/INFRA-12880 - slaveAdd: '&&!beam1&&!beam2&&!beam3&&!beam4&&!beam5&&!beam6&&!beam7&&!beam8&&!H12&&!H13&&!H14&&!H15&&!H16&&!H17&&!H18&&!H19&&!H20&&!H21&&!H22&&!H23&&!H24&&!H25&&!H26&&!H27&&!qnode1&&!qnode2&&!qnode3&&!ubuntu-eu2&&!ubuntu-eu3&&!ubuntu-us1', - // the JDK is missing on some slaves so builds are unstable - skipcigame: true - ], - [ name: 'POI-DSL-1.9', jdk: '1.9', trigger: triggerSundays, - properties: ['-Dmaxpermsize=-Dthis.is.a.dummy=true', - '-Djava9addmods=--add-modules=java.xml.bind', - '-Djavadoc9addmods=--add-modules=java.xml.bind', - '-Djava9addmodsvalue=-Dsun.reflect.debugModuleAccessChecks=true', - '-Djava9addopens1=--add-opens=java.xml/com.sun.org.apache.xerces.internal.util=ALL-UNNAMED', - '-Djava9addopens2=--add-opens=java.base/java.io=ALL-UNNAMED', - '-Djava9addopens3=--add-opens=java.base/java.nio=ALL-UNNAMED', - '-Djava9addopens4=--add-opens=java.base/java.lang=ALL-UNNAMED', - '-Djava9addopens5=--add-opens=java.base/jdk.internal.ref=ALL-UNNAMED', - '-Djava.locale.providers=JRE,CLDR'], - skipcigame: true - ], - [ name: 'POI-DSL-IBM-JDK', jdk: 'IBMJDK', trigger: triggerSundays, - // some OOXML tests fail with strange XML parsing errors and missing JCE unlimited strength requirements - disabled: true, skipcigame: true - ], - [ name: 'POI-DSL-old-Xerces', trigger: triggerSundays, - shell: "mkdir -p compile-lib && test -f ${xercesLib} || wget -O ${xercesLib} ${xercesUrl}\n", - // the property triggers using Xerces as XML Parser and previously showed some exception that can occur - properties: ["-Dadditionaljar=${xercesLib}"], - // workaround as Sourceforge does not accept any of the SSL ciphers in JDK 6 any more and thus we cannot download this jar - // as part of the Ant build - addShell: "wget -O ${findbugs2Lib} ${findbugs2Url}" - ], - [ name: 'POI-DSL-Maven', trigger: 'H */4 * * *', maven: true - ], - [ name: 'POI-DSL-regenerate-javadoc', trigger: triggerSundays, javadoc: true - ], - [ name: 'POI-DSL-API-Check', jdk: '1.8', trigger: '@daily', apicheck: true - ], - [ name: 'POI-DSL-Gradle', jdk: '1.8', trigger: triggerSundays, email: 'centic@apache.org', gradle: true, - // Gradle will not run any tests if the code is up-to-date, therefore manually mark the files as updated - addShell: 'touch --no-create build/*/build/test-results/TEST-*.xml build/*/build/test-results/test/TEST-*.xml' - ], - [ name: 'POI-DSL-no-scratchpad', trigger: triggerSundays, noScratchpad: true - ], - [ name: 'POI-DSL-SonarQube', jdk: '1.8', trigger: 'H 9 * * *', maven: true, sonar: true, skipcigame: true - ], - [ name: 'POI-DSL-SonarQube-Gradle', jdk: '1.8', trigger: 'H 9 * * *', gradle: true, sonar: true, skipcigame: true - ], - [ name: 'POI-DSL-Windows-1.6', jdk: '1.6', trigger: 'H */12 * * *', windows: true, slaves: 'Windows', - addShell: "@if not exist ${findbugs2Lib} powershell -Command wget -Uri \"${findbugs2Url}\" -OutFile ${findbugs2Lib} -UserAgent [Microsoft.PowerShell.Commands.PSUsergAgent]::Chrome", - disabled: true - ], - [ name: 'POI-DSL-Windows-1.7', jdk: '1.7', trigger: 'H */12 * * *', windows: true, slaves: 'Windows', - addShell: "@if not exist ${findbugs3Lib} powershell -Command wget -Uri \"${findbugs3Url}\" -OutFile ${findbugs3Lib} -UserAgent [Microsoft.PowerShell.Commands.PSUsergAgent]::Chrome", - disabled: true - ], - [ name: 'POI-DSL-Windows-1.8', jdk: '1.8', trigger: 'H */12 * * *', windows: true, slaves: 'Windows' - ], + [ name: 'POI-DSL-1.6', + // workaround as Sourceforge does not accept any of the SSL ciphers in JDK 6 any more and thus we cannot download this jar + // as part of the Ant build + addShell: "wget -O ${findbugs2Lib} ${findbugs2Url}", + disabled: true + ], + [ name: 'POI-DSL-1.8', jdk: '1.8', trigger: 'H */12 * * *' + ], + [ name: 'POI-DSL-OpenJDK', jdk: 'OpenJDK', trigger: 'H */12 * * *', + // H13-H20 (Ubuntu 16.04) do not have OpenJDK 6 installed, see https://issues.apache.org/jira/browse/INFRA-12880 + slaveAdd: '&&!beam1&&!beam2&&!beam3&&!beam4&&!beam5&&!beam6&&!beam7&&!beam8&&!H12&&!H13&&!H14&&!H15&&!H16&&!H17&&!H18&&!H19&&!H20&&!H21&&!H22&&!H23&&!H24&&!H25&&!H26&&!H27&&!qnode1&&!qnode2&&!qnode3&&!ubuntu-eu2&&!ubuntu-eu3&&!ubuntu-us1', + // the JDK is missing on some slaves so builds are unstable + skipcigame: true + ], + [ name: 'POI-DSL-1.9', jdk: '1.9', trigger: triggerSundays, + properties: ['-Dmaxpermsize=-Dthis.is.a.dummy=true', + '-Djava9addmods=--add-modules=java.xml.bind', + '-Djavadoc9addmods=--add-modules=java.xml.bind', + '-Djava9addmodsvalue=-Dsun.reflect.debugModuleAccessChecks=true', + '-Djava9addopens1=--add-opens=java.xml/com.sun.org.apache.xerces.internal.util=ALL-UNNAMED', + '-Djava9addopens2=--add-opens=java.base/java.io=ALL-UNNAMED', + '-Djava9addopens3=--add-opens=java.base/java.nio=ALL-UNNAMED', + '-Djava9addopens4=--add-opens=java.base/java.lang=ALL-UNNAMED', + '-Djava9addopens5=--add-opens=java.base/jdk.internal.ref=ALL-UNNAMED', + '-Djava.locale.providers=JRE,CLDR'], + skipcigame: true + ], + [ name: 'POI-DSL-IBM-JDK', jdk: 'IBMJDK', trigger: triggerSundays, + // some OOXML tests fail with strange XML parsing errors and missing JCE unlimited strength requirements + disabled: true, skipcigame: true + ], + [ name: 'POI-DSL-old-Xerces', trigger: triggerSundays, + shell: "mkdir -p compile-lib && test -f ${xercesLib} || wget -O ${xercesLib} ${xercesUrl}\n", + // the property triggers using Xerces as XML Parser and previously showed some exception that can occur + properties: ["-Dadditionaljar=${xercesLib}"], + // workaround as Sourceforge does not accept any of the SSL ciphers in JDK 6 any more and thus we cannot download this jar + // as part of the Ant build + addShell: "wget -O ${findbugs2Lib} ${findbugs2Url}" + ], + [ name: 'POI-DSL-Maven', trigger: 'H */4 * * *', maven: true + ], + [ name: 'POI-DSL-regenerate-javadoc', trigger: triggerSundays, javadoc: true + ], + [ name: 'POI-DSL-API-Check', jdk: '1.8', trigger: '@daily', apicheck: true + ], + [ name: 'POI-DSL-Gradle', jdk: '1.8', trigger: triggerSundays, email: 'centic@apache.org', gradle: true, + // Gradle will not run any tests if the code is up-to-date, therefore manually mark the files as updated + addShell: 'touch --no-create build/*/build/test-results/TEST-*.xml build/*/build/test-results/test/TEST-*.xml' + ], + [ name: 'POI-DSL-no-scratchpad', trigger: triggerSundays, noScratchpad: true + ], + [ name: 'POI-DSL-SonarQube', jdk: '1.8', trigger: 'H 9 * * *', maven: true, sonar: true, skipcigame: true + ], + [ name: 'POI-DSL-SonarQube-Gradle', jdk: '1.8', trigger: 'H 9 * * *', gradle: true, sonar: true, skipcigame: true + ], + [ name: 'POI-DSL-Windows-1.6', jdk: '1.6', trigger: 'H */12 * * *', windows: true, slaves: 'Windows', + addShell: "@if not exist ${findbugs2Lib} powershell -Command wget -Uri \"${findbugs2Url}\" -OutFile ${findbugs2Lib} -UserAgent [Microsoft.PowerShell.Commands.PSUsergAgent]::Chrome", + disabled: true + ], + [ name: 'POI-DSL-Windows-1.7', jdk: '1.7', trigger: 'H */12 * * *', windows: true, slaves: 'Windows', + addShell: "@if not exist ${findbugs3Lib} powershell -Command wget -Uri \"${findbugs3Url}\" -OutFile ${findbugs3Lib} -UserAgent [Microsoft.PowerShell.Commands.PSUsergAgent]::Chrome", + disabled: true + ], + [ name: 'POI-DSL-Windows-1.8', jdk: '1.8', trigger: 'H */12 * * *', windows: true, slaves: 'Windows' + ], ] def svnBase = 'https://svn.apache.org/repos/asf/poi/trunk' @@ -94,20 +94,20 @@ def defaultAnt = 'Ant 1.9.9' def defaultSlaves = 'ubuntu&&!cloud-slave&&!H15&&!H17&&!H18&&!H24&&!ubuntu-4&&!H21' def jdkMapping = [ - '1.6': 'JDK 1.6 (latest)', - '1.7': 'JDK 1.7 (latest)', - '1.8': 'JDK 1.8 (latest)', - '1.9': 'JDK 1.9 (latest)', - 'OpenJDK': 'OpenJDK 8 (on Ubuntu only) ', // blank is required here until the name in the Jenkins instance is fixed! - 'IBMJDK': 'IBM 1.8 64-bit (on Ubuntu only)', + '1.6': 'JDK 1.6 (latest)', + '1.7': 'JDK 1.7 (latest)', + '1.8': 'JDK 1.8 (latest)', + '1.9': 'JDK 1.9 (latest)', + 'OpenJDK': 'OpenJDK 8 (on Ubuntu only) ', // blank is required here until the name in the Jenkins instance is fixed! + 'IBMJDK': 'IBM 1.8 64-bit (on Ubuntu only)', ] -def shellEx(def context, String cmd, def poijob) { - if (poijob.windows) { - context.batchFile(cmd) - } else { - context.shell(cmd) - } +static def shellEx(def context, String cmd, def poijob) { + if (poijob.windows) { + context.batchFile(cmd) + } else { + context.shell(cmd) + } } def defaultDesc = ''' @@ -143,7 +143,7 @@ def sonarDesc = ''' ''' def shellCmdsUnix = -'''# show which files are currently modified in the working copy + '''# show which files are currently modified in the working copy svn status # print out information about which exact version of java we are using @@ -157,7 +157,7 @@ POIJOBSHELL exit 0''' def shellCmdsWin = -'''@echo off + '''@echo off :: show which files are currently modified in the working copy svn status @@ -211,10 +211,12 @@ poijobs.each { poijob -> jdk(jdkMapping.get(jdkKey)) scm { svn(svnBase) { svnNode -> - svnNode / browser(class: 'hudson.scm.browsers.ViewSVN') / - url << 'http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN' - } + svnNode / browser(class: 'hudson.scm.browsers.ViewSVN') / + url << 'http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN' + } } + checkoutRetryCount(3) + triggers { scm(trigger) } @@ -387,6 +389,63 @@ poijobs.each { poijob -> } } +matrixJob('POI-DSL-Test-Environment') { + description( + ''' +Check installed version of Java/Ant on all build-nodes + +This job is used to verify which machines actually have the required programs installed. + +Unfortunately we often see builds break because of changes/new machines...''' + ) + + /*throttleConcurrentBuilds { + maxPerNode(1) + maxTotal(1) + }*/ + logRotator { + numToKeep(5) + artifactNumToKeep(1) + } + axes { + jdk( + 'JDK 1.8 (latest)', + 'OpenJDK 8 (on Ubuntu only) ', // blank is required here until the name in the Jenkins instance is fixed! + 'IBM 1.8 64-bit (on Ubuntu only)', + + 'JDK 1.9 (latest)', + 'JDK 9 b181', + 'JDK 9 b181 (unlimited security)' + ) + label( + 'beam1,beam2,beam3,beam4,beam5,beam6,beam7,beam8,' + + 'freebsd1,' + + 'H0,H1,H10,H11,H12,H13,H14,H15,H16,H17,H18,H19,H2,H20,H21,H22,H23,H24,H25,H26,H27,H3,H4,H5,H6,H7,H8,H9,' + + 'qnode1,qnode2,qnode3,' + + 'ubuntu-1,ubuntu-2,ubuntu-4,ubuntu-5,ubuntu-6,ubuntu-eu2,ubuntu-eu3,ubuntu-ppc64le,ubuntu-us1,' + + 'windows-2012-1,windows-2012-2,windows-2012-3' + ) + } + steps { + /*if (poijob.windows) { + context.batchFile(cmd) + } else {*/ + shell(''' +which javac +javac -version +echo 'Using Ant: ${ant.version} from ${ant.home}' > build.xml +''') + //} + ant { + antInstallation(defaultAnt) + } + } + + publishers { + mailer('centic@poi.apache.org' /* defaultEmail */, false, false) + } +} + /* I tried to put the view into a sub-folder/sub-view, but failed, there are multiple related plugins so this is all a bit confusing :(, see also https://issues.apache.org/jira/browse/INFRA-14002 dashboardView("P/POI-new") { @@ -410,23 +469,23 @@ dashboardView("P/POI-new") { // Job selection jobs {*/ - //regex(/.*POI.*/) - /*} +//regex(/.*POI.*/) +/*} - // Layout - topPortlets { - jenkinsJobsList { - displayName('POI jobs') - } - } - leftPortlets { - testStatisticsChart() - } - rightPortlets { - testTrendChart() - } - bottomPortlets { - testStatisticsGrid() - buildStatistics() +// Layout +topPortlets { + jenkinsJobsList { + displayName('POI jobs') } +} +leftPortlets { + testStatisticsChart() +} +rightPortlets { + testTrendChart() +} +bottomPortlets { + testStatisticsGrid() + buildStatistics() +} }*/ -- 2.39.5