Alex Rivera | Logout

Delphi Build Automation and Continuous Integration feasible using MS Build only?

Asked 2010-02-22T18:32:30.510
22

I am looking to implement a continuous unit test running system, something I have heard called a "smoketest" or "tinderbox", (a build server that does clean version control check-outs and full system builds of everything in a given source repository or project), and something like "continuous integration" for small teams, with Delphi.

I am loathe to commit to a commercial "build server" product and am hoping I can do a lot of this just with MS-Build support that is built into delphi.

I am looking for resources, ideas, and a place to get started. I do not know how to use MS Build for this purpose. Steve Trevethen has a blog post that leads to a little discussion on the old dcc32 command line build, and some comments mention ms-build which has been here since delphi 2007. I am using Delphi 2010. I am looking for guidance and insight, and experiences, that will tell me, is this a reasonable path to go down, and if not, what way should I go instead?

I found you can override the Unit (DCU) and EXE Output Directory from the msbuild command line with /p:DCU_DcuOutput=. Note that I looked at the XML inside my DPROJ files to figure out how to override stuff.

However, it only does a make, not a build, and /t:rebuild does not work (edit: yes it does. it works fine on DPROJ files, but not on GroupProjects.)

I wish there was more MSBuild-with-Delphi documentation out there anywhere? The MS-Build help in "Rad Studio 2010" product documentation shows one or two things about MS-Build but is really sketchy and incomplete.

Related questions:

MSBuild command lines

Edit
Report

1 Answer

4

I'm not sure if this is what you need, but I have CruiseControl.NET setup for doing continuous integration - and DUnit tests - for Delphi 2009. CCNET has a specific set of tasks for MSBuild, and other than a few setup issues, it works perfectly for me.

I can let you know what I had to do get ths working if you need.

Mark

answered 2010-02-22T21:46:09.507

Your Answer