'Github PR triggers multiple Jenkins jobs but reports only the state of the last job
I currently have GitHub connected to Jenkins and for every pull request, GitHub triggers a Jenkins job which seems to work fine. I am extending this to trigger multiple jobs, let's say on a new pull request, I have multiple JenkinsFiles which are basically running different configurations.
All the jobs are triggered correctly, but the status reported back to github is overwritten. For 1 PR I will trigger:
Job1
Job2
Job3
But I get only the status of Job3:
continuous-integration/jenkins/pr-merge
continuous-integration/jenkins/branch
I would like to see something like:
continuous-integration/jenkins/job1
continuous-integration/jenkins/job2
continuous-integration/jenkins/job3
I have already tried to set a custom commit context on the JenkinsFile of each job, but it doesnt seem to be working. Any suggestions how to solve it ?
Thank you
Solution 1:[1]
github
uses commit statuses to identify build results. In your case it is showing the latest one since the commit context
is the same. To show results of all jobs in github
you would have to change the commit context for each of them. This can be done via official github status API
which can be found here
Since you are using Jenkins what you want can be achieved by using existing plugin called GitHub Pull Request Builder Plugin. It implements github status API
and can set a different context for each job. The plugin repository can be found here.
According to this discussion from plugin issue page and an answer by audleman there this is what has to be done:
One Pull Request to Trigger Multiple Jobs
In the job configuration, go to:
Build Triggers -> GitHub Pull Request Builder -> Trigger Setup...
Change
Commit Status Context
to be unique for each job.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Moro |