Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TfsBuilds: what does drop location solve?

Tags:

tfsbuild

I've been using TFS builds since workflow builds came out. I've never seen a need or desire for utilizing any of the following: enter image description here

  • Copy Build output to the server
    • what server? what directory?
  • `Copy build output to the following drop folder (UNC path, such as \server\share):
  • Process - Advanced - Private Drop Location

I've used it in high level banking automated builds, I've used tfs build, msbuild, and cc.net quite a lot.

Does it do something that setting /p:WebProjectOutputDir or /p:DeployOnBuild=true does not? Is it the reason that the Diagnostics -> View Logs option is always greyed out?enter image description here

What is the purpose of a drop folder?

like image 737
Maslow Avatar asked May 13 '14 16:05

Maslow


1 Answers

Please check what is drop folder in MSDN

When you define or queue a build definition, you can specify a path to a drop folder so that your build process can deliver binaries and log files to your team. Make sure the folder you’ve identified is prepared for use as a drop folder.

I think the main reason you don't need a drop folder is your project is web project and web project doesn't need to deliver binaries. If team is building a desktop application, a drop folder is required.

Here are two scenarios when a drop folder is useful:

  • Testers in your team find a bug and know it worked before. The system is too complicated and they are not able to find the root cause or the relate code directly. Also they want to confirm it's a bug introduced recently and is not a bug team didn't find for long time. So they start to deploy old build from drop folder to another environment. After they try a few builds (probably last build), they confirm that it's a bug only after build xx.xx.xxxx. Developers inspect changes checked in that specific build and fix it.

  • And another scenario. Team was close to release a new product. One developer fixed one bug, but testers found a more serious regression bug with the fix. It was too risky to make big changes in last minute. So team decided to deliver customer the build before the bug fix. They copied the old build from drop folder and sent them to customer.

The key point here is that drop folder gives team the flexibility to work on old version easily and team is able to work on multiple version in parallel.

The explanation of 3 options from MSDN

  • This build does not copy output files to a drop folder: Choose this option if you do not need output files.
  • Copy build output to the following drop folder: Choose this option if you want to copy output files to a drop folder on a file share server. In the box, type the UNC file path to the folder where you want the build system to put the output files. You must specify a folder that has been prepared for use as a drop folder. For more information, see Select a staging location and set up a drop folder.
  • Copy build output to the server: Choose this option to copy the built output to your Team Foundation Server.
like image 128
qxg Avatar answered Sep 23 '22 14:09

qxg