Reputation: 177
stages {
stage('Main') {
steps {
script{
sleep(5)
def runningBuilds = Jenkins.instance.getItemByFullName("${JOB_NAME}").getBuilds().findAll() { it.getResult().equals(null) }
for(i in 0 .. runningBuilds.size()-1) {
//print running - below line gives workflow object
print runningBuilds.get(i)
//How do I get 'params' global variable of all running builds here???
}
if(runningBuilds.size()>1){
for(i in 1 .. runningBuilds.size()-1) {
//some processing
}
}
}
}
How to get params global variable of all running builds of a given job? runningBuilds.get(i) gives workflow object, how to retrieve params from it?
Upvotes: 1
Views: 265
Reputation: 27756
For each running build, call the getAction
method with argument hudson.model.ParametersAction
. It returns a collection of ParameterValue
.
def runningBuilds = Jenkins.instance.getItemByFullName(JOB_NAME).getBuilds().findAll() {
it.getResult().equals(null)
}
for( run in runningBuilds ) {
for( param in run.getAction( hudson.model.ParametersAction ) ) {
println "Parameter name: $param.name, value: ${param.getValue()}"
}
}
Upvotes: 2