Matrix Tie Parent Plugin

Plugin Information

Plugin ID matrixtieparent
Latest Release 1.1
Latest Release Date Aug 23, 2010
Sources Subversion
Support Eclipse Hudson Forum
Issue Tracking Eclipse Bugzilla

Ties the parent build of a multi-configuration project to a node.

Multi-Configuration projects always run one parent build job. The parent build verifies source control checkout operations, then monitors the execution of child jobs created to satisfy the Configuration Matrix.

Sometimes the parent build must run on some computers, but not others. This may be due to constraints such as a lack of source control or other software on a computer, file permission issues, etc.

Restrict where the parent build runs by selecting a specific computer's node name. Or, use a label to restrict the parent build to run only on computers marked with that label.

Limitations

  • System property hudson.model.Hudson.flyweightSupport must be set to true. This is Hudson's default setting since v1.337.

Changelog

Version 1.1 - August 23, 2010

  • Requires Hudson ver. 1.373 or newer.
  • Fix exception caused by Hudson core changes introduced in v1.372. Fixed for v1.373 and newer. (Don't use v1.372)

Version 1.0 - June 8, 2010

  • Works with Hudson versions 1.361 thru 1.371
  • Initial release.

Labels:

plugin-buildwrapper plugin-buildwrapper Delete
Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.
  1. May 17, 2010

    vvanwyns says:

    All, When the Matrix Tie Parent Plugin will be available for download ? Is the...

    All,

    When the Matrix Tie Parent Plugin will be available for download ?

    Is there a way to workaround the problem with the Hudson version 1.353 ?

    Regards,

    Vincent

    1. May 17, 2010

      Ken Bertelson says:

      I'm afraid that I don't know when this will be available.  I've just reques...

      I'm afraid that I don't know when this will be available.  I've just requested that the maintainers of the Hudson core evaluate the HUDSON-6180 patch for acceptance.

      Note that if the change to core is accepted, then I can release the plugin; however, you will have to upgrade your version of Hudson to something newer than v1.353.

  2. May 17, 2010

    vvanwyns says:

    with the version 1.353, how can I force the parent build of a multi-platform pro...

    with the version 1.353, how can I force the parent build of a multi-platform project on a dedicated node ?

  3. Jul 16, 2010

    Axel Heider says:

    This is really what I have been looking for. Thanks. Could you make the GUI loo...

    This is really what I have been looking for. Thanks.

    Could you make the GUI look like in "Build on multiple nodes", ie having a tree-view with "nodes" and "labels" on the first level. This is easier as the plain list with everything.

  4. Aug 17, 2010

    Alex says:

    Couriously, at first glimpse I thought that this is very useful, but I cannot co...

    Couriously, at first glimpse I thought that this is very useful, but I cannot come up with a scenario which I'd want to tie the parent build in a specific node ? You said:

    Sometimes the parent build must run on some computers, but not others. This may be due to constraints such as a lack of source control or other software on a computer, file permission issues, etc.

    but the children builds, which are not tied to the same specific node, will have to check out the same source from the same version control as the parent build, won't they ?

    1. Aug 19, 2010

      Ken Bertelson says:

      What may not be obvious, is Hudson's strategy to run the parent build. Suppose...

      What may not be obvious, is Hudson's strategy to run the parent build.

      Suppose you have hudson.model.Hudson.flyweightSupport set to true (the default) and you have your slaves configured for "Utilize this slave as much as possible".  Then Hudson may run the parent build on *any* of your slaves.

      Hudson will not constrain itself to one of the "Individual nodes" or "Labels" that you selected in your Configuration Matrix. Hudson uses a hash of the name of your job to determine the slave that runs the parent build.  So, you may get lucky and the parent build may run on a slave that you can live with.  Or, you may get unlucky and Hudson will choose your one-off Windows slave that only runs StarTeam for version control (oops).

    2. Aug 24, 2010

      Axel Heider says:

      Batch-Tasks for a matrix-job run on the parent node. With a random node beeing u...

      Batch-Tasks for a matrix-job run on the parent node. With a random node beeing used, a Windows batch task on a linux machine will fail.

  5. Aug 31, 2010

    dmitryb says:

    Is it possible to extend this plugin to use with a free-style software project? ...

    Is it possible to extend this plugin to use with a free-style software project? Such project can also be run in distributed mode. In my case SCM is available only on master node.

    1. Sep 01, 2010

      Ken Bertelson says:

      I think you may want a feature that is native to free-style software projects.&n...

      I think you may want a feature that is native to free-style software projects.  For Hudson v1.372 and newer, look for "Restrict where this project can be run" option.  For earlier Hudson versions, it was called something like "Tie this project to a node".

      1. Sep 06, 2010

        dmitryb says:

        I'm going to use "Tie this project to a node" to delegate builds to remote hosts...

        I'm going to use "Tie this project to a node" to delegate builds to remote hosts. That allows to discharge central server and make rebuild of the whole projects group much faster. The problem is that remote hosts are located in a different ClearCase regions, and replication happens with time interval of a hours. So SCM polling, and actually all other ClearCase operations could not be run on slaves (and by default they run on slaves). I found that multi-configuration project and Tie Parent plugin solves my problem with attaching parent build to master node. The thing that confuse me is that I do not need multi-configuration project, there is only one build step that must be executed on one host. Multi-configuration project adds some complexity to BS configuration, build results and logs navigation on dashboard becomes not so obvious as with Free-Style project. It would be nice to manage with Free-Style project. Does Tie Parent plugin could be run with it? Also, I wonder if there any documentation on what is parent build job. May be it could be configured explicitly?

        1. Sep 07, 2010

          Ken Bertelson says:

          Sami Tikka has some good recommendations in his reply to a similar question abou...

          Sami Tikka has some good recommendations in his reply to a similar question about "Concurrent projects with downstream projects ".  It sounds like you may want to use a single, free-style project that builds, "Archives the artifacts",  "Record fingerprints of files to track usage", then triggers a downstream project.  Your downstream project might then be a multi-configuration project where each child job gets the artifact(s) from the free-style project, then begins its work.

  6. Oct 19, 2010

    Michael says:

    Where exactly am I supposed to see the "Build Environment" section and the "Tie ...

    Where exactly am I supposed to see the "Build Environment" section and the "Tie parent build to a node" checkbox ? Somehow i cannot find it (i already restarted hudson with v1.381). Should I re-create my project(s) ?

    1. Oct 19, 2010

      Michael says:

      Somehow I missed to install the plugin first (I guess I clicked too much) ;-) So...

      Somehow I missed to install the plugin first (I guess I clicked too much) ;-) Sorry for not looking closely enough, now it shows up on the project configure page.