如何在Jenkins流水线中成功发布PNG制品?
Jenkins构建成功后归档制品的正确配置
你当前的归档阶段配置存在两个核心问题导致失效:
archive指令未包裹在steps代码块内,Jenkins流水线语法要求stage内的执行步骤必须放在steps块中- 路径
/*.png是系统根路径,大概率和你的实际制品生成路径不匹配
下面是两种可行的修正方案:
方案1:新增独立归档阶段(仅构建成功时执行)
pipeline { agent any stages { stage('Build') { steps { sh 'make' } } stage('Test') { steps { sh 'make test' } } stage('Archive Artifacts') { // 仅当前面所有阶段执行成功时,才运行此归档阶段 when { success() } steps { // 用**/*.png匹配所有目录下的PNG文件,可根据实际路径调整 archiveArtifacts includes: '**/*.png' // 注意:新版Jenkins推荐使用archiveArtifacts指令,旧版archive已逐步废弃 } } } }
方案2:使用post阶段归档(更贴合"构建成功后"语义)
将归档操作放在post的success块中,这种方式专门用于构建完成后的收尾动作,逻辑更清晰:
pipeline { agent any stages { stage('Build') { steps { sh 'make' } } stage('Test') { steps { sh 'make test' } } } post { success { // 替换为你实际的制品路径,比如build/output/*.png archiveArtifacts includes: '**/*.png' } } }
关键提示
- 必须根据本地代码构建后制品的实际存放路径,调整
includes中的匹配规则 - 若需要归档多种类型文件,可使用逗号分隔,比如
**/*.png, **/*.jar
内容的提问来源于stack exchange,提问作者Anshika Gupta
相关产品推荐
相关产品推荐

