2012-07-05 75 views
0

假設我在jenkins/hudson中有一個maven2/3項目,並且之前我在相應的config.xml文件中配置的maven項目上運行了一些目標,我想運行一個系統groovy腳本(參考系統groovy插件)如果滿足某些條件(例如,我在前一個作業的日誌文件中找到了某些內容),則在預處理過程中中斷整個作業並將其設置爲SUCCESS。 我不想讓MAVEN開始執行目標如何讓prestep系統的groovy腳本中斷jenkins的構建並將其設置爲SUCCESS?

我已經試過

import hudson.model.* 
def thr = Thread.currentThread() 
def build = thr?.executable 
build.executor.interrupt(hudson.model.Result.SUCCESS) 
out.print "HELLO" 

但沒有任何反應,甚至 「HELLO」,印在日誌中。但是這個構建會被取消。

Parsing POMs 
Discovered a new module ... 
Modules changed, recalculating dependency graph 
... 
...jdk1.6.0_22/bin/java -Xmx512m -cp ... 
<===[JENKINS REMOTING CAPACITY]===>Build was aborted 

謝謝你的時間。

回答

0

我不完全理解,你想要什麼,因爲你在這裏描述了一些解決方案,而不是你確切的問題。我知道三個插件,它可以爲你的問題也是有用的:

  • Fail the build插件可以讓你設置工作的結果,並停止進一步的處理。任何狀態都可以設置,包括成功。
  • Conditional build step插件允許您爲子構建步驟定義條件。如果條件得到滿足,孩子(ren)將會跑步。
  • m2 extra build steps - 讓你在jenkins的maven工作中maven構建之前或之後運行構建步驟。請注意,最近,這個插件是核心jenkins的一部分。 enter image description here

所以基本思路是,你可以添加條件生成步驟,在您的工作預生成步驟,和孩子步驟可以是一個失敗,構建實例。看到下面的圖片:

+1

這似乎不工作作爲一個構建狀態SUCCESS不會跳過Maven構建部分。它仍然被執行。 – Florian 2014-02-15 14:29:04

+0

嗯。此前它停止了這項工作。也許它會改變構建插件的失敗。謝謝(你的)信息。 – 2014-02-16 20:06:47

相關問題