Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>One way to do it is this: run Jenkins <a href="https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds" rel="nofollow">distributively</a> with various machines on which you'd like to run your installer running as slaves. You then write two jobs: <em>BUILDIT</em> and <em>RUNIT</em>. The first will build your project (it may be tied to only one machine, or to various slaves), the second will run the installer and test the installation (this job will run on slaves on which you want to test).</p> <p>Now there are two possibilities as to which job to make upstream and which downstream.</p> <p>(1) <em>BUILDIT</em> is upstream. At the end of the build it will call <em>RUNIT</em> via <a href="https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin" rel="nofollow">Parameterized Trigger Plugin</a> passing to it the location of the installer. You can either put the installer on a shared drive in a directory keyed by <em>BULDIT</em>'s BUILD_ID via <a href="https://wiki.jenkins-ci.org/display/JENKINS/ArtifactDeployer+Plugin" rel="nofollow">ArtifactDeployer plugin</a> (this is probably the option easiest to implement, but not generic); or <em>RUNIT</em> can access the installer artifact via its permalink with wget or curl (in such a case <em>BUILDIT</em> would construct and pass to <em>RUNIT</em> the link). There are other options (such as employing <a href="http://packages.python.org/jenkinsapi/#" rel="nofollow">Jenkins Python Remote Access API</a>), but they are more difficult to implement.</p> <p>Now, <em>RUNIT</em> can be either a multi-configuration job which will trigger installation/test on all the slaves; or, alternatively, you can pass a parameter from <em>BUILDIT</em> specifying on which slave to run. Then, employing <a href="https://wiki.jenkins-ci.org/display/JENKINS/NodeLabel+Parameter+Plugin" rel="nofollow">NodeLabel Parameter plugin</a> you can tie <em>RUNIT</em> to the slave specified by the parameter.</p> <p>(2) <em>RUNIT</em> is upstream. You somehow decide on which slave you want to run your tests and invoke <em>RUNIT</em> on that slave (see above on how you can parameterize the slave to run on). <em>RUNIT</em> will then invoke <em>BUILDIT</em> via <em>Parameterized Trigger Plugin</em> run as a build step (not as a post-build step). <em>RUNIT</em> should pass to <em>BUILDIT</em> its BUILD_ID as a parameter, so that <em>BUILDIT</em> can store the installer artifact keyed by it. <em>RUNIT</em> will wait for <em>BUILDIT</em> to complete, find the installer using the BUILD_ID, and proceed with installation and testing.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload