9

I have a scenario where but I have 2 projects (A and B), both are configured in Jenkins with multibranch pipeline jobs, problem is that Project B depends on Project A.

So I find that some times when I check in code in Project A, I also need to build ProjectB once A was built. Now before I started investigating pipeline builds, I'd have a job per branch and then trigger in Jenkins the appropriate job for Project B for the appropriate branch.

What I'd like to set up in a Jenkinsfile so that when ProjectA/develop executes it then triggers the multibranch pipeline job for ProjectB and the same branch.

I have:

stage ('Trigger Tenant Builds') {
        build job: "ProjectB/${branch}", wait: false
    }

But my ProjectA pipeline fails with:

ERROR: No parameterized job named ProjectB/develop found

Any ideas?

John McDonnell
  • 753
  • 1
  • 8
  • 24

1 Answers1

6

I've resolved this now. What I am doing is defining an upstream trigger in project B's Jenkinsfile:

pipelineTriggers([ 
    upstream( 
       threshold: hudson.model.Result.SUCCESS, 
       upstreamProjects: "/ProjectA/" + env.BRANCH_NAME.replaceAll("/", "%2F") 
    )
])
John McDonnell
  • 753
  • 1
  • 8
  • 24
  • 1
    How do you ensure that this triggers only the develop branch and not the feature branch? – vijayvithal Nov 12 '21 at 21:14
  • Hi @vijayvithal if you still need it, check my answer here: https://stackoverflow.com/questions/43337070/how-to-invoke-a-jenkins-pipeline-a-in-another-jenkins-pipeline-b/71412961#71412961 – Martin Mar 09 '22 at 16:52