如何从管道中复制其他Jenkins Job的工件?

时间:2018-12-17 17:45:09

标签: jenkins jenkins-pipeline

我想使用CopyArtifact插件从另一个Jenkins Job复制构建工件。

使用以下命令创建工件:

archiveArtifacts artifacts: '_Builds/BuildRelease/**', fingerprint: true
build 'Release Installer'

在“发布安装程序”作业中,我尝试获取已归档的工件 在管道中使用以下命令:

  stages {
    stage('Get Artifacts') {
        steps {
            step([  $class: 'CopyArtifact',
                    projectName: "MyBuildJob",
                    filter: "_Builds/BuildRelease/archive.zip"
            ])
        }
    }

执行“发布安装程序”作业时,找不到工件。 这两个作业都在同一Build节点上执行。

我认为我的过滤器规则缺少某些内容。不幸的是,可用的Jenkins文档在细节和示例上都有些薄。

1 个答案:

答案 0 :(得分:1)

我认为默认设置是从上一个成功的作业进行复制。但是,您当前似乎需要上游作业。这是一个片段:

copyArtifacts fingerprintArtifacts: true, projectName: 'MyBuildJob', selector: upstream()

我使用代码段生成器生成了此代码。它应该存在于作业经典视图的左侧面板上。按钮文字显示为“管道语法”,网址为“ my.jenkins.instance.com/pipeline-syntax /”

不需要指定工件过滤器,它将复制所有过滤器。但是,如果要保留过滤器:

copyArtifacts filter: '_Builds/BuildRelease/archive.zip', fingerprintArtifacts: true, projectName: 'MyBuildJob', selector: upstream()