如何在Jenkins远程参数化构建中配置Copy Artifact参数?
Jenkins API触发构建并设置Copy Artifact参数的格式问题
常规触发Jenkins构建的API调用格式如下:
https://my.jenkins/jenkins/buildByToken/buildWithParameters?job=my-job&token=my-token&PARAM1=my-param-value&PARAM2=my-param-value
但当需要设置从指定构建复制工件的参数时,对应的API格式是什么?目前尝试的所有格式都返回500错误,且Copy Artifact插件文档仅说明UI和流水线中的用法,未提及API调用方式。能否从流水线示例推导出API调用格式?
从流水线示例推导API参数格式
如果你的流水线任务是通过参数控制Copy Artifact行为的,可直接将这些参数作为API的查询参数传递:
- 先在流水线中定义用于控制Copy Artifact的参数:
pipeline { parameters { string(name: 'COPY_FROM_JOB', description: '要复制工件的源任务名称') string(name: 'COPY_FROM_BUILD', description: '源任务的目标构建号') } stages { stage('复制工件') { steps { copyArtifacts( projectName: params.COPY_FROM_JOB, selector: specific(params.COPY_FROM_BUILD) ) } } } }
- 对应的API调用格式:
https://my.jenkins/jenkins/buildByToken/buildWithParameters?job=my-job&token=my-token©_FROM_JOB=upstream-job©_FROM_BUILD=123
自由风格项目的处理方式
如果是自由风格项目,需要先在项目中添加字符串类型的构建参数(比如UPSTREAM_JOB和UPSTREAM_BUILD),然后在Copy Artifact构建步骤的配置中,用${参数名}的方式引用这些参数(例如源任务填${UPSTREAM_JOB},构建号填${UPSTREAM_BUILD}),之后API调用时直接传递这些参数即可:
https://my.jenkins/jenkins/buildByToken/buildWithParameters?job=my-job&token=my-token&UPSTREAM_JOB=upstream-job&UPSTREAM_BUILD=123
500错误排查提示
出现500错误大概率是参数名称不匹配、参数值无效(比如构建号非数字、源任务不存在),可以查看Jenkins服务器日志定位具体错误原因。
内容的提问来源于stack exchange,提问作者pmext
相关产品推荐
相关产品推荐

