У нас есть аналогичные потребности и мы используем следующую систему 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
, и вы получаете массив с нулем.