jenkinsmulti-configuration

How to I archive the artifacts in a Jenkins multi-configuration build involving multiple OSs?


I have a multi-configuration build which is building on a variety of operating systems (currently only 32 bit and 64 bit Linux, but more to be added). The builds produce an "install" directory that I want to archive. In a previous freestyle build of the same software (on a single target) I was able to do this by specifying "Archive the artifacts" with "Files to archive" set to "install/**" but when I do this on the multi-configuration build Jenkins claims it can't find anything to archive.

The workspaces on the slaves doing the actual builds do create "install" directories (as "AllOSes/Linux32/install" and "AllOSes/Linux64/install"). What am I doing wrong?

Update: The problem only happens when I have a Windows slave node in the Jenkins system. If the Windows slave node is present Jenkins seems to notice that this is not in use, and runs the control section of the job on the Windows slave node. Somehow this then causes the archive step to fail (maybe because it expects Windows path names?).

If I disable the Windows slave node the control part of the job runs on the master node, which is running 32 bit Linux, and everything works correctly.

This doesn't provide a solution, since I need the Windows node enabled for other jobs, and I can find no way of specifying where the controller for a multi-configation job should run, but it does change the question.


Solution

  • If the problem is only where the parent job is run (which is weird - it should not matter) then you can use Matrix Tie Parent pluing.