Limitation
You will not be able to control how Bamboo detects changes using exclusionary mappings or overlay mappings.
Please note, this issue does not affect you if you only trigger your builds on a schedule or manually, as Bamboo agents still build the correct code when triggered.
Background
Bamboo currently uses the depot view, not the client view, when detecting changes. Hence, any exclusionary and overlay mappings will not be not available during change detection.
For example, if a p4 client uses an overlay mapping like this one;
//depot/Prj/... //clientName/depot/Prj/...
+//depot/Dep/... //clientName/depot/Prj/Dep/... |
and the 'Depot' specified in a plan's repository configuration is;
//clientName/depot/Prj/... |
then Bamboo will lookup the corresponding depot view and detect changes by running the following command:
p4 changes //depot/Prj/... |
Consequently, no changes to files in //clientName/depot/Prj/Dep/... will be picked up by change detection, despite the overlay mapping.
Hence, if you set up your build to trigger when code is updated it will not trigger correctly.
Workarounds
A partial workaround is available in Bamboo, if you wish to use exclusionary mappings for your client workspace. Specify your build plan to exclude files that match a specified pattern by choosing 'Exclude all changes that match the following pattern' from the 'Include / Exclude Files' dropdown (under the 'Common repository configuration' section). See this document for further details. Please note, this will only exclude one pattern whereas multiple exclusions can be specified in an exclusionary mapping.
Unfortunately, there is no workaround for overlay mappings in Bamboo.
Please note, we are aware of these problems and are working to address them — see the following JIRA issue for further information, BAM-3323. |