Run Parts of a Pipeline as Separate Job
<p>We're considering using the Jenkins Pipeline plugin for a rather complex project consisting of several deliveries that need to be build using different tools (on different machines) before being merged. Still, it seems to be easy enough to do a complete build with a single <code>Jenkinsfile</code>, and I like the automatic discovery of git branches that comes with Pipeline.</p>

<p>However, at this point, we have jobs for each of the deliveries and use a build-flow based "meta" job to orchestrate the individual jobs. The nice thing about this is that it also allows starting just one individual job if only small changes were made, just to see whether this delivery still compiles.</p>

<p>To emulate this, some ideas came to mind: </p>

<ul>
<li>Use different <code>Jenkinsfile</code>s for the deliveries and <code>load</code> them in the top-level <code>Jenkinsfile</code>; it seems that the Multibranch Pipeline job does not allow configuring the <code>Jenkinsfile</code> to use yet (<a href="https://issues.jenkins-ci.org/browse/JENKINS-35415" rel="noreferrer">https://issues.jenkins-ci.org/browse/JENKINS-35415</a>), however, so creating the jobs for the individual deliveries is still open.</li>
<li>Provide a configuration option for the "top-level" job and have <code>if</code>s for all deliveries in the <code>Jenkinsfile</code> to be able to select which should be build. This would mix different build types in one pipeline, though, and, at the very least, mess up the estimation of the build time.</li>
</ul>

<p>Are those viable options, or is there a better one?</p>