job dependency graph”]). What’s more, if you click on a build job in the graph, Jenkins will take you
directly to the project page of that build job.
Figure 10.31. A build job dependency graph
10.6.3. Joins
When setting up more complicated build pipelines, you frequently come across situations where a
build job cannot proceed until a number of other build jobs have been completed, but that these
upstream build jobs do not need to be executed sequentially. For example, in Figure 10.31, “A build job
dependency graph”, imagine that the phoenix-deploy-to-uat build job actually requires three jobs
to succeed before it can be executed: phoenix-compatibility-tests, phoenix-load-tests, and
phoenix-performance-tests.
We can set this up by using the Joins plugin, which you will need to install in the usual way via the
Update center. Once installed, you configure a join in the build job that initiates the join process (in our
example, this would be phoenix-web-tests). In our example, we need to modify the phoenix-web-
tests build job so that it triggers the phoenix-compatibility-tests, phoenix-load-tests,
and phoenix-performance-tests first, and then, if these three succeed, the phoenix-deploy-
to-uat build job.
We do this by simply configuring the Join Trigger field with the name of the phoenix-deploy-to-uat
build job (see Figure 10.32, “Configuring a join in the phoenix-web-tests build job”). The “Build other
projects” field is not modified, and still lists the build jobs to be triggered immediately after the current
one. The Join Trigger field contains the build jobs to be built once all of the immediate downstream
build jobs have finished.