tags:

views:

66

answers:

1

Hi!

I'm currently building my first msbuild release task. What are the essential tasks that "should" be performed on every build?

Thinking of settings like optimize code, define several constants etc.

What do you do in every release build?

Thanks

+4  A: 

I do the following on every build...continuous integration with NAnt/CruiseControl.net

  • build
  • test
  • integration test (build database from ground up via scripts, check database integration, roll back database to clean state, etc.)
  • perform code analytics (ndepend, ncover, //todo reporting, //codedebt reporting, stylecop)
  • minification of code if going out to the web
  • email status/reporting to everyone
  • deploy to centralized development server
  • bundle code into an archive to support roll-back capabilities

These are what I like to do...though I am sure that there is a lot more you can do!

Andrew Siemer
Thanks for your answer, many good points. What exactly do u use to do the todo reporting?
alexn
I am actually writing an article about this right now for DotNetSlackers.com. I wrote a custom NAnt task that recursively iterates through all the code files in a specified directory (among other things) and looks for //TODO and another one to look for //CODEDEBT. It then reports the findings (file, line number, etc.) up to the build process. This way we have a fair amount of infor to work off of in our planning sessions.
Andrew Siemer
How is it going with your article? Can't seem to find it
alexn
Here is the series that I am writing which includes setting up your dev environment, the local build process, and continuous integration. This is a very deep and thorough discussions of these concepts...enjoy! http://dotnetslackers.com/projects/StackOverflowInspiredKnowledgeExchange/
Andrew Siemer
Oh, so thats you! I've read your Knowledge articles several times and really like them!
alexn
:P Thank you for the compliment!
Andrew Siemer