]> source.dussan.org Git - poi.git/commitdiff
Job DSL refactorings
authorAndreas Beeker <kiwiwings@apache.org>
Mon, 31 Jul 2017 22:56:08 +0000 (22:56 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Mon, 31 Jul 2017 22:56:08 +0000 (22:56 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1803594 13f79535-47bb-0310-9956-ffa450edef68

jenkins/create_jobs.groovy

index bd2e76660614b2547689d05fec6d21d142263cf9..33bbe230f5902ddcc7f2e16055a6fd446cee8fbc 100644 (file)
@@ -10,11 +10,16 @@ def triggerSundays = '''
 H H * * 0
 '''
 
+def findbugsUrl = 'http://downloads.sourceforge.net/project/findbugs/findbugs/2.0.3/findbugs-noUpdateChecks-2.0.3.zip?download='
+def findbugsLib = 'lib/findbugs-noUpdateChecks-2.0.3.zip'
+def xercesUrl = 'http://repo1.maven.org/maven2/xerces/xercesImpl/2.6.1/xercesImpl-2.6.1.jar'
+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 lib/findbugs-noUpdateChecks-2.0.3.zip http://downloads.sourceforge.net/project/findbugs/findbugs/2.0.3/findbugs-noUpdateChecks-2.0.3.zip?download='
+            addShell: "wget -O ${findbugsLib} ${findbugsUrl}"
     ],
     [ name: 'POI-DSL-1.8', jdk: '1.8', trigger: 'H */12 * * *'
     ],
@@ -42,12 +47,12 @@ def poijobs = [
         disabled: true, skipcigame: true
     ],
     [ name: 'POI-DSL-old-Xerces', trigger: triggerSundays,
-        shell: 'mkdir -p compile-lib && test -f compile-lib/xercesImpl-2.6.1.jar || wget -O compile-lib/xercesImpl-2.6.1.jar http://repo1.maven.org/maven2/xerces/xercesImpl/2.6.1/xercesImpl-2.6.1.jar\n',
+        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=compile-lib/xercesImpl-2.6.1.jar'],
+        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 lib/findbugs-noUpdateChecks-2.0.3.zip http://downloads.sourceforge.net/project/findbugs/findbugs/2.0.3/findbugs-noUpdateChecks-2.0.3.zip?download='
+        addShell: "wget -O ${findbugsLib} ${findbugsUrl}"
     ],
     [ name: 'POI-DSL-Maven', trigger: 'H */4 * * *', maven: true
     ],
@@ -66,13 +71,13 @@ def poijobs = [
     [ 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 * * *', skipcigame: true, windows: true, slaves: 'Windows', email: 'kiwiwings@apache.org',
-       addShell: 'if not exist lib/findbugs-noUpdateChecks-2.0.3.zip powershell -Command wget -Uri "http://downloads.sourceforge.net/project/findbugs/findbugs/2.0.3/findbugs-noUpdateChecks-2.0.3.zip?download=" -OutFile lib/findbugs-noUpdateChecks-2.0.3.zip -UserAgent [Microsoft.PowerShell.Commands.PSUsergAgent]::Chrome'
+       addShell: "@if not exist ${findbugsLib} powershell -Command wget -Uri \"${findbugsUrl}\" -OutFile ${findbugsLib} -UserAgent [Microsoft.PowerShell.Commands.PSUsergAgent]::Chrome"
     ],
-    [ name: 'POI-DSL-Windows-1.7', jdk: '1.7', trigger: 'H */12 * * *', skipcigame: true, windows: true, slaves: 'Windows', 
-       disabled: true
+    [ name: 'POI-DSL-Windows-1.7', jdk: '1.7', trigger: 'H */12 * * *', skipcigame: true, windows: true, slaves: 'Windows', email: 'kiwiwings@apache.org',
+       addShell: "@if not exist ${findbugsLib} powershell -Command wget -Uri \"${findbugsUrl}\" -OutFile ${findbugsLib} -UserAgent [Microsoft.PowerShell.Commands.PSUsergAgent]::Chrome"
     ],
-    [ name: 'POI-DSL-Windows-1.8', jdk: '1.8', trigger: 'H */12 * * *', skipcigame: true, windows: true, slaves: 'Windows',
-       disabled: true
+    [ name: 'POI-DSL-Windows-1.8', jdk: '1.8', trigger: 'H */12 * * *', skipcigame: true, windows: true, slaves: 'Windows', email: 'kiwiwings@apache.org',
+       addShell: "@if not exist ${findbugsLib} powershell -Command wget -Uri \"${findbugsUrl}\" -OutFile ${findbugsLib} -UserAgent [Microsoft.PowerShell.Commands.PSUsergAgent]::Chrome"
     ],
 ]
 
@@ -101,19 +106,7 @@ def shellEx(def context, String cmd, def poijob) {
        } 
 }
 
-poijobs.each { poijob ->
-    def jdkKey = poijob.jdk ?: defaultJdk
-    def trigger = poijob.trigger ?: defaultTrigger
-    def email = poijob.email ?: defaultEmail
-    def slaves = poijob.slaves ?: defaultSlaves + (poijob.slaveAdd ?: '')
-    def antRT = defaultAnt + (poijob.windows ? ' (Windows)' : '')
-
-    job(poijob.name) {
-        if (poijob.disabled) {
-            disabled()
-        }
-
-        def defaultDesc = '''
+def defaultDesc = '''
 <img src="https://poi.apache.org/resources/images/project-logo.jpg" />
 <p>
 Apache POI - the Java API for Microsoft Documents
@@ -125,9 +118,7 @@ see <a href="https://github.com/jenkinsci/job-dsl-plugin/wiki">https://github.co
 for more details about the DSL.</b>
 </p>'''
 
-        description( defaultDesc +
-(poijob.apicheck ? 
-'''
+def apicheckDesc = '''
 <p>
 <b><a href="https://builds.apache.org/analysis/dashboard?id=org.apache.poi%3Apoi-parent&did=1" target="_blank">Sonar reports</a></b> -
 <p>
@@ -137,14 +128,58 @@ for more details about the DSL.</b>
 <b><a href="lastSuccessfulBuild/artifact/build/scratchpad/build/reports/japi.html">API Check POI-Scratchpad</a></b>
 
 </p>
-''' :
 '''
+
+def sonarDesc = '''
 <p>
 <b><a href="lastSuccessfulBuild/findbugsResult/" target="_blank">Findbugs report of latest build</a></b> -
 <b><a href="https://builds.apache.org/analysis/dashboard?id=org.apache.poi%3Apoi-parent&did=1" target="_blank">Sonar reports</a></b> -
 <b><a href="lastSuccessfulBuild/artifact/build/coverage/index.html" target="_blank">Coverage of latest build</a></b>
 </p>
-'''))
+'''
+
+def shellCmdsUnix =
+'''# show which files are currently modified in the working copy
+svn status
+
+# print out information about which exact version of java we are using
+echo Java-Home: $JAVA_HOME
+ls -al $JAVA_HOME/
+$JAVA_HOME/bin/java -version
+
+POIJOBSHELL
+
+# ignore any error message
+exit 0'''
+
+def shellCmdsWin =
+'''@echo off
+:: show which files are currently modified in the working copy
+svn status
+
+:: print out information about which exact version of java we are using
+echo Java-Home: %JAVA_HOME%
+dir "%JAVA_HOME:\\\\=\\%"
+"%JAVA_HOME%/bin/java" -version
+
+POIJOBSHELL
+
+:: ignore any error message
+exit /b 0'''
+
+poijobs.each { poijob ->
+    def jdkKey = poijob.jdk ?: defaultJdk
+    def trigger = poijob.trigger ?: defaultTrigger
+    def email = poijob.email ?: defaultEmail
+    def slaves = poijob.slaves ?: defaultSlaves + (poijob.slaveAdd ?: '')
+    def antRT = defaultAnt + (poijob.windows ? ' (Windows)' : '')
+
+    job(poijob.name) {
+        if (poijob.disabled) {
+            disabled()
+        }
+
+        description( defaultDesc + (poijob.apicheck ? apicheckDesc : sonarDesc) )
         logRotator {
             numToKeep(5)
             artifactNumToKeep(1)
@@ -180,33 +215,7 @@ for more details about the DSL.</b>
             scm(trigger)
         }
 
-               def shellCmdsUnix =
-'''# show which files are currently modified in the working copy
-svn status
-
-# print out information about which exact version of java we are using
-echo Java-Home: $JAVA_HOME
-ls -al $JAVA_HOME/
-$JAVA_HOME/bin/java -version
-'''+(poijob.shell ?: '')+
-'''# ignore any error message
-exit 0'''
-
-               def shellCmdsWin =
-'''@echo off
-:: show which files are currently modified in the working copy
-svn status
-
-:: print out information about which exact version of java we are using
-echo Java-Home: %JAVA_HOME%
-dir "%JAVA_HOME%"
-"%JAVA_HOME%/bin/java" -version
-'''+(poijob.shell ?: '')+
-'''
-:: ignore any error message
-exit 0'''
-
-        def shellcmds = (poijob.windows) ? shellCmdsWin : shellCmdsUnix
+        def shellcmds = (poijob.windows ? shellCmdsWin : shellCmdsUnix).replace('POIJOBSHELL', poijob.shell ?: '')
 
         // Create steps and publishers depending on the type of Job that is selected
         if(poijob.maven) {