如何在Jenkins上游任务中展示下游任务生成的artifacts
Jenkins上游任务直接展示下游制品的操作方案
方案1:启用制品指纹关联(无额外插件依赖,适配自由风格任务)
- 上下游任务均开启制品指纹追踪:进入任务配置页 → 找到「构建后操作」板块 → 勾选「记录 fingerprints 以追踪构件使用情况」,下游任务的归档制品配置需同步开启指纹记录
- 上游触发下游的配置中勾选「等待下游任务完成」:如果使用
Trigger/call builds on other projects构建步骤,需同时打开「等待下游构建完成」「传播下游构建结果」两个开关 - 配置生效后,上游构建详情页会自动生成「下游构建」卡片,卡片内直接展示下游所有归档制品的访问入口,无需跳转下游任务页面
方案2:通过Description Setter插件自定义上游页面展示(展示效果更直观)
- 先安装
Description Setter插件,重启Jenkins后生效 - 上游任务触发下游后,新增Shell/Windows命令执行步骤,提取下游构建编号、制品地址写入临时文件,示例命令:
echo "下游构建 #${DOWNSTREAM_BUILD_NUMBER} 制品:<a href='${JENKINS_URL}/job/下游任务名称/${DOWNSTREAM_BUILD_NUMBER}/artifact/目标制品文件名'>点击下载</a>" > artifact_link.txt
- 添加上游构建后操作「Set build description」,在「Description file」字段填入
artifact_link.txt,同时勾选「Expand description and format as HTML」选项 - 保存配置后,每次上游构建完成,构建描述栏会直接展示可点击的制品下载链接
方案3:Pipeline任务专属实现(灵活度最高)
如果上游任务为Pipeline类型,可直接在Jenkinsfile中嵌入下游触发和制品展示逻辑,示例代码片段:
pipeline { agent any stages { stage('触发下游构建') { steps { script { // 触发下游任务并等待执行完成 def downstreamBuild = build job: '下游任务名称', parameters: [ string(name: '自定义参数1', value: params.自定义参数1), // 其余需要传递的参数按格式补充 ], wait: true // 把下游制品地址写入当前上游构建的描述字段 currentBuild.description = """ 下游构建详情:<a href="${downstreamBuild.absoluteUrl}">${downstreamBuild.displayName}</a><br> 制品下载入口:<a href="${downstreamBuild.absoluteUrl}artifact/目标制品文件名">点击下载</a> """ } } } } }
注意:如果配置完成后页面仅显示HTML源码、不渲染可点击链接,进入「Manage Jenkins」→「Security」→「Markup Formatter」,选择「Safe HTML」后保存即可生效。
内容的提问来源于stack exchange,提问作者kutschkem
相关产品推荐
相关产品推荐

