答案 0 :(得分:0)
我知道这是一个古老的问题,但是如果有人找到了,这里就是一个答案。您应该使用系统Groovy脚本部分,而不是一无所获。
答案 1 :(得分:0)
要详细说明@Risha的答案,请参阅groovy plugin上的注释。
Groovy脚本与系统Groovy脚本
普通的“ Groovy脚本”在运行构建的从属服务器上的派生JVM中运行。基本上与运行“ groovy”命令并传递脚本相同。
另一方面,系统Groovy脚本在Jenkins主服务器的JVM中运行。因此,它将可以访问Jenkins的所有内部对象,因此您可以使用它来更改Jenkins的状态。它类似于[Jenkins脚本控制台](https://wiki.jenkins.io/display/JENKINS/Jenkins+Script+Consoleb功能。
安全性
系统groovy作业可以访问整个Jenkins,因此,只有具有管理员权限的用户才能添加系统Groovy生成步骤并配置系统Groovy脚本。
===========
您的常规(独立)Groovy步骤将在使用所选帐户的节点上运行,并且将无法访问Jenkins数据,而System Groovy将在具有完全访问权限的主数据库上运行(如所述)。
使用@Rohit的命令来打印状态会有所帮助。 Jenkins.instance.getItemByFullName('folder_name / job_name')。isDisabled()}“
最好是先进行测试,然后再进行禁用,然后检查结果是否成功。 PS:您是否还想测试/杀死正在运行的其他作业的正在运行的实例(job.isBuilding())?
答案 2 :(得分:0)
对我来说,上面给出的解决方案不起作用,但我在System Groovy脚本
中尝试过按照以下方式运行,效果很好:)
import jenkins.*
import jenkins.model.*
Jenkins.instance.getItemByFullName('folder/Sub_Folder/jobName').setDisabled(false)