Как загрузить версии моментальных снимков артефакта сборки в хранилище Gradle в Artifactory - PullRequest
0 голосов
/ 27 марта 2019

Я использую плагин Jenkins-Artifactory для развертывания файла JAR в репозитории в Artifactory. Используемый инструмент сборки является gradle. Похоже, что этот процесс не поддерживает несколько версий артефакта jar с метками времени.

Хранилище использует макет «gradle-default». Поведение версии снимка Maven было установлено как «Уникальный». Максимальное количество уникальных снимков установлено на 30.

Я использую rtUpload и rtPublishBuildInfo для загрузки jar и соответствующей информации о сборке в Artifactory.

Я вижу несколько версий buildinfo в репозитории 'artifactory-build-info' в формате BUILDNUMBER_TIMESTAMP.json Однако jar приложения каждый раз перезаписывается с именем appname-VERSION.jar, поэтому в репо сохраняется только последняя версия.

Я попытался изменить поведение версии снимка Maven на «Неуникальный» и добавить «SNAPSHOT» в строку версии. Это не решило проблему

код конвейера для загрузки артефактов

// upload build artifacts to artifact repository
        stage('publish to artifactory') {
          steps {
            rtUpload (
                serverId: "ARTIFACTORY_SERVER_ID",
                spec:
                  """{
                    "files": [
                      {
                        "pattern": "kotlin-source/build/libs/appname-*.jar",
                        "target": "gradle-dev-local"
                      }
                    ]
                  }""",
                failNoOp: true,
            )
          }
        }
        stage ('Publish build info') {
           steps {
              rtPublishBuildInfo (
                serverId: "ARTIFACTORY_SERVER_ID",
               )
           }
        }

ожидается, что в репозитории будет присутствовать несколько артефактов с добавленной к имени меткой времени. Под репо видна только одна банка. После публикации артефакта существующая банка в репо перемещается в мусорную корзину

1 Ответ

2 голосов
/ 27 марта 2019

Способ работы уникальных моментальных снимков заключается в том, что для параметра задано значение UNIQUE, а макет репозитория представляет собой моментальные снимки Maven (или Gradle), а файл развертывается с версией SNAPSHOT в соответствии с макетом, Artifactory переименует его на лету, чтобы содержит уникальный идентификатор снимка Maven.

Публикация Maven позаботится о версии снимка, а Artifactory позаботится о том, чтобы сделать эти снимки уникальными (и очистить). Вам нужно только убедиться, что строка вашей версии заканчивается на -SNAPSHOT.

...