summaryrefslogtreecommitdiffstats
path: root/jenkins
diff options
context:
space:
mode:
authorDominik Stadler <centic@apache.org>2017-09-16 09:08:45 +0000
committerDominik Stadler <centic@apache.org>2017-09-16 09:08:45 +0000
commit1e0d8199c452740d81df3ff5a3f0e7992704091c (patch)
tree58a7c7d098fb2b930a30025e7999847b00735f16 /jenkins
parent4fb046c2b9bb1a6f723741907fe75cfebaec723a (diff)
downloadpoi-1e0d8199c452740d81df3ff5a3f0e7992704091c.tar.gz
poi-1e0d8199c452740d81df3ff5a3f0e7992704091c.zip
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
Diffstat (limited to 'jenkins')
-rw-r--r--jenkins/create_jobs.groovy257
1 files 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 '<?xml version="1.0"?><project name="POI Build" default="test"><target name="test"><echo>Using Ant: ${ant.version} from ${ant.home}</echo></target></project>' > 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()
+}
}*/