Как вернуть точные имена новых артефактов, добавленных в артефакт Jfrog, с помощью плагина URL Trigger в Jenkins - PullRequest
0 голосов
/ 22 ноября 2018

Мне нужно каждый вечер опрашивать URL-адрес артефакта и выяснять, какой файл был добавлен, и использовать это имя нового артефакта в качестве параметра для запуска другого задания в Jenkins.Но плагин URLTrigger не возвращает имя новых артефактов?Есть ли способ получить это?

1 Ответ

0 голосов
/ 22 ноября 2018

Я использую groovy для запуска команды curl, чтобы извлечь и проанализировать metadata.xml для определения имени фляги.

Предполагается, что в Artifactory есть содержимое метаданных, которое выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>path.to.application</groupId>
  <artifactId>jarName</artifactId>
  <versioning>
    <latest>6.1.12-SNAPSHOT</latest>
    <release>6.1.11</release>
    <versions>
      <version>6.1.11</version>
      <version>6.1.12-SNAPSHOT</version>
    </versions>
    <lastUpdated>20181122121509</lastUpdated>
  </versioning>
</metadata>

Таким образом, информация о сборке, которую я хочу получить: 'jarName-6.1.12-SNAPSHOT.jar'

import org.xml.sax.SAXParseException;
//Assumed artifactory path to application.jar
def metaDataPath = 'https://your.artifactory.server/artifactory/path/to/application/jarName/maven-metadata.xml'

//Get the file using curl (you might need to use a proxy), with an api token for authentication
def metadataContent = 'curl -x<your-proxy:80> -H "X-JFrog-Art-Api:<your token>" -XGET ' + metaDataPath
metadataContent = metadataContent.execute().text

//Parse it to get the 'latest' element
def parsedXml = (new XmlParser()).parseText(metadataContent)
println parsedXml.versioning.latest.text() //6.1.12-SNAPSHOT

Если в ваших сборках моментальных снимков есть метка времени, то вам нужно будет использовать возвращенную 6.1.12-SNAPSHOT для создания нового пути метаданных:

https://your.artifactory.server/artifactory/path/to/application/jarName/6.1.12-SNAPSHOT/maven-metadata.xml

Чтобы затем повторить процесс извлечения и анализа, чтобы получить имя с меткой времени из дочернего metadata.xml

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