How can I trigger build of another job from inside the Jenkinsfile
?
I assume that this job is another repository under the same github organization, one that already has its own Jenkins file.
I also want to do this only if the branch name is master, as it doesn't make sense to trigger downstream builds of any local branches.
Update:
stage 'test-downstream'
node {
def job = build job: 'some-downtream-job-name'
}
Still, when executed I get an error
No parameterized job named some-downtream-job-name found
I am sure that this job exists in jenkins and is under the same organization folder as the current one. It is another job that has its own Jenkinsfile
.
Please note that this question is specific to the GitHub Organization Plugin which auto-creates and maintains jobs for each repository and branch from your GitHub Organization.
First of all, it is a waste of an executor slot to wrap the
build
step innode
. Your upstream executor will just be sitting idle for no reason.Second, from a multibranch project, you can use the environment variable
BRANCH_NAME
to make logic conditional on the current branch.Third, the
job
parameter takes an absolute or relative job name. If you give a name without any path qualification, that would refer to another job in the same folder, which in the case of a multibranch project would mean another branch of the same repository.Thus what you meant to write is probably
In addition to the above mentioned answers: I wanted to start a job with a simple parameter passed to a second pipeline and found the answer on https://dzone.com/refcardz/continuous-delivery-with-jenkins-workflow.
So i used:
The command
build
in pipeline is there to trigger other jobs in jenkins.Example on github
The job must exist in Jenkins and can be parametrized. As for the branch, I guess you can read it from git