Groovy - Невозможно загрузить артефакт в JFrog Artifactory - PullRequest
0 голосов
/ 24 апреля 2019

В приведенном ниже коде:

def server = Artifactory.server 'server_id';

def uploadSpec = """{
                "files": [{
                    "pattern": "${WORKSPACE}/$repoName/target/$repoName-0.1-$jarType.jar",
                    "target": "libs-release-local/a/b/c/"
                    }
                    ]
            }"""

server.upload(uploadSpec)    

server.upload(uploadSpec) не создает путь к хранилищу a/b/c в libs-release-local при первом запуске


Jenkins подключается к Artifactory с правами администратора

1) Почему приведенный выше код не создает путь к хранилищу для загрузки артефакта в Artifactory?

2) Использует ли server.upload JFrog cli?

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

1) Путь будет создаваться в хранилище, только если загружен артефакт.Если ошибка не возникла и путь не был создан, я предполагаю, что шаблон не нашел совпадений и не было загружено никаких артефактов.

Что касается вашего комментария, вы можете диагностировать проблему, установив для failNoOp значение true, что приведет к сбою сборки, если файлы не затронуты:

server.upload(uploadSpec, true) 

Вывод на консоль также будет содержать строку «Развертывание артефакта: / путь / к / артефакту» для каждого загруженного артефакта.

2) Нет, плагин Jenkins Artifactory вообще не использует интерфейс командной строки JFrog.

0 голосов
/ 26 апреля 2019

вы можете использовать REST API jfrog для этого: https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API

и использовать curl для помещения вашего артефакта.

например.

sh("curl -u username:password@ -X PUT \"${mavenRepo}/${relativeMavenPath}/${serviceName}/${serviceTag}/${serviceName}-${serviceTag}.jar\" -T services.jar")
...