Loaded components are not expected in command line- JBE build request
Try to create build definition "123_new": command-line - Jazz Build Engine and select Jazz Source control in pre-build page.
The Jazz Source Control page configuration is as below:
. Build Workspace: 123_workspace, its flow target stream is 123_stream
123_workspace has component c1, c2,c3,c4, 123_stream has c1,c2,c3,c4 and A,B,C components
. Load options:
load directory:/test/123_test/All_Components
Check: create folders for components
. Components to exclude: exclude c1,c2,c3
.No Component load rules specified
. Accept Options as default(both checked)
When request build 123_new, we notice that c4 is downloaded to /test/123_test/All_Components as well as A,B, C components.
Since A/B/C components are not in 123_workspace, the result confuses us as the Load options say:
Specify the load destination directory. This is the directory on the build machine where workspace files will be loaded.
As components A/B/C are not in the workspace 123_workspace but only in its flow target stream 123_stream, why are those
components downloaded to build directory as well? Does that mean that during build request, the inputs are actually from
stream but not repository workspace? And when stream has more components than in repository workspace, should
we have to go to Flow targets of workspace and select the components c1/c2/c3/c4 only by "flow only components checked below"?
(In this case Components to exclude: exclude c1,c2,c3 will be applied and the result is only c4 is to be loaded)
Is there any places we need to check with? or something we need to configure to prevent this from happening?
Appreciate if there is any inputs here. Thanks a lot.
One answer
Public builds will always be run off of the stream. The repository workspace would by default accept all changes on the stream including additional components. I would assume if you set up the build workspace to not load the additional components it would not do it during the build.
Here was a discussion that includes information on how you can do that, I think: https://jazz.net/forum/questions/82219/how-to-ignore-the-incoming-changes-for-an-unloaded-component
For a private build I just checked that apparently the build accesses the users repository workspace and uses the same load options. Only the components available in the repository workspace would be used. If the build definition excludes components they will not be loaded.
However, if the repository workspace contain components that are not in the stream (and can therefore not be selected for filtering) I would assume them to be loaded nonetheless.
Comments
Hi, Ralph
Thank you very much for the info and suggestions, they are very helpful. regarding private build, is it the one when you request the build and specify in build option as Personal Build? It seems I need to specify repository workspace for personal build. Since there is repository set in build definition, should I specify the same workspace in order for the build to be only run over c4 only(c1-c3 are filtered in load options) or it needs a separate workspace from the build definition?
Hi Don,
a private build is indeed requested when you check the specific option on requesting the build. The repository workspace you provide there is the one you want to build, for example the one you are just working on in your client with all the changes you checked in. This workspace must be visible to the build user, because the build will try to access the workspace to load the data. You dont provide the workspace used in the builddefinition. You shouldn't even have to know it, but just some public or scoped user repository workspace.
Hi, Ralph
Thank you very much for the info. As per your answer and info in https://jazz.net/forum/questions/12903/working-out-what-changes-were-in-a-private-build, using private build will only building what's there in the workspace. But our test result show the build has actually download all components available in stream which has more components than the workspace. I am not sure if what I tried with the personal build is what private build discussed here and in other forums. In our test, right click on the build definition and then request build, there is build option there to check Personal Build and specify workspace and we did that but obviously the result is not we expected.
I need to confirm what "private build" means here and how to create a private build if Personal Build we tried is not actually a private build. Could you please provide some more details on how to create private build in order to build the components in the workspace(we tried to set the workspace to private as well but not help)? Thanks a lot