Install QuickBuild on Windows and Linux. Create configuration root.product1 in QuickBuild system running on Windows (refer as root.product1@Windows later), and create configuration root.component2 in QuickBuild system running on Linux (refer as root.component2@Linux later). root.product1@Windows will be used to build component1 and package component1 and component2 into product1, while root.component2@Linux will be used to build component2.
In root.component2@Linux, create appropriate repository, builder and steps so that it can check out source code of component2 from CVS, build component2, and create label on component2 in CVS if build is successful. Artifacts of component2 will be published into some directory of generated build. Do a test on this configuration to make sure it works.
![]() | Note |
---|---|
root.component2@Linux will maintain separate build versions from root.product1@Windows. This is reasonable, cause it's the common case that a product comprises of multiple components of different and independent version numbers. |
In configuration root.product1@Windows:
Create two repositories: repository1 and repository2. repository1 is used to check out source codes of component1 from CVS, and repository2 is used to check out built artifacts of component2 from configuration root.component2@Linux.
Create two builders: builder1 and builder2. builder1 is used to build component1, and builder2 is used to package artifacts of component1 and component2 into product1.
Create below steps:
This step uses repository1 to check out code of component1 from CVS
This step uses builder1 to build component1
This step uses repository2 to check out artifacts from latest build of component2 at Linux box.
![]() | Note |
---|---|
By defining this step, root.product1@Windows is considered to be dependent on root.component2@Linux, and root.component2@Linux will be triggered automatically during the dependency resolving phase, which is happened before retrieving component2 artifacts. |
This step uses builder2 to package artifacts of component1 and component2 into product1
This step does the following things:
Creates a label on source code of component1 in CVS.
Creates a label on root.component2@Linux to mark the build number of component2 whose artifacts are packaged into this version of product1.
This step is a serial composition step that runs the above five steps serially.
In this way, product1 can be built easily. Further more, If product1 contains component3 which should be built on Solaris, you can install another QuickBuild system on a Solaris machine, configure it to be able to build component3, and add corresponding QuickBuild repository to check out artifacts from component3 at Windows side.
A live demo is available through QuickBuild's demo site http://livedemo.pmease.com:8081/. Within this live demo:
root.distributed-builds.product1 stands for root.product1@Windows we talked about.
root.distributed-builds.LinuxBox.component2 simulates the configuration root.component2@Linux.