RTC Build Definition Help
Hi Guys.
I need some Build help. I am a total newbie when it comes to this specialty.
I'm using RTC 3.0.1 & a Build System Toolkit with ant on another server. I have setup a build engine and it's running ok.
My Jazz Source Control setup:
(1) Final Stream
(2) Team Stream
(3) Build Stream Workspace
(4) Personal Stream Workspace
Within all that are the following components:
A) JAVA Based Application
B) External Packaged Application
C) External Packaged Application
We are ok with creating a build definition for (A) utilizing the exiting Ant file, but as part of a final build/release we need to incorporate the other two components loaded into source control (B)(C).
The (B) & (C) components are pre-existing binaries & installers are are part of our product baseline. (no code here at all, no compiler required)
The first problem:
How can I use the build engine to simply take those two componentsout from source control, create a build within the build queue and dump that as a build to a network share? (no code is build here at all)
The second problem:
How can I combine the existing ant build definition for component (A) to also perform the steps in problem 1, and incude components (B) & (C) in the same build? (Even at the higher "Final Stream" level)
I have had a look at the various articles and the jazz wiki but can't seem to be getting anywhere. If I am talking rubish here, then I am sorry. Clearly shows my lack of understanding in this despite reading a lot of articles in this area
Any help is muchly appreciated.
I need some Build help. I am a total newbie when it comes to this specialty.
I'm using RTC 3.0.1 & a Build System Toolkit with ant on another server. I have setup a build engine and it's running ok.
My Jazz Source Control setup:
(1) Final Stream
(2) Team Stream
(3) Build Stream Workspace
(4) Personal Stream Workspace
Within all that are the following components:
A) JAVA Based Application
B) External Packaged Application
C) External Packaged Application
We are ok with creating a build definition for (A) utilizing the exiting Ant file, but as part of a final build/release we need to incorporate the other two components loaded into source control (B)(C).
The (B) & (C) components are pre-existing binaries & installers are are part of our product baseline. (no code here at all, no compiler required)
How can I use the build engine to simply take those two componentsout from source control, create a build within the build queue and dump that as a build to a network share? (no code is build here at all)
How can I combine the existing ant build definition for component (A) to also perform the steps in problem 1, and incude components (B) & (C) in the same build? (Even at the higher "Final Stream" level)
I have had a look at the various articles and the jazz wiki but can't seem to be getting anywhere. If I am talking rubish here, then I am sorry. Clearly shows my lack of understanding in this despite reading a lot of articles in this area
Any help is muchly appreciated.
One answer
Hi Boris,
For the first problem, do you also need to build A, then copy it with B and C, or is it just copying B and C? If the latter, I suggest creating a separate build definition that's configured with a separate build workspace, and configured to load only B and C. Then the Ant script could do whatever copying you need. Could even do it with a simple command line build instead of an Ant build. In either case, I suggest adding a build property to the build definition that captures the load directory path, and using property substitution in both the load directory field (for Jazz SCM page) and the command line field (if using a command line build; if using an Ant build, the build properties get passed to Ant automatically).
For the second problem, you could either always load all components (A, B and C) and have a build property for whether to do the deploy phase (defaulting to false, but can override manually in the request build dialog), or you could create separate build definitions (i.e. your original one and the one suggested above) and sequence them using the requestTeamBuild and waitForTeamBuild Ant tasks (see the Build Toolkit Ant Task Reference in the Help) from a 3rd build definition. Having a single build definition with flag would be simpler, but then you have the overhead of loading B and C each time. If the Jazz SCM page of the build definition is set to not delete the load directory each time, the content is not actually transferred if unchanged though.
For the first problem, do you also need to build A, then copy it with B and C, or is it just copying B and C? If the latter, I suggest creating a separate build definition that's configured with a separate build workspace, and configured to load only B and C. Then the Ant script could do whatever copying you need. Could even do it with a simple command line build instead of an Ant build. In either case, I suggest adding a build property to the build definition that captures the load directory path, and using property substitution in both the load directory field (for Jazz SCM page) and the command line field (if using a command line build; if using an Ant build, the build properties get passed to Ant automatically).
For the second problem, you could either always load all components (A, B and C) and have a build property for whether to do the deploy phase (defaulting to false, but can override manually in the request build dialog), or you could create separate build definitions (i.e. your original one and the one suggested above) and sequence them using the requestTeamBuild and waitForTeamBuild Ant tasks (see the Build Toolkit Ant Task Reference in the Help) from a 3rd build definition. Having a single build definition with flag would be simpler, but then you have the overhead of loading B and C each time. If the Jazz SCM page of the build definition is set to not delete the load directory each time, the content is not actually transferred if unchanged though.