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

Jenkins Pipeline多仓库制品的Artifactory交互式晋升问题

解决Jenkins Pipeline + Artifactory交互式晋升多仓库场景问题

我之前也踩过这个一模一样的坑!咱们这种同时往不同类型仓库发布包(NuGet到NuGet仓库、Zip到通用仓库)的场景,默认的单仓库晋升逻辑确实搞不定,正好对应你看到的Artifactory文档里提到的多仓库处理方法——用multiPromotion就能完美解决。

核心思路

Artifactory的multiPromotion方法支持传入一组晋升配置,每个配置对应一个仓库的迁移规则,这样就能分别处理NuGet包到release-nuget、Zip包到generic-release的晋升需求。

具体实现步骤

  1. 先理清原单仓库晋升的局限
    原来的单仓库晋升配置大概是这样的,只能处理单个仓库的迁移:

    def promotion = new artifactoryPromotion()
    promotion.setBuildName("your-product-build")
    promotion.setBuildNumber("${BUILD_NUMBER}")
    promotion.setTargetRepo("single-release-repo")
    // 其他配置如状态、备注等
    artifactory.promote(promotion)
    

    这种写法没法同时映射两个不同的源/目标仓库,所以得重构配置逻辑。

  2. 构建多仓库晋升配置列表
    给每种包类型单独创建晋升配置,然后放到列表里交给multiPromotion执行:

    // 初始化晋升配置列表
    def multiPromotionConfigs = []
    
    // 配置NuGet包的晋升规则
    def nugetPromo = new artifactoryPromotion()
    nugetPromo.setBuildName("your-product-build")
    nugetPromo.setBuildNumber("${BUILD_NUMBER}")
    nugetPromo.setSourceRepo("your-dev-nuget-repo") // 必须指定源仓库,避免包混淆
    nugetPromo.setTargetRepo("release-nuget")
    nugetPromo.setStatus("Released")
    nugetPromo.setComment("交互式晋升NuGet包至正式仓库")
    multiPromotionConfigs.add(nugetPromo)
    
    // 配置Zip包的晋升规则
    def zipPromo = new artifactoryPromotion()
    zipPromo.setBuildName("your-product-build")
    zipPromo.setBuildNumber("${BUILD_NUMBER}")
    zipPromo.setSourceRepo("your-dev-generic-repo")
    zipPromo.setTargetRepo("generic-release")
    zipPromo.setStatus("Released")
    zipPromo.setComment("交互式晋升Zip包至正式仓库")
    multiPromotionConfigs.add(zipPromo)
    
    // 保留交互式触发逻辑:先让用户确认再执行晋升
    input message: "确认执行多仓库晋升操作?", ok: "立即晋升"
    artifactory.multiPromotion(multiPromotionConfigs)
    
  3. 关键注意事项

    • 必须给每个晋升配置指定sourceRepo:Artifactory需要明确从哪个仓库抓取对应类型的包,否则可能出现包错配的情况
    • 确保Jenkins Artifactory插件版本≥3.10.0:旧版本可能没有multiPromotion方法,升级插件后再测试
    • 交互式逻辑保留:用input步骤让用户确认后再执行晋升,完全匹配你的交互式需求

补充:你看到的Artifactory文档里提到的“mult...方法”就是这个multiPromotion,它专门用来处理多仓库、多构建的批量晋升场景,刚好适配咱们的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:29:05