Bamboo is using the latest definition of artifacts in the Deploy step "Artifact Download": "All artifacts" rather than using the definition based on the CI at the time and therefore failing to deploy an old build if a newer build has introduced a new artifact.
To explain this further:
- Build 1 creates shared artifact A -> Release 1 downloads all artifacts and gets artifact A
- Build 2 creates shared artifact A + B -> Release 2 downloads all artifacts and gets A + B
- Deploy Release 1 again, this now fails because artifact B doesn't exist in Build 1
It is difficult to work out how to change the CI to be compatible again with release 1 and keep track of the changes for release 2.
Instead it would be good if there was a mechanism to define the artifact definition in code/xml/json etc. that is versioned along with the rest of the code in the build. Is this possible today?