Get build number of spawned job?

13 views
Skip to first unread message

zil...@gmail.com

unread,
Sep 16, 2020, 4:37:48 PM9/16/20
to Jenkins Users
If I spawn a job in jenkins, like this

Pipeline1:
build job: "CommonPipeline",
      wait: true

You see this in the Jenkins console for Pipeline1

Scheduling project: CommonPipeline
Starting building: Starting build CommonPipeline #100

Now if I start another pipeline at the same time Pipeline1 is running

Pipeline2:
build job: "CommonPipeline",
      wait: true

You see this in the Jenkins console for Pipeline2

Scheduling project: CommonPipeline
Starting building: Starting build CommonPipeline #101

In each Pipeline1 and Pipeline2 jobs, how can I get the corresponding build numbers that they spawned for CommonPipeline? I'm asking because CommonPipeline archives artifacts for Pipeline1 and Pipeline2, and I need to get the artifact for their corresponding spawned CommonPipeline job#. Is this possible?

Hope that makes sense.

Thanks,
Chris


Message has been deleted

zil...@gmail.com

unread,
Sep 16, 2020, 4:47:26 PM9/16/20
to Jenkins Users
IOW, both Pipeline1 and Pipeline2 jobs have this

String buildNum = <spawned job build number>
copyArtifacts projectName: 'CommonPipeline',
              fingerprintArtifacts: true,
              filter: 'SomeFile.yml'
              selector: specific(buildNumber)

What do I put in the <spawned job build number> ?

thanks,
Chris
Reply all
Reply to author
Forward

Gianluca

unread,
Sep 16, 2020, 4:54:30 PM9/16/20
to Jenkins Users
You can pass parameters to downstream jobs (Jenkins terminology for the jobs started via "build job") with the BUILD_ID of the upstream job (Jenkins terminology for the job that called "build job"):

build job: "CommonPipeline", wait: true, parameters: [ [name: UPSTREAM_ID, value: env.BUILD_ID], ... ]

Cheers,
Gianluca.

zil...@gmail.com

unread,
Sep 16, 2020, 5:06:20 PM9/16/20
to Jenkins Users
Thanks Gianluca, again.

However, I found out it's much easier. I do this for each Pipeline1 and Pipeline2

def commonJOb = build job: "CommonPipeline",
                      wait: true

copyArtifacts projectName: 'CommonPipeline',
              fingerprintArtifacts: true,
              filter: 'SomeFile.yml',
              selector: specific(commonJob.number.toString())


Reply all
Reply to author
Forward
0 new messages