jenkins - 如何从管道中复制其他 Jenkins 作业的工件?
问题描述
我想使用 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"
])
}
}
执行“Release Installer”作业时,找不到工件。两个作业都在同一个 Build 节点上执行。
我认为我的过滤规则缺少一些东西。不幸的是,可用的 Jenkins 文档在细节和示例上有点薄。
解决方案
我相信默认是从上次成功的作业中复制。但是,您目前似乎想要上游工作。这是一个片段:
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()
推荐阅读
- swift - 如何在swift中正确调用函数中的另一个函数?
- java - 如何循环异常直到用户成功或错误
- linux - 一个进程在多长时间之前会自动死亡
- java - 在字符串数学中的数字中加一个逗号
- ethereum - web3 中的 getAccount() 在两个不同的浏览器上产生两个不同的错误
- javascript - 将 json 数据转换为 GeoJSON 数据?
- swift - SpriteKit SKScene 中的时间控制动画
- python - 从多行字符串中提取数据并将其存储在python字典中
- perl - CGI:将 STDERR 重定向到带有更改的文件
- sql - 多列检查 if 子句具有相同值的情况