Jenkins - проверьте, выполняется ли конкретная работа с классами Hudson - PullRequest
0 голосов
/ 08 февраля 2019

Мне нужно проверить, выполняется ли конкретное задание из другого задания.Я не хочу использовать 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"
    }
}

1 Ответ

0 голосов
/ 08 февраля 2019

Я нашел поток, который дал мне подсказку Проверка рабочего процесса Дженкинса, если задание выполняется или запланировано

Итак, я попытался ...

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

..и это работает.

...