如何将输出从一个管道传递到另一个管道
问题描述:
我是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可以从上游作业复制,也可以使用上游作业的内部版本号和名称传递参数。因为我需要并行构建一些作业,所以在从链接作业更改后选择使用编排器作业。