如何从Jenkins管道groovy脚本访问收集的工件?

时间:2017-11-30 12:32:50

标签: jenkins jenkins-pipeline

如果收集了特定文件(工件),我想从groovy管道中检查。

如何访问人工制品列表?

archiveArtifacts artifacts: 'foo.txt', allowEmptyArchive: true
...
// much later
// check if 'foo.txt' was collected?

请注意,我正在寻找一种解决方案,并不意味着修改收集工件的代码。这是因为这段代码在多个地方,我最后只需要做一些事情,而不是任何可能的archiveArtifacts调用(可以深深隐藏)。

2 个答案:

答案 0 :(得分:1)

您可以使用XML / JSON格式的jenkins api获取工件列表。

拨打以下网址。插入job-name和build-number

  http://localhost:8080/jenkins/job/job-name/build-number/api/json?pretty=true 

Json示例:

"artifacts" : [
{
  "displayPath" : "temp.jar",
  "fileName" : "temp.jar",
  "relativePath" : "target/temp.jar"
}
]

答案 1 :(得分:0)

可以使用currentBuild.rawBuild.artifacts.each { println it.fileName }之类的东西来访问工件,但是您需要将rawBuildartifactsfileName属性列入白名单。