2011-03-03 40 views
7

我們在項目的內部運行Hudson構建服務器。每次服務器部署新版本時,我們都會發送電子郵件。如何在電子郵件中使用Hudson「參數化構建」值

我希望這封電子郵件中包含更多信息,包括用戶名和編譯原因。

從hudsons文檔Parameterized builds,已添加文本參數的版本。我想在這裏與兩個不同的人(爲了看看有什麼效果):

在作業配置This build is parameterized我添加了以下兩個變量

Name:   USER 
Default value: userCAPITALIZED 

Name:   user 
Default value: userstandard 

parameterized settings http://justaddwater.dk/wp-content/uploads/2011/03/hudson-parameterize-settings-243x300.png見截圖。

現在,在底部的「可編輯的電子郵件通知」中,我嘗試了一切來檢索這些值。

什麼作品:所有標準哈德森構建變量的工作。像$CHANGES,$SVN_REVISION

但我已經嘗試訪問變量userUSER沒有任何運氣。這裏是什麼是不工作的清單:

subject: test of parametrized mail 1user:${env.user}, 2USER:${USER}, 3$USER, 4${ENV, USER}, 5%USER%,stop 

more tests 
${env, user} 
${env, USER} 
${ENV, user} 
${ENV, USER} 
${user} 
${USER} 
${env.user} 
${ENV.user} 
${env.USER} 
${ENV.USER} 
$user 
$USER 
%user% 
%USER% 

changes $CHANGES 
changes ${CHANGES} 
subversion revision: $SVN_REVISION 
subversion revision: ${SVN_REVISION} 

Screenshot of email configuration http://justaddwater.dk/wp-content/uploads/2011/03/hudson-email-configuration-parameters-300x171.png

這僅僅是導致一封電子郵件,內容如下所示:

test of parametrized mail 1user:${env.user}, 2USER:${USER}, 3$USER, 4${ENV, USER}, 5%USER%,stop 

more tests 
${env, user} 
${env, USER} 
${ENV, user} 
${ENV, USER} 
${user} 
${USER} 
${env.user} 
${ENV.user} 
${env.USER} 
${ENV.USER} 
$user 
$USER 
%user% 
%USER% 

changes 
changes 
subversion revision: 400 
subversion revision: 400 

正如你所看到的,只有顛覆修訂正確擴展。這項工作的變化是空的,所以忽略它。

你如何在電子郵件中定義參數?有什麼建議麼? 我使用哈德森版本1.395

+0

剛剛贏得了這個問題醫治「風滾草」徽章,無投票,答案。因此,我現在開始賞金,瞭解更多關於Hudon電子郵件配置的可能性 – 2011-03-10 18:57:20

回答

14

你需要使用一個參數,像這樣的:${ENV, var="USER"}

和「用戶」是一樣的「用戶」 - 你需要給那麼不同的名稱。

+0

非常感謝。我期待着下週的工作。 – 2011-03-12 15:01:57

+0

謝謝,它的作品就像一個魅力! – 2011-03-15 08:22:57

3

除了Rene的建議(即使用${ENV, var="USER"})之外,我相信您還需要安裝另一個plugin called 'email-ext'。 我在some other question中發現了這個信息(雖然沒有被接受的答案)。

+0

感謝您的提醒。我忘了寫這個插件是需要的(我指的是它的配置設置)。 – 2011-03-12 15:11:41

0

我知道這是一個老問題,但要求用戶輸入他們的用戶名有點多餘,並且可以被欺騙。

Hudson已經知道是誰觸發了構建(您可以在構建頁面中看到它),但它不會將其公開到變量中。有一個Job-Exporter插件可將此信息(以及更多)導出到工作區中的文件中。它將在build.user.name財產下。

從那裏,你可以使用EnvInject插件,有了這個導出屬性文件(hudsonBuild.properties)提供它,你將有一個名爲build.user.name可在電子郵件中使用的環境變量,${ENV, var="build.user.name"}

相關問題