Как получить доступ к артефактам Hudson job1 из другого job2? - PullRequest
8 голосов
/ 17 марта 2011

У нас есть производственная работа и ночная работа для проекта в Гудзоне. Производственное задание должно извлечь некоторые артефакты из конкретной ночной сборки # (которая предоставляется в качестве параметра). Может кто-нибудь помочь нам с подсказкой, как этого добиться?

Ответы [ 3 ]

8 голосов
/ 17 марта 2011

Плагин Copy Artifact , кажется, способен сделать это.

Другой подход может заключаться в получении артефакта через

http://server/jobs/job1/[build #]/artifacts/
1 голос
/ 21 марта 2011

Вы можете использовать инструменты конфигурации "Build Environment" на странице конфигурации задания. Установите флажок «Настроить дополнительные шаги сборки M2» и добавьте «Execute Shell», которая извлекает вещи из нужного артефакта.

0 голосов
/ 12 сентября 2014

У нас есть аналогичные потребности и мы используем следующую систему groovy:

import hudson.model.*

def currentBuild = Thread.currentThread().executable;
currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'FAILURE')));
def buildJob = Hudson.instance.getJob("ArtifactJobName");
def artifacts = buildJob.getLastBuild().getArtifacts();
if (buildJob.getLastBuild().getResult() == Result.SUCCESS && artifacts != null && artifacts.size() > 0) {
    currentBuild.addAction(new ParametersAction(new StringParameterValue('VARIABLE_NAME', artifacts[0].getFileName())));
    currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'SUCCESS')));
}

Это создает VARIABLE_NAME с именем артефакта из ArtifactJobName, которое мы используем, так как все они хранятся в определенной папке. Я не уверен, что произойдет, если у вас есть несколько артефактов, но, похоже, вы можете получить их из массива артефактов.

Вы можете использовать getLastSuccessfulBuild для предотвращения проблем, когда в данный момент создается другая ArtifactJobName, и вы получаете массив с нулем.

...