2010-12-19 53 views

回答

3

在電子郵件通知中使用環境變量(或任何變量)的最簡單方法是使用Email-ext plugin

檢查他們的「內容令牌參考」的具體細節,但總之你會得到更復雜的替代。下面是我經常使用的幾個:

  • $ {ENV,var} - 顯示環境 變量。
  • $ {BUILD_LOG_REGEX,regex,linesBefore,linesAfter,maxMatches,showTruncatedLines} - 顯示構建日誌中與正則表達式匹配的行。
  • $ {CHANGES_SINCE_LAST_SUCCESS,reverse,format,showPaths,changesFormat,pathFormat} - 顯示自上次成功構建以來的更改。
  • $ {FAILED_TESTS} - 顯示失敗的單元測試信息,如果有任何測試失敗。

該插件可以很容易地在Hudson配置中定義一個基礎「全局」模板,然後在作業配置中「擴展」該模板 - 添加額外的細節。它還允許您根據構建狀態/結果更細化地路由通知。

+0

我使用該插件解析它在電子郵件。重點是另一個允許我添加env變量的插件似乎並不是將該值「導出」到電子郵件插件中。 – Tim 2010-12-21 19:02:25

+0

我猜SetEnv-plugin的實現將變量注入每個構建步驟(Hudson爲每個構建步驟使用一個新的外殼)。由於Email-ext沒有創建單獨的shell,因此我並不期望Email-ext插件具有其他環境變量。可能是一個有趣的插件功能要求。現在的問題是,什麼需要改變什麼插件,使其工作。 – 2010-12-21 19:12:48

+0

昨天我發現了一些有趣的事情 - 一個新的插件定義/要求正在制定。一個新的電子郵件插件,以取代核心和電子郵件插件。我添加了訪問env vars的請求。 (http://wiki.hudson-ci.org/display/HUDSON/The+new+EMailer) – Tim 2010-12-21 19:18:33

2

這是可能的了。看起來你正在使用錯誤的語法。如前所述,email-ext插件具有訪問環境變量的特定方法。嘗試把這個在電子郵件正文代替:

${ENV, var=VARNAME} 

的另一種方法是使用Hudson的執行shell功能在生成和解析它使用BUILD_LOG_REGEX爲呼應環境變量。

例如,你可以在執行shell部分有這樣的:

echo "Output: ${VARNAME}" 

,並使用

${BUILD_LOG_REGEX, regex="^Output:", showTruncatedLines=false, substText=""} 
+0

也不起作用。 – Tim 2010-12-22 13:57:45

+0

對不起,你是對的,它應該是:$ {ENV,var =「VARNAME」} – 2010-12-22 15:36:54