]> source.dussan.org Git - poi.git/commitdiff
Jenkins DSL:
authorDominik Stadler <centic@apache.org>
Sat, 16 Sep 2017 09:08:45 +0000 (09:08 +0000)
committerDominik Stadler <centic@apache.org>
Sat, 16 Sep 2017 09:08:45 +0000 (09:08 +0000)
* 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

index af7a75b9af86c1ef5ee3a30fe112d1cedaee326f..3f3ff71cdf54b28638fe25a76f11fc8ac06ebaf9 100644 (file)
@@ -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()
+}
 }*/