Summary
When there’s a job and as the result of the job, sometimes I would like to get the all version information of my Artifact which is created by the job.
But, when I run findArtifactVersions to get this, it only returns latest version.
What function should I use to retrieve this properly?
Solution
To get the list of artifacts published by a job, you need to use the "findObjects" API to look up artifact versions by the publisher job ID.
use strict;
use warnings;use ElectricCommander;use strict;use warnings;
use ElectricCommander;
my $ec = new ElectricCommander;
my $jobId = $ec->getProperty("/myJob/jobId")->findvalue("//value")->value();
my $response = $ec->findObjects("artifactVersion", {
filter => [
{
propertyName => "publisherJobId",
operator => "equals",
operand1 => $jobId
}
]
});
foreach my $av($response->findnodes("//artifactVersion")) {
$ec->setProperty(
"/myJob/published_artifacts/" . $av->findvalue("artifactName")->value(),
$av->findvalue("version")->value()
);
}
my $ec = new ElectricCommander;
This example show how to define findObjects function and how to put the result to property sheet.
This article is part of our Knowledge Base and is provided for guidance-based purposes only. The solutions or workarounds described here are not officially supported by CloudBees and may not be applicable in all environments. Use at your own discretion, and test changes in a safe environment before applying them to production systems.