2016-09-20 37 views
0

我們正在使用一個Jenkins構建管道來調用一些Jenkins作業。我試圖弄清楚如何設置一個變量作爲Jenkins作業的一部分(每次運行都可以理論上將這個變量設置爲獨特的東西)。第一個問題是我不確定如何設置這樣的變量作爲第一份工作的一部分。其次是我不確定如何通過Groovy腳本從流水線上的作業中提取該變量。如何設置Jenkins在作業中創建參數並傳遞到下一個管道階段

例子是:

node { 
    stage 'First Job' 
    //I want to set a parameter as part of the build steps in this job 
    build 'first-job' 
    stage 'Second Job' 
    //I want the variable set in the first job passed in here 
    build job: 'second-job', parameters: [string(name: 'FOO', value: myParam) 
} 
+0

您可以從「第一份工作」中獲取參數,而不是傳遞給「第二份工作」。看看我的例子http://stackoverflow.com/a/38101073 – anton

回答

0

我不認爲你可以做到這一點很容易,因爲它不是真正的流水線理念。

使用舊自由泳項目中,你會鏈接你的工作,如:

Main job -> First job -> Second job 

...通過建立從上游作業參數到下游的工作每次。

然而,pipelines philosphy是完全不同的,旨在將所有複雜的工作流視爲單一管道。爲了保持乾淨,你可以加載函數,並且傳遞和獲取變量變得非常簡單。

實施例:

node { 
    def functions = load 'functions.groovy' 

    stage 'First part' 
    def outputParamOfPart1 = functions.function1(yourParameter) 

    stage 'Second part' 
    def outputParamOfPart2 = functions.function2(outputParamOfPart1) 
} 

等。我認爲你應該重新思考你對待不同工作的方式。如果你絕對需要將你的工作保持爲獨立工作,而不是一些管道功能,那麼你總是可以看看詹金斯的全球房產。

相關問題