Por*_*Man 4 jenkins-groovy jenkins-pipeline
我可以Jenkins.instance.getItem('job_name')在脚本控制台或 Jenkinsfile 中按名称访问作业。
但是我无法为多分支管道或文件夹中的任何其他工作执行此操作。如果我尝试使用项目的全名(包括文件夹),例如 Jenkins.instance.getItem('folder_name/job_name'),我只会得到null结果。
如何访问文件夹中的作业?
Unf*_*631 11
您可以使用getItemByFullName按名称访问作业:
Jenkins.instance.getItemByFullName('folder_name/job_name')。在 Jenkinsfile 中使用它可能需要获得批准。这也通过检索构建状态开辟了更多可能性:
def buildName = Jenkins.instance.getItemByFullName('folder_name/job_name')
echo "Last success: ${buildName.getLastSuccessfulBuild()}"
echo "All builds: ${buildName.getBuilds().collect{ it.getNumber()}}"
echo "Last build: ${buildName.getLastBuild()}"
echo "Is building: ${job.isBuilding()}"
Run Code Online (Sandbox Code Playgroud)
但是,所有这些在通过 Jenkinsfile 使用时都可能需要批准。输出例如:
[Pipeline] echo
Last success: folder/job_name #761
[Pipeline] echo
All builds: [767, 766, 765, 764, 763, 762, 761, 760]
[Pipeline] echo
Last build: folder/job_name #767
[Pipeline] echo
Is building: true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6093 次 |
| 最近记录: |