Hello
I have an upstream scripted pipeline calling in parallel downstream script
pipeline.
I would like after the run, that the upstream pipeline know on which slave
they have been executed.
Would you know how can we do this?
Upstream pipeline ("pipeline 123"):
import hudson.Util;
node ("master") {
cleanWs()
def tc_job_name
def tc=["tc002","tc003"]
def branches=[:]
stage ("phase") {
tc_job_name = "subpipeline"
for (int i = 0; i <= tc.size()-1; i++) {
def index = i //if we tried to use i below, it would equal
tc.size()-1 in each job execution.
branches["${tc[index]}"] = {
def first_run,job_hudson,build_hudson,build_env
first_run = build job: tc_job_name, parameters:
[string(name:'dummy', value: "${index}")], description:'${tc[index]}',
propagate: false
def rawbuild = first_run.getRawBuild()
def build_properties = rawbuild.getProperties()
def log = build_properties['log']
def node = log.tokenize('\n').findAll {it.contains
'Running on'}.each {it}[0].split(" ")[2]
echo node
} // end of branches["${tc[index]}"] definition
} // for (int i = 0; i <= tc.size()-1; i++)
parallel branches
} // stage phase
} // node ("master")
Downstream pipeline ("subpipeline"):
node('only_tc') {
stage ("test") {
echo env.NODE_NAME
}
}
What has been tried:
* In upstream pipeline I have tried to get the owner of the executor
launching the downstream pipeline:
tc_job_name ='subpipeline'
first_run=build job: job_name
def build_hudson = first_run.getRawBuild()
def build_properties = build_hudson.getProperties()
def executor = build_properties['executor']
println "Node: "+ executor.getOwner().getCaption()
But it doesn't work with parallelized job execution , it outputs "Master"
which is not the jenkins slave executor
* Getting NODE_NAME environment parameter:
tc_job_name ='subpipeline'
first_run=build job: job_name
def build_hudson = first_run.getRawBuild()
def build_env = build_hudson.getEnvironment()
println build_env.get("NODE_NAME","no node name")
But the environment variables of a pipeline is not the same as a freestyle
job and it has not any NODE_NAME
* Parsing the log environment variable: (see first sample), but it's not
the right way to do I guess.
Thanks in advanced !!
Vincent
--
You received this message because you are subscribed to the Google Groups
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/feb98bbd-260e-43da-960f-abd773f6f1bc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.