【问题标题】:Jenkins - check if specific job is running with hudson classesJenkins - 检查特定作业是否正在使用 hudson 类运行
【发布时间】:2019-02-08 07:25:46
【问题描述】:

我需要检查特定作业是否正在从另一个作业运行。我不想使用 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 jobs


    【解决方案1】:

    我发现了一个给我提示的线程 Jenkins workflow check if job is running or schedulled

    所以我尝试了...

     if(Jenkins.instance.getItemByFullName('folder/job').isBuilding())
    

    ...它的工作原理。

    【讨论】:

      猜你喜欢
      • 2011-11-09
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      相关资源
      最近更新 更多