Сохранение артефактов для максимального количества сборок - PullRequest
0 голосов
/ 25 мая 2018

Я использую версию Artifactory с открытым исходным кодом вместе с Jenkins. Мы переносим сборки из Jenkins в Artifactory с информацией о сборке, как показано ниже.

 def server = Artifactory.server('Artifactory_Server')  
 def targetArtifact = "Repo/${RepoName}/${archivePath}.zip" 

                        def uploadSpec = """{
                        "files": [
                                {
                                    "pattern": "${archivePath}.zip",            
                                    "target":  "${targetArtifact}"                              
                                }
                            ]
                            }"""    
def buildInfo = Artifactory.newBuildInfo()
buildInfo.retention maxBuilds: 2, maxDays: 2, doNotDiscardBuilds: ["5"], deleteBuildArtifacts: true                         

buildInfo.env.capture = true        

server.upload(uploadSpec)
server.publishBuildInfo(buildInfo)  

Сборки не удаляются и не удаляются при публикации информации о сборке на сервере Artifactory.Что нужно сделать для удаления билдов

1 Ответ

0 голосов
/ 27 февраля 2019

Для тех, кто находит этот вопрос, я слышал, что настройки сохранения сборки работают только в профессиональной версии Artifactory.Я не проверял, чтобы он не работал бесплатно, но я проверял следующие работы jenkinsfile, как и ожидалось при использовании с Pro Artifactory:

node {
    // Obtain an Artifactory server instance, defined in Jenkins --> Manage:
    def server = Artifactory.server SERVER_ID
    def buildInfo = Artifactory.newBuildInfo()

    stage ('Collect env vars') {
        // By default the filter is configured to exclude "*password*,*secret*,*key*"
        buildInfo.env.filter.addInclude("*")
        buildInfo.env.filter.addExclude("DONT_COLLECT*")

        withEnv(['DO_COLLECT_FOO=BAR', 'DONT_COLLECT_FOO=BAR']) {
            buildInfo.env.collect()
        }
    }

    stage ('Access build info env vars') {
        echo buildInfo.env.vars['DO_COLLECT_FOO']   //BAR
        echo buildInfo.env.vars['DONT_COLLECT_FOO'] //null
    }

    stage ('Set build retention') {
        buildInfo.retention maxBuilds: 1, maxDays: 2, doNotDiscardBuilds: ["3"], deleteBuildArtifacts: true
    }

    stage ('Publish build info') {
        server.publishBuildInfo buildInfo
    }
}

Это со страницы примеров JFrog github

Еще один важный момент заключается в том, что эти правила хранения, по-видимому, относятся к метаданным (json-файлам, которые хранятся в artifactory-build-info ), а не к артефактам сборки.

Может также стоить проверить, что пользователь, настроенный в плагине Artifactory, имеет достаточные разрешения в Artifactory для выполнения очистки.Это можно сделать в Artifactory, выбрав: Artifacts -> Artifactory Repository Browser -> artifactory-build-info -> Effective Permissions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...