I'm trying to set up a build chain for my project so that I can have a quick integration build (build, unit test, FxCop, package), a slow regression test and a release (push binaries to server etc. etc.). I would like to try the following approach but I'm not sure how to chain them to get the desired result.
I would like to have 3 different configurations
This configuration should perform the build section: compile, unit test, Fxcop, package MSI / NuGet etc.. It will be triggered every time a developer commits a change to the repository (we're using GIT if that makes a difference)
This configuration will perform the automatic regression tests. These will be slow to execute so we don't want to do that each time we commit changes. The plan is for this configuration to trigger the Build configuration, wait for it to finish, grab the binaries and then execute the regression tests. We want to run this every night if any changes have been committed during the day.
This configuration will grab the MSI and nuget packages and push them to the release server etc. This configuration should trigger the Test configuration, wait for it to finish, grab the tested binaries and then execute the release steps. We only want to run this on demand.
I'd like to know:
* How to link the projects so that the builds function as explained
* How to get the files transferred between the build configurations (especially for release where they move from build -> test -> release)
* How to trigger the lower level configurations and then wait for them to finish