首页 > 解决方案 > 在 Jenkins 构建管道中下载工件

问题描述

我目前正在学习使用 Jenkins 构建管道。我有一个管道,我在其中存档构建的工件,如下所示:

stage("Build") { gitlabCommitStatus(name: "Build") {
    /*Build my program and zip it*/
    archiveArtifacts artifacts: 'Debug.7z', onlyIfSuccessful: true
}}

现在我想在另一个管道中使用这个工件,但是我找不到将存档的工件下载到我的新管道中的命令。请注意,我不想在另一个阶段使用工件,而是在不同构建项目的完全不同的管道中使用。

标签: jenkins

解决方案


您需要安装Copy Artifact插件才能正常工作。在要复制工件的作业中,使用以下代码:

pipeline {
    stages {
        stage ('Copy Build Artifact') {
            steps {
                echo 'Copying artifact from projectA'
                copyArtifacts(projectName: 'projectA', filter:'Debug.7z', optional: true);
                // OR
                // copyArtifacts(projectName: 'projectA', filter:'Debug.7z', selector: specific('5'), optional: true);
            }
        }
    }
}

在哪里:

selector:选择器来选择要从中复制的构建。如果未指定,则使用最新的稳定版本

optional:即使没有找到合适的构建,也不要失败该步骤


推荐阅读