Загрузка сборки с использованием Artifactory REST API - PullRequest
0 голосов
/ 04 ноября 2019

У меня проблемы с выяснением, как зарегистрировать уже загруженный артефакт в сборку артефакта. Я знаю, что могу использовать конечную точку загрузки сборки артефакта, которая частично работает для меня, но просто не могу определить, какую полезную нагрузку использовать для данных JSON.

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

Это моя полезная нагрузка:

{
    "url":  "https://bamboo-ci-server-url/browse/EC-SRT0-25",
    "vcsRevision":  "14fc6dcf71bee74e328078",
    "artifactoryPrincipal":  "username",
    "version":  "4.0.0-SNAPSHOT",
    "number":  "27",
    "started":  "2019-11-04T19:49:35.471+0100",
    "name":  "SPO3.MGUI.RTEST",
    "properties":  {
                       "buildInfo.env.JAVA_HOME":  "java_home"
                   },
    "issues":  {
                   "tracker":  {
                                   "version":  "8.5.0",
                                   "name":  "JIRA"
                               },
                   "affectedIssues":  [
                                          {
                                              "url":  "https://jira-url/browse/projectkey-3433",
                                              "key":  "projectkey-3433",
                                              "summary":  "Testing snapshot builds automation"
                                          },
                                          {
                                              "url":  "https://bamboo-ci-cerver-url/browse/EC-3408",
                                              "key":  "projectkey-3408",
                                              "summary":  "Create release for 1.4"
                                          }
                                      ]
               },
    "modules":  [
                    {
                        "id":  "SPO3.MGUI.RTEST-4.0.0-SNAPSHOT",
                        "artifacts":  [
                                          {
                                              "name":  "/com/company/module/SPO3.MGUI.RTEST/4.0.0-SNAPSHOT/ivy.xml",
                                              "md5":  "a242c427c6c1fdcd33c1c0498fb41324",
                                              "type":  "application/xml",
                                              "sha1":  "2d4916b9a1292dca8875b1aceaca9beb8de1a5e6"
                                          },
                                          {
                                              "name":  "/com/company/module/SPO3.MGUI.RTEST/4.0.0-SNAPSHOT/SPO3.MGUI.RTEST-bin-4.0.0-SNAPSHOT.zip",
                                              "md5":  "581be6dd9e6615d14db2bb0d05c724e6",
                                              "type":  "application/x-gzip",
                                              "sha1":  "62436ab1aff6cdcdeba59bcac39d6223697398c4"
                                          }
                                      ]
                    }
                ],
    "vcsUrl":  "https://bitbucket-url/project/ec/repo.git"
}

Я отправляю это так:

Invoke-RestMethod -Uri $url -Method PUT -Body $json -ContentType 'application/json' -Headers $headers
To the URL - https://artifactory-url/artifactory/api/build    

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

Я думаю, что моя полезная информация неверна, но я просто не могу понять, что мне следует использовать.

Это то, что я вижу в информации о сборке моего артефакта:

Name:   ivy.xml
Repository Path:    repo-snapshot-local/com/company/module/SPO3.MGUI.RTEST/4.0.0-SNAPSHOT/ivy.xml
Module ID:  com.company.module:SPO3.MGUI.RTEST:4.0.0-SNAPSHOT 

Чтобы быть точным, и если я прав, вот где мне нужна помощь (чтобы поместить правильную информацию об артефакте, которая будет использоваться для идентификатора, имени и т. Д. Модуля:

"modules":  [
                    {
                        "id":  "SPO3.MGUI.RTEST-4.0.0-SNAPSHOT",
                        "artifacts":  [
                                          {
                                              "name":  "/com/company/module/SPO3.MGUI.RTEST/4.0.0-SNAPSHOT/ivy.xml",
                                              "md5":  "a242c427c6c1fdcd33c1c0498fb41324",
                                              "type":  "application/xml",
                                              "sha1":  "2d4916b9a1292dca8875b1aceaca9beb8de1a5e6"
                                          },
                                          {
                                              "name":  "/com/company/module/SPO3.MGUI.RTEST/4.0.0-SNAPSHOT/SPO3.MGUI.RTEST-bin-4.0.0-SNAPSHOT.zip",
                                              "md5":  "581be6dd9e6615d14db2bb0d05c724e6",
                                              "type":  "application/x-gzip",
                                              "sha1":  "62436ab1aff6cdcdeba59bcac39d6223697398c4"
                                          }
                                      ]
                    }
                ]

раздел "путь репо" подСтраница сборок артефактов для моей сборки показывает следующее сообщение: "Путь не найден (внешне разрешен или удален / перезаписан)" , и я считаю, что при отправке вызова REST я использую неправильную полезную нагрузку. ЕслиЯ использую правильную информацию, тогда она должна быть заполнена правильно, и я могу напрямую щелкнуть по ней, чтобы перейти к артефакту.

Любая помощь приветствуется здесь. Спасибо

1 Ответ

3 голосов
/ 05 ноября 2019

Если у вас есть сборки на вкладке «Сборка», но все артефакты имеют «Путь не найден (внешне разрешен или удален / перезаписан)», это, скорее всего, означает, что вы не добавили необходимые свойства в загруженные файлы (build.name, build.number).

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