jenkins - Jenkins - 检查特定作业是否正在使用 hudson 类运行
问题描述
我需要检查特定作业是否正在从另一个作业运行。我不想使用 API 或插件。只是裸露的哈德逊模型。
我已经尝试了 Jenkins.instance.getItemByFullName('folder/job').lastBuild 的一些属性,但它们要么返回整个作业状态(稳定/不稳定),要么没有 RUNNING 结果。我什至看到有一个脚本可以找到当前正在运行的执行程序。所以我不相信没有办法检查正在运行的工作。 https://wiki.jenkins.io/display/JENKINS/Find+builds+currently+running+that+has+been+executing+for+more+than+N+seconds
import com.cloudbees.groovy.cps.NonCPS
import jenkins.model.*
import hudson.model.Result
@NonCPS
def getProject(projectName) {
def project = jenkins.model.Jenkins.instance.getItemByFullName(projectName)
if (!project) {error("Project not found: $projectName")}
return project
}
project = getProject('folder/job')
build = project.lastBuild
def checkStatus2(){
//return Jenkins.instance.getItemByFullName('folder/job').lastBuild.getResult()
return Jenkins.instance.getItemByFullName('folder/job').lastBuild.buildStatusSummary.message
}
stage('check Job A status'){
//def status = checkStatus2()
//echo status
//if(hudson.model.Result.RUNNING.equals(status)){
if(build.@result == hudson.model.Result.NOT_BUILT){
echo "running"
}else{
echo "not running"
}
}
解决方案
我找到了一个线程,它给了我一个提示 Jenkins 工作流检查作业是否正在运行或计划
所以我尝试...
if(Jenkins.instance.getItemByFullName('folder/job').isBuilding())
...它的工作原理。
推荐阅读
- python - 如何在编译的 python 文件中使用 eval()?
- meteor - 未收到邮件
- ios - 无法读取 INAddTasksIntent 中的消歧结果
- django - Django QuerySet 过滤器获取 date_time 截止前的最后一个对象
- javascript - 如何使用毫秒计算超过一秒/小时?
- c# - 如何使用 tesseract 确定文本或页面的方向
- php - 如何从数据库中的另一个表中获取数据?
- c# - 短日期(“d”)格式说明符在 MacOS 上的 .NET Core 中不打印 4 位数字的年份
- reactjs - 为什么我收到“useContext 不是函数”或“未定义上下文”?
- sharepoint - SharePoint CSOM Removesite 不适用于新式团队网站