Jenkins model - sprawdzenie czy dany job jest uruchomiony .

0

Potrzeba mi sprawdzić czy uruchomiony/w poczekalni jest konkretny job. Nie chcę używać API ani pluginów. Tylko modelem Jenkinsa. Wydaje mi się że jestem blisko ale nadal nie mogę znaleźć konkretnej właściwości obiektu albo po prostu źle się za to zabieram. Dotychczasowe próby zwracają albo status całego joba (stable/unstable) albo SUCCESS, FAILURE ale nie ma RUNNING.

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

Sam sobie odpowiem bo właśnie znalazłem (wczoraj cały dzień szukałem).

job = Jenkins.instance.getItemByFullName('folder/job')
 if(job.isBuilding() || job.isInQueue() ){
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.