2015-05-07 51 views
13

我正在使用Jenkins交付管道插件。我有一些手動觸發的參數化版本。如果我從項目頁面觸發構建,構建將顯示一個屏幕,其中需要定義參數(如預期的那樣)。但是,當我從Delivery Pipeline插件啓動參數化版本時,它只是在不提供屏幕的情況下啓動構建。這是奇怪的行爲,是否有可能讓管道插件顯示參數化的構建屏幕?Jenkins交付管道插件和參數化版本

感謝您的幫助!

回答

9

我一般回答這個問題。您需要使用Parameterized Trigger Plugin或使用Build Pipeline Plugin。交付管道插件的這個問題仍然由Jenkins團隊解決。有關此問題的更新,請參閱此鏈接https://issues.jenkins-ci.org/browse/JENKINS-25685。您可以瞭解何時從該鏈接中解決問題。

如果可以將它用在您的用例中,那麼您可以使用Build Pipeline插件。現在修復的Build Pipeline插件存在類似的問題。它在22天內得到修復(https://issues.jenkins-ci.org/browse/JENKINS-25427,https://github.com/jenkinsci/build-pipeline-plugin/pull/56)。您可以希望即將解決與交付管道插件相同的問題。

你能否給我提供Jenkins的版本,環境和插件版本?我可以根據你給出的答案更新我的答案。

1

當您使用交付管道插件並且您有手動觸發的參數化版本時,只要您將上游作業配置爲將參數傳遞給下游作業,當單擊「構建觸發器按鈕」時在管道視圖頁面中,參數會自動傳遞。

舉例來說,假設你有一個設置是這樣的:

Compile_Project ---> Deploy_Project 

讓我們假設你是從Compile_Project通過一個名爲versionNumber變量來Deploy_Project工作。我們還假設您使用的是您的SCM的Subversion,並且您的versionNumber看起來像1.0.${SVN_REVISION}${SVN_REVISION}由Jenkins自動提供,因此您的版本號看起來像1.0.1234,其中1234是Subversion提供的提交編號。

在您的交付管道視圖上,假設它已配置爲顯示3個管道實例,並且在視圖設置中啓用了手動觸發器。你的管道視圖頁可能是這個樣子(耶ASCII藝術!):

Compile_Project ---> Deploy_Project (>) 

Compile_Project ---> Deploy_Project (>) 

Compile_Project ---> Deploy_Project (>) 

在這種情況下,我使用(>)代表手動觸發按鈕。底部的按鈕將嘗試部署版本1.0.1234,中間的按鈕會嘗試部署版本1.0.1235,並且頂部按鈕會嘗試部署版本1.0.1236,假設您的項目已經獲得了連續的SVN提交。

爲了將參數從Compile_Project傳遞到Deploy_Project作業,您需要執行以下操作。 (注意:這聽起來像你已經完成了這部分,但是我將它包括在內以防萬一你錯過了一個步驟,並且也是爲了完整性。)

Compile_Project作業配置中,作爲構建後操作,選擇「構建其他項目(手動步驟)」。在「下游項目名稱」框中,輸入Deploy_Project,然後從「添加參數」下拉列表中選擇「預定義參數」。在出現的「參數」文本區域中,創建一個要傳遞的參數,我將調用VERSION_NUMBER。您將在文本區域輸入的內容是VERSION_NUMBER=1.0.${SVN_REVISION}。這將使參數從Compile_Project傳遞到Deploy_Project。但是,你還沒有完成。

Deploy_Project作業配置中,您需要將其設置爲接受您傳遞給作業的參數。爲此,請配置Deploy_Project,然後選中「此構建已參數化」複選框。然後從「添加參數」下拉列表中添加一個字符串參數。在「名稱」字段中,輸入VERSION_NUMBER。此時,您可以在Deploy_Project的配置中使用${VERSION_NUMBER},以便指定要部署的項目的正確版本號。