Hi,
We have a repository which contains partially dependent projects. Lets say ProjectBase, ProjectA and ProjectB, ProjectA references ProjectBase and ProjectB also references ProjectBase, but ProjectA and ProjectB are otherwise independent. We need to compile all projects together due to these references, but we need to test them separately. This means, when changes occur on ProjectA, we do not need and do not want to run test for ProjectB, we need to run tests for ProjectA only.
We come up with the solution using dependent Bamboo plans. First plan checks out code from repository and compiles all projects with their test projects and publishes them in an artifact. Then we have plans that run tests for specific projects, one plan for ProjectA tests and one plan for ProjectB tests. These plans consume that artifact and use the compilation output of the first plan. They do not need to checkout the repository again, everything is contained in the artifact. The repository is rather large and we want to check it out as few as possible. We set same repository for the test plan to ensure that it will test same changesets as the compilation plan.
How can we run the test plans according to a changeset that runs a compilation plan? We observed that when the changeset is in ProjectA, plan for ProjectB correctly has no changeset listed in 'Commits' tab, but since it is a child plan of the compilation plan, it still got triggered and run jobs for that project.
Note: blocking test plans/waiting for the compilation plan to complete works as expected. For simplicity I describe the problem using only three projects, but we have about 15 projects in that repository, so it is crucial for us to run only tests that matter at the moment of a commit. Obviously, when the changeset is in ProjectBase, it triggers all test plans, there is no way around it.
Note 2: Sorry for possible duplicity, I asked about hour before but I cannot find the question in question list any more.