RenegadeAndy
RenegadeAndy

Reputation: 5690

Creating a build process template which does nothing but copy all files to another directory

I would like to create a Build Definition inside TFS 2012 Express which will simply copy all files within my project source tree to another folder on my drive. Just to underline - I do not want the build output to go to another directory - I want the source files themselves to. The reason for this is I have IIS pointed at a specific folder, and I want the build to copy the latest asp and aspx files to the IIS hosted folder.

I am not sure of the intricacies of doing this, I did find : http://toadcode.blogspot.co.uk/2008/06/copy-multiple-files-via-tfs-build.html articles like this but I simply need a more direct list of what I need to do from somebody who understands this area.

Basically - when the build is queued, all I want is to copy my project source files to another directory :). I think this can be done by editing some Build.xml file...but when making a build definition I dont seem to be given the freedom to do what I would like to!

I think what I am looking for to alter my DefaultTemplate.11.1.xaml file to alter the build process which will let me run this / or a batch file after the build process completes?

My TFS build process edit screen looks like this: tfs

Upvotes: 1

Views: 7403

Answers (3)

Just TFS
Just TFS

Reputation: 4787

Add a bat file to your source folder. within the batch file add an xcopy %1*.* TargetLocation. Add an invoke process activity to your workflow, somewhere near the end. call the bat file and pass it the SourcesDirectory.

Upvotes: 1

DaveShaw
DaveShaw

Reputation: 52798

Using this post as a guide on how to start editing TFS Build Templates (or the Wrox TFS 2012 book), you need to make the following changes:

  • Locate the Copy to Drop Folder Activity:

Copy to Drop Location

  • Drag in a "CopyDirectory" activity under the "Drop Files to Drop Location" (from the Toolbox under Team Foundation Build Activities):

Copy Directory

  • Goto the Properties Window for the new Activity and set Source and Destination as follows:
    • Destination: Path.Combine(BuildDetail.DropLocation, "MyOutputFolder")
    • Source: Path.Combine(SourcesDirectory, "MyFileFolder")

You may need to repeat this if you don't have all your files in one folder.

Upvotes: 2

Daniel Mann
Daniel Mann

Reputation: 59018

I actually put something together for TFS2010 and 2013 (not 2012, unfortunately) a few weeks ago that does exactly that. Basically, anything in the workspace you define for your build just gets shoved over to the drop location.

Here's a link to the blog post where you can download them:

http://www.incyclesoftware.com/2014/06/deploying-uncompiled-resources-release-management/

For the record, I strongly recommend against using a build process template to deploy software. Don't try to overextend the build... its job is taking stuff from source control and compiling/packaging it for deployment. Use a real release management solution to actually handle deploying software.

Upvotes: 1

Related Questions