How can I use an artifact that has been successfully 'used' in other builds?
We have a single build configuration that produces an artifact containing everything needed to deploy the solution. e.g. project-1234.zip
The build is chained to another build configuration that deploys the artifact to our CI environment and runs a few smoke tests against it.
Overnight another build configuration kicks off, deploys the same artifact to the test environment and runs more in depth tests.
Finally once a week another build configuration deploys the dame artifact to the staging/UAT environment.
Depending on the current build state this deployment chain may fail at any point due to failing tests.
How can I configure TC (6.5) to use the most current artifact that has been used successfully in the previous build configuration?
[For reference this is pretty much as described in http://www.amazon.co.uk/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912]
The only two ways I can think of are pretty klunky:
1. Republish the zip files as a new artifact from each build configuration.
This seems like a terrible waste of disk space.
2. On successful CI build, attempt to tag the original build with CI; similarly DEV for successful dev etc. Then add a tag dependency for the level required.
This seems like a lot of extra steps to code up and I'm not even sure it will work.
Please sign in to leave a comment.
Hi James
Try to make a single build configuration with all the steps, then define that each step Execute proprty is "only of all previous steps were successful"
Hi Ziv,
We did start out with that as a solution but it won't work for a number of reasons:
1. The steps run at different times (build and CI are continuous), dev deploy is nightly and staging/UAT deploy is weekly.
2. The steps run on different build agents - CI, dev and staging environments are different servers.
Regards,
James.
I have a similar setup, and I just use a single deploy task with an artifact dependency to the build task. The target environment is set via a build parameter, which can be set via the scheduled trigger or via a manual run.