我是Jenkins的新手,我的任務是將輸出從一個管道傳遞到另一個管道。如何將輸出從一個管道傳遞到另一個管道
可以說第一個管道有一個腳本說echoHowWorld,我怎麼會把這個輸出傳遞給另一個管道,所以它顯示的是同樣的東西。
我看過參數化觸發器和其他答案,但我希望如果有人可以佈置一步一步的過程給我。
我是Jenkins的新手,我的任務是將輸出從一個管道傳遞到另一個管道。如何將輸出從一個管道傳遞到另一個管道
可以說第一個管道有一個腳本說echoHowWorld,我怎麼會把這個輸出傳遞給另一個管道,所以它顯示的是同樣的東西。
我看過參數化觸發器和其他答案,但我希望如果有人可以佈置一步一步的過程給我。
如果你想純粹與詹金斯管道代碼來實現它 - 我做的是有一個生成所有管道的工作在我的過程中的協調器管道的工作,等待他們完成然後得到的內部版本號:
Orchestrator的工作
def result = build job: 'jobA'
def buildNumber = result.getNumber()
echo "jobA build number : ${buildNumber}"
在像說每個作業「職吧」我安排將輸出寫入到已知的文件(屬性文件例如),然後將其存檔:
職吧
writeFile encoding: 'utf-8', file: 'results.properties', text: 'a=123\r\nb=foo'
archiveArtifacts 'results.properties'
接着後每個作業的構建如jobA,使用構建號並使用Copy Artifacts插件將文件恢復到您的協調器作業並進行處理,但需要:
Orchestrator的工作
step([$class : 'CopyArtifact',
filter : 'results.properties',
flatten : true,
projectName: 'jobA',
selector : [$class : 'SpecificBuildSelector',
buildNumber: buildNumber.toString()]])
你會發現看有用的這些插件:
如果您鏈接的工作,而不是使用Orchestrator的 - 說jobA構建jobB構建jobC等 - 然後您可以使用類似的方法。 CopyArtifacts可以從上游作業複製,也可以使用上游作業的內部版本號和名稱傳遞參數。因爲我需要並行構建一些作業,所以在從鏈接作業更改後選擇使用編排器作業。