2014-09-25 61 views
4

作業dsl是否有辦法配置postBuildSteps,只有在構建成功時才能執行Maven作業。我看到有postSuccessfulBuildSteps只適用於發佈工作。作業DSL - 如何配置postBuildSteps Maven只有在構建成功時才啓動

+0

你實際上是說要動態地重新配置工作,而它運行?你想運行「maven」步驟,如果成功觸發dsl添加隨後運行的後續步驟? – 2015-02-17 11:10:11

+0

沒有。詹金斯只有在構建成功的情況下才提供後期構建操作的方法 – Pushkar 2015-02-24 18:09:02

+0

好吧我想我明白了;你想用Job-DSL創建一個PostBuildAction的maven作業。 PostBuildAction部分必須配置爲僅在maven步驟成功時才運行。 – 2015-02-24 23:15:54

回答

4

您必須使用「配置」塊「定製」 <runPostStepsIfResult>設置追加到config.xml中

這個工作對我來說:如果你需要添加XML

job(type: Maven) { 
    name('MyMavenJob') 
    goals('install') 

    preBuildSteps { 
     shell('#!/bin/bash\n' + 
       'echo "PRE BUILD SCRIPT"\n' + 
       'env | sort\n' + 
       'echo "PRE BUILD END"\n') 
    } 

    postBuildSteps { 
     shell('#!/bin/bash\n' + 
       'echo "POST BUILD SCRIPT"\n' + 
       'env | sort\n' + 
       'echo "POST BUILD END"\n') 
    } 

    // Append <runPostStepsIfResult> at the end of the xml 
    // (which will be just after the closing </postbuilders> tag) 
    // "it" is a groovy.util.Node representing the 
    // root <project> element of config.xml. 
    configure { it << 
     'runPostStepsIfResult' { 
      name('SUCCESS') 
     } 
    } 
} 

一般來說其不受Job DSL支持,您可以通過在Jenkins中手動配置作業來查找所需的內容,然後在Jenkins-主磁盤上查看結果​​3210。這通常位於${JENKINS_HOME}/jobs/job-name/config.xml

http://job-dsl.herokuapp.com/作業-DSL操場是測試修改,直到你得到它匹配手動設置什麼時候做詹金斯在作業/作業名稱/ config.xml文件的東西有用的地方。

+1

這很奇怪,但它不適用於'postBuilders',但開始使用'postbuilders'(小寫)。我在jenkins-1.596.2 – 2015-04-02 16:20:39

+0

@Slava上測試過它你說得對,應該是小寫,我也是1.596.2。 我注意到「Run only if build succeeded」無線電不再設置,「runPostStepsIfResult」塊實際上應該在標籤之後附加,而不是在它之後。我已經相應地修改了這個例子。 – 2015-04-11 12:58:17

1

這工作:

postBuildSteps("SUCCESS") { 
    ... 
} 
+0

這是2017年的正確答案。 – 2017-10-16 13:06:52

相關問題