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.

3 comments
Comment actions Permalink

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"

0
Comment actions Permalink

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.

0
Comment actions Permalink

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.

0

Please sign in to leave a comment.