如何在jenkins中将输出从一个管道传递到另一个管道
我是Jenkins的新手,我的任务是将输出从一个管道传递到另一个管道 假设第一个管道有一个脚本,上面写着echo HelloWorld,我如何将这个输出传递给另一个管道,以便它显示相同的内容如何在jenkins中将输出从一个管道传递到另一个管道,jenkins,parameters,jenkins-pipeline,Jenkins,Parameters,Jenkins Pipeline,我是Jenkins的新手,我的任务是将输出从一个管道传递到另一个管道 假设第一个管道有一个脚本,上面写着echo HelloWorld,我如何将这个输出传递给另一个管道,以便它显示相同的内容 我已经看过了参数化触发器和其他几个答案,但我希望有人能给我安排一步一步的过程。如果你想纯粹用Jenkins管道代码实现它-我要做的是有一个orchestrator管道作业来构建我流程中的所有管道作业,等待它们完成,然后获取内部版本号: 编排器作业 def result = build job: 'jobA'
我已经看过了参数化触发器和其他几个答案,但我希望有人能给我安排一步一步的过程。如果你想纯粹用Jenkins管道代码实现它-我要做的是有一个orchestrator管道作业来构建我流程中的所有管道作业,等待它们完成,然后获取内部版本号: 编排器作业
def result = build job: 'jobA'
def buildNumber = result.getNumber()
echo "jobA build number : ${buildNumber}"
step([$class : 'CopyArtifact',
filter : 'results.properties',
flatten : true,
projectName: 'jobA',
selector : [$class : 'SpecificBuildSelector',
buildNumber: buildNumber.toString()]])
在每个作业(如“jobA”)中,我安排将输出写入一个已知文件(例如属性文件),然后将其存档:
jobA
writeFile encoding: 'utf-8', file: 'results.properties', text: 'a=123\r\nb=foo'
archiveArtifacts 'results.properties'
然后,在构建每个作业(如jobA)后,使用构建编号并使用复制工件插件将文件返回到orchestrator作业中,并按照您的意愿进行处理:
编排器作业
def result = build job: 'jobA'
def buildNumber = result.getNumber()
echo "jobA build number : ${buildNumber}"
step([$class : 'CopyArtifact',
filter : 'results.properties',
flatten : true,
projectName: 'jobA',
selector : [$class : 'SpecificBuildSelector',
buildNumber: buildNumber.toString()]])
您会发现这些插件非常有用:
如果您正在链接作业而不是使用编排器(例如jobA构建jobB构建jobC等),那么您可以使用类似的方法。CopyArtifacts可以从上游作业复制,也可以传递带有上游作业的生成编号和名称的参数。在从链式作业更改后,我选择使用orchestrator作业,因为我需要并行生成一些作业。如果您想纯粹使用Jenkins管道代码实现它,我要做的是使用orchestrator管道作业来生成我流程中的所有管道作业,等待它们完成,然后获取生成编号: 编排器作业
def result = build job: 'jobA'
def buildNumber = result.getNumber()
echo "jobA build number : ${buildNumber}"
step([$class : 'CopyArtifact',
filter : 'results.properties',
flatten : true,
projectName: 'jobA',
selector : [$class : 'SpecificBuildSelector',
buildNumber: buildNumber.toString()]])
在每个作业(如“jobA”)中,我安排将输出写入一个已知文件(例如属性文件),然后将其存档:
jobA
writeFile encoding: 'utf-8', file: 'results.properties', text: 'a=123\r\nb=foo'
archiveArtifacts 'results.properties'
然后,在构建每个作业(如jobA)后,使用构建编号并使用复制工件插件将文件返回到orchestrator作业中,并按照您的意愿进行处理:
编排器作业
def result = build job: 'jobA'
def buildNumber = result.getNumber()
echo "jobA build number : ${buildNumber}"
step([$class : 'CopyArtifact',
filter : 'results.properties',
flatten : true,
projectName: 'jobA',
selector : [$class : 'SpecificBuildSelector',
buildNumber: buildNumber.toString()]])
您会发现这些插件非常有用: