Artifactory提升了建物保留

时间:2019-04-25 20:35:15

标签: jenkins artifactory

我的团队最近开始使用Jenkins Artifactory插件的交互式促销功能,从build-outputqa-ready开始。我在底部包含了我们的上传脚本,以供参考。这是处理我们促销过程的简单有效的方法。一般而言,我们还是Artifactory的新手。

我们使用的构建保留政策可按预期在build-output上使用。但是,升级到qa-ready的内部版本在qa-ready中一次都没有建立保留策略,因此它们会不断堆积直到有人手动将其删除。根据文档,没有直接的方法通过addInteractivePromotion命令,但是有没有其他方法可以在新位置上的已升级构建中实施构建保留策略?

我们正在使用Artifactory Pro 6.5.3。

void uploadToArtifactory(String fileFullPath) {
    //build retention
    def buildInfo = Artifactory.newBuildInfo()
    buildInfo.retention maxBuilds: 5, deleteBuildArtifacts: true

    def artifactory_server = Artifactory.server 'artifactory'
    def upload_spec = """{
        "files":[
            {
                "pattern": \"""" + fileFullPath + """\",
                "target": \"build-output/${ProductVersion}/\",
                "regexp": "true"
            }
        ]
    }"""
    def promotion_config = [
        'buildName': buildInfo.name,
        'buildNumber': buildInfo.number,
        'targetRepo': 'qa-ready'
    ]

    Artifactory.addInteractivePromotion(server: artifactory_server, promotionConfig: promotion_config)
    artifactory_server.upload(upload_spec, buildInfo)
    artifactory_server.publishBuildInfo(buildInfo)
}

1 个答案:

答案 0 :(得分:0)

我也遇到过类似的问题。我们正在使用Jenkins上载到工件。

人工保留会忽略/丢弃使用api提升的所有构建。

这可以在日志中看到。我认为构建放弃策略没有某种选项可以设置升级状态,将其视为删除对象

我已经编写了一个python脚本,该脚本随后使用aql列出基于正则表达式的所有存储库,忽略已发布的工件,您可以根据编号设置删除。天。