Continuous Integration problem with multiple components
So we have this project that is set up like this:
Project Stream has 3 Components:
BuildDefinitionA polls every 10 minutes so that whenever there is a change, it will proceed with the build.
However, we wanted it to be set up so that BuildDefinitionA will proceed with the build if and only if the change goes into ComponentA. So if there are changes in ComponentB or ComponentC, we don't want BuildDefinitionA proceed with a build.
Right now, this is not the case. BuildDefinitionA gets triggered regardless which Component gets changed.
I toyed with the idea of having BuildDefinitionA's build workspace not having all the Components (just ComponentA), but this does not seem to work.
Appreciate any thoughts on this matter.
Project Stream has 3 Components:
- ComponentA
- ComponentB
- ComponentC
- BuildDefinitionA
- BuildDefinitionB
- BuildDefinitionC.
BuildDefinitionA polls every 10 minutes so that whenever there is a change, it will proceed with the build.
However, we wanted it to be set up so that BuildDefinitionA will proceed with the build if and only if the change goes into ComponentA. So if there are changes in ComponentB or ComponentC, we don't want BuildDefinitionA proceed with a build.
Right now, this is not the case. BuildDefinitionA gets triggered regardless which Component gets changed.
I toyed with the idea of having BuildDefinitionA's build workspace not having all the Components (just ComponentA), but this does not seem to work.
Appreciate any thoughts on this matter.
Accepted answer
You are on the right track. BuildDefinitionA's build workspace should have only ComponentA in it, not the other two components. But if that's all you do, then the other two components will be accepted into the build workspace every time you run a build.
To keep the build workspace from accepting the other components, you need to open the build workspace in the Eclipse client, go to the Flow Targets section at the bottom, select the stream, click the Edit button, select "Flow only components checked below", and then select only ComponentA. If you do that, then BuildDefinitionA should be run only when there are changes to ComponentA. Changes to the other component should not cause the build to run.