我是Jenkins的新手,我的任务是将输出从一个管道传递到另一个管道。
让我们说第一个管道有一个脚本,上面写着echo HelloWorld,我如何将这个输出传递给另一个管道,所以它显示相同的东西。
我已经查看了参数化触发器和其他几个答案,但我希望有人能够将逐步程序布局给我。
答案 0 :(得分:0)
在下方找到有解决问题的分步指南。
https://www.javacodegeeks.com/2013/02/jenkins-hierarchical-jobs-and-jobs-status-aggregation.html
插件:https://wiki.jenkins-ci.org/display/JENKINS/Multijob+Plugin
答案 1 :(得分:0)
如果你想纯粹使用Jenkins管道代码实现它 - 我所做的是有一个orchestrator管道作业,它在我的进程中构建所有管道作业,等待它们完成然后获取构建号:
Orchestrator工作
def result = build job: 'jobA'
def buildNumber = result.getNumber()
echo "jobA build number : ${buildNumber}"
在每个工作中,例如' jobA ',我安排将输出写入已知文件(例如属性文件),然后存档:
<强>职吧强>
writeFile encoding: 'utf-8', file: 'results.properties', text: 'a=123\r\nb=foo'
archiveArtifacts 'results.properties'
然后在构建每个作业(如 jobA )之后,使用内部版本号并使用Copy Artifacts插件将文件恢复到您的orchestrator作业中并按需要处理它:
Orchestrator工作
step([$class : 'CopyArtifact',
filter : 'results.properties',
flatten : true,
projectName: 'jobA',
selector : [$class : 'SpecificBuildSelector',
buildNumber: buildNumber.toString()]])
您会发现这些插件对于查看非常有用:
如果您正在链接作业而不是使用协调器 - 比如jobA构建jobB构建jobC等 - 那么您可以使用类似的方法。 CopyArtifacts可以从上游作业进行复制,也可以使用上游作业的内部版本号和名称传递参数。从链接作业更改后,我选择使用orchestrator作业,因为我需要并行构建一些作业。