如何在jenkins中将输出从一个管道传递到另一个管道

如何在jenkins中将输出从一个管道传递到另一个管道,jenkins,parameters,jenkins-pipeline,Jenkins,Parameters,Jenkins Pipeline,我是Jenkins的新手,我的任务是将输出从一个管道传递到另一个管道 假设第一个管道有一个脚本,上面写着echo HelloWorld,我如何将这个输出传递给另一个管道,以便它显示相同的内容 我已经看过了参数化触发器和其他几个答案,但我希望有人能给我安排一步一步的过程。如果你想纯粹用Jenkins管道代码实现它-我要做的是有一个orchestrator管道作业来构建我流程中的所有管道作业,等待它们完成,然后获取内部版本号: 编排器作业 def result = build job: 'jobA'

我是Jenkins的新手,我的任务是将输出从一个管道传递到另一个管道

假设第一个管道有一个脚本,上面写着echo HelloWorld,我如何将这个输出传递给另一个管道,以便它显示相同的内容


我已经看过了参数化触发器和其他几个答案,但我希望有人能给我安排一步一步的过程。

如果你想纯粹用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()]])
您会发现这些插件非常有用:

如果您正在链接作业而不是使用编排器(例如jobA构建jobB构建jobC等),那么您可以使用类似的方法。CopyArtifacts可以从上游作业复制,也可以传递带有上游作业的生成编号和名称的参数。在从链式作业更改后,我选择使用orchestrator作业,因为我需要并行构建一些作业