You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置让每个上传到Jfrog Artifactory的构件都触发Jenkins流水线构建

解决方案

默认Artifactory轮询触发的设计逻辑为:每次轮询仅基于当前最新的构件触发一次构建,不会处理轮询周期内的所有新增构件。要实现每个上传构件对应触发一次构建,推荐以下两种方案:

方案一:改用Artifactory Webhook主动触发(最优)

放弃轮询模式,通过Artifactory的部署事件主动推送通知到Jenkins,每个构件上传都会生成独立的事件通知,天然满足每个构件触发一次构建的需求,配置步骤如下:

  • Jenkins端配置
    • 安装Generic Webhook Trigger插件
    • 进入多分支流水线配置页,开启Generic Webhook Trigger,设置自定义的唯一触发token,可按需配置从webhook payload中提取构件路径、仓库名、上传时间等参数作为流水线环境变量
  • Artifactory端配置
    • 进入管理员面板的Webhook管理页,新建webhook
    • 事件类型选择「Artifact was deployed」,配置路径过滤规则匹配你需要监控的目标仓库和路径
    • 回调URL填写:你的Jenkins服务地址/generic-webhook-trigger/invoke?token=你设置的触发token
    • 保存后上传测试构件验证触发逻辑即可

方案二:自定义轮询逻辑(仅适合必须使用轮询的场景)

如果受网络限制无法使用webhook,可以自行改造轮询逻辑替换默认的Artifact Trigger:

  • 每次轮询时调用jfrog rt s 目标路径 --sort-by created命令拉取目标路径下的所有构件列表
  • 本地维护一份已经触发过构建的构件清单(可以存在Jenkins构建记录或者专用缓存文件中)
  • 比对拉取到的构件列表和历史清单,对所有新增的构件逐个调用流水线构建方法触发任务,同时更新历史清单

注意事项

  • 无论使用哪种方案,都建议增加构件幂等校验逻辑:可以把已经触发过的构件SHA256值或者完整路径存入缓存,每次触发前先校验,避免网络重试、规则误匹配导致的重复构建
  • 多分支流水线场景下,建议在Artifactory路径过滤规则中增加分支名匹配规则,避免不同分支的构件交叉触发错误的流水线任务

内容的提问来源于stack exchange,提问作者Jose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:45:10