The VSTS Sprint 131 brought us a number of great enhancements including one that allows you to select only the artifacts you need for an agent phase of a release deployment. The artifact integration with VSTS releases provides seamless ability to build once and deploy to all environments. One limitation has been that that all of the artifacts are downloaded during each agent phase of the release. If you have multiple agent phases where a phase may not need all of the artifacts, this can help speed up the release.
In my release below, I have 3 phases. The only thing that the first and last phases do is start and stop the Test Agent VMs for the second phase. These two phases don’t use anything from the artifacts but by default the all the artifacts are downloaded. These two phases are great candidates for removing the artifact downloads completely.
To modify what is being downloaded from the artifact, select the agent phase and then find the artifact download section as highlighted below. Here you can select the artifacts that are needed for the agent phase.
After unselecting the artifact items for the first and last phase, each one looks like this.
I could also slimmed down the artifacts that are downloaded for Executing Test Run phase for the release. The Artifact contains the application deployment packages that are not needed for this. Currently all of my output assemblies are part of one artifact. If I modify my CI build to publish the test artifacts and the application assemblies separately, then I can be more granular and choose specific artifacts in the release.
Overall, this can help speed up larger releases by a few minutes. While this doesn’t sound like a lot, your teams should continue to improve and manage the overall time of your build and release times to keep this as efficient as possible. Every minute your CI/CD pipeline is running could be someone waiting for the build or release. If your release contains multiple artifacts or if you could benefit by using more specific artifacts, this is a great time to refactor your build and release to only be publishing what your releases need and to only pull down what each agent phase requires in the release.