Imitation viagra Last time we talked about using RAKE instead of NAnt/MSBuild to build .NET projects. Start there if you're curious, imitation viagra or if you missed that episode. I'll wait.
Imitation viagra I've recently been helping out a colleague to get his build server up and running for his new project. It has been a major pain. The source code repository is TFS, imitation viagra the build automation tool is MSBuild, imitation viagra and the CI server is Cruise Control .NET. While these three are all decoupled from each other (TFS/TeamBuild, imitation viagra does really like MSBuild, imitation viagra however), imitation viagra its a bit of a pain to configure all of the XML, imitation viagra get plugins in the right place, imitation viagra etc. Imitation viagra to get everything to work just right. I've been there, imitation viagra done that myself several times, imitation viagra its doable, imitation viagra but not always the easiest thing to do.
Imitation viagra Installing CruiseControl.rb is a breeze, imitation viagra except there is an issue with the latest release when trying to run it on Windows. So instead of downloading it from the website, imitation viagra I would suggest pulling the repository with git, imitation viagra and using that version instead. First, imitation viagra install msysgit.
Imitation viagra Then you can execute the following command in your console
git clone git://rubyforge.org/cruisecontrolrb.git
Imitation viagra The rest of the steps are pretty simple and straightforward:
cruise add projectname -u https://path.to.your.svn.repo/yourproject/trunkcruise start
Imitation viagra That will start up the builder and the dashboard. The dashboard, imitation viagra by default will live on port 3333, imitation viagra so browse to http://yourmachine:3333 to view your dashboard. The path you use above should point to the directory where your RAKE file lives, imitation viagra that will make it easiest for CruiseControl.rb to get it right.
Imitation viagra It's pretty dead-simple to configure your project's builder too, imitation viagra you get sample configuration by default in your %USERDIR%/.cruise/projects/projectname/cruise_config.rb that you can modify however you want. Here is what that sample looks like:
# Project-specific configuration for CruiseControl.rb Project.configure do |project| # Send email notifications about broken and fixed builds to firstname.lastname@example.org, imitation viagra email@example.com (default: send to nobody) # project.email_notifier.emails = ['firstname.lastname@example.org', imitation viagra 'email@example.com'] # Set email 'from' field to firstname.lastname@example.org: # project.email_notifier.from = 'email@example.com' # Build the project by invoking rake task 'custom' # project.rake_task = 'custom' # Build the project by invoking shell script "build_my_app.sh". Imitation viagra Keep in mind that when the script is invoked, imitation viagra # current working directory is [cruise data]/projects/your_project/work, imitation viagra so if you do not keep build_my_app.sh # in version control, imitation viagra it should be '../build_my_app.sh' instead # project.build_command = 'build_my_app.sh' # Ping Subversion for new revisions every 5 minutes (default: 30 seconds) # project.scheduler.polling_interval = 5.minutes end
Imitation viagra Since it is just ruby code, imitation viagra I find that much more appealing than a big nasty XML configuration file, imitation viagra but I guess that's just my opinion.
Hooking it up to TFS
Imitation viagra I live in a TFS world at the office, imitation viagra so I have to play by those rules. But I learned from Morpheus that "... Imitation viagra rules of a computer system... Imitation viagra can be bent. Imitation viagra Others can be broken." I'm just bending them.
Imitation viagra The SvnBridge provides this rule bending behavior, imitation viagra by letting your subversion clients talk to your TFS repository, imitation viagra thereby allowing CruiseControl.rb to poll against what it thinks is a Subversion repository, imitation viagra but is actually a TFS repository. It's really simple to checkout your TFS repository against it using your favorite SVN repository, imitation viagra so I won't go into it here.
Imitation viagra The one thing I wanted to make super simple was putting things in the right place for build outputs. Turns out this is fairly simple after a few minutes with the docs. CruiseControl.rb sets an environment variable telling you where to put things. I abstracted a getter over top of it, imitation viagra so I can conditionally pick a different output location if I'm not inside of a CruiseControl.rb build. It looks like this:
def output_dir if ENV.keys.include?('CC_BUILD_ARTIFACTS') return ENV['CC_BUILD_ARTIFACTS'] else return 'results' end end
Imitation viagra As mentioned last time, imitation viagra you can see the latest version of the full RakeFile mentioned above here: http://jonfuller.googlecode.com/svn/trunk/code/CoreLib/RakeFile
Imitation viagra I'm feeling some serious CI/Build Automation bliss, imitation viagra hopefully this will get you on your way there too!
Viagra suppliers If you're used to using something like winmerge with your SCM of choice, viagra suppliers if you wind up using TFS, viagra suppliers the built-in diff/merge tools can leave much to be desired.
Viagra suppliers Here is how to change the tool VS 2kX uses to do diffs/merges when hooked up to TFS (note that these are my settings for using winmerge for ALL file types):
Viagra suppliers Go To: Tools/Options/SourceControl/Visual Studio Team Foundation Server/Configure User Tools
Viagra suppliers Click "Add..."
Command: C:\Program Files\WinMerge\WinMergeU.exe
Arguments: /e /wl /dl %6 /dr %7 %1 %2
Viagra suppliers Extension: .*
Command: C:\Program Files\WinMerge\WinMergeU.exe
Arguments: /ub /dl %6 /dr %7 %1 %2 %4
Viagra suppliers The winmerge command line reference can be found here.
Citrate salt of sildenafil Starting my new project in a new role, citrate salt of sildenafil as project lead, citrate salt of sildenafil I need to be managing things in TFS. The UI for batching these things up is nonexistent, citrate salt of sildenafil but there is Excel integration so you can do it all in Excel, citrate salt of sildenafil hit save, citrate salt of sildenafil and it all goes back to the TFS server... Citrate salt of sildenafil pretty slick I must say (I was actually in the midst of writing such a tool when I realized this functionality already existed OOB).
Citrate salt of sildenafil However, citrate salt of sildenafil the first time I tried to use this functionality... Citrate salt of sildenafil BLAM, citrate salt of sildenafil I get smacked with this:
Citrate salt of sildenafil TF80042: The document cannot be opened because you do not have Microsoft Excel 2003 or later, citrate salt of sildenafil or one of its components installed. Citrate salt of sildenafil For more information, citrate salt of sildenafil see the Team Foundation Installation Guide.
Citrate salt of sildenafil Isn't that teh suck?
Citrate salt of sildenafil Anyways, citrate salt of sildenafil there is a sweet write-up on how to fix it here: http://blogs.microsoft.co.il/blogs/srlteam/archive/2007/07/17/Error-when-trying-to-export-queries-to-Excel.aspx.
Citrate salt of sildenafil Thanks Elad!