Search code examples
continuous-integrationbuild-automationjazz

Jazz SCM Continuous Integration - build stream vs. workspace?


I am in the process of setting up a continuous integration build for a Spring Roo application using the Rational Team Concert (RTC) IDE and Jazz build engine. When setting up the build definition, the Build Workspace field on the Jazz Source Control tab allows the selection of either a user's repository workspace or a stream.

The RTC Continuous Integration Best Practices and other Jazz build resources consistently refer to using a dedicated repository workspace associated with a build user, leading me to believe that this is the preferred approach. I have not been able to find any information on building from the stream directly. Our project's stream contains all of the artifacts required to build, and I have tested and confirmed that the continuous integration build works from the stream. I am unable to think of any reason why I would need to create and manage a specific workspace for this purpose.

My question is, am I playing with fire by building directly off of the stream? Are there potential downstream complications with this approach that I am not aware of?


Solution

  • Answering my own question in case another SO user has the same question in the future.

    After some experimentation, I discovered that a drawback to building directly from the stream was that it ignores the "Build only if there are changes accepted" property on the Jazz Source Control tab. As a result, builds from a stream may only be done at predefined intervals - it is not possible to configure the build to only happen when new changes have been committed to the stream.

    A dedicated workspace is required for the build to accept new changes from the stream and use them to trigger a build request.