From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Landes Eric (RBNA/CIT4.2)
Sent: Thursday, January 08, 2004 7:36 PM
To: [EMAIL PROTECTED]
Subject: RE: [Nant-users] Newbie question on using nant to push to production
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Damir Simunic
Sent: Thursday, January 08, 2004 1:19 PM
To: [EMAIL PROTECTED]
Subject: RE: [Nant-users] Newbie question on using nant to push to productionI had similar experience with cruisecontrol.net: no scheduled builds, which is a pain.We've evaluated draco.net but found that cruisecontrol has better reporting capabilities over the web. They even had this control panel thing where you could see the status of all projects (haven't found it useful, though, as build scripts send build results to the mailing list). The issue I have with cruisecontrol is that it is under-documented if you want to go deeper into it.The only serious drawback (in addition to missing scheduling feature) was that you have to install a web app per project -- it cannot give centralized reports for all projects you control through it. It gets messy setting up all those virtual roots when you build 5-6 web projects and some have 12+ variants.Damirp.s. My cc.net build dates from past summer, don't know if they improved since.
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Morris, Jason
Sent: Thursday, January 08, 2004 7:07 PM
To: [EMAIL PROTECTED]
Subject: RE: [Nant-users] Newbie question on using nant to push to productionWe did not do an evaluation between the two because we only knew of Draco.NET at the time we were looking for a tool like this. Then a new developer joined the group that had experience with Draco.NET, so we choose that one.If you have looked at both, I would like to here your comments and maybe then see if my group needs to re-evaluate. However, Draco.NET does everything we need it to do, except for scheduled builds. There is a workaround for this though.Jason
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Landes Eric (RBNA/CIT4.2)
Sent: Thursday, January 08, 2004 10:49 AM
To: [EMAIL PROTECTED]
Subject: RE: [Nant-users] Newbie question on using nant to push to productionJason,This is fantastic, almost exactly the type of thing we want to do. And BTW, we want to have 4 environments (1 a training environment), so I don't have any questions about the need for that :-) .This really helps as I begin to build my scripts for this scenario. BTW have you tried CruiseControl.net vs draco.net? I could use either, haven't standaradized yet, so was wondering if there was a particular reason you went with Draco orver CC. Thanks.Eric L.-----Original Message-----
From: Morris, Jason [mailto:[EMAIL PROTECTED]
Sent: Thursday, January 08, 2004 12:23 PM
To: [EMAIL PROTECTED]
Subject: RE: [Nant-users] Newbie question on using nant to push to productionThis is exactly what my group does to push several ASP.NET (C# code behinds) web application between four different environments, dev, integration, pre-production, and production. Please no questions about the need for four environments! :)For each environment I have two targets set up. For example, in the development environment, we have:<target name="env-dev" depends="" description="Sets up the variables for a CAPability development build" ><property name="createDebugSymbols" value="true" /><property name="doClean" value="true" /><property name="web.server" value="OCSCCSDDEV02" />
<property name="web.server.share" value="\\${web.server}\caproot$" />
<property name="web.server.portal.dir" value="${web.server.share}\capability" />
<property name="web.server.portal.bin.dir" value="${web.server.portal.dir}\bin" />
<property name="web.server.portal.modules.dir" value="${web.server.portal.dir}\DesktopModules" />
<property name="web.server.services.dir" value="${web.server.share}\WebServices" /><property name="db.server" value="OCSCCSDDEV02" />
<property name="db.database" value="capability" />
<property name="db.userName" value="capability" />
<property name="db.password" value="capability" />
<property name="db.sa.password" value="**********" />
<property name="db.restore.path" value="d:\SqlDataFiles" /><property name="config.env" value="Development" />
<property name="url" value="http://dev-capability.intel.com" /><property name="isRestoreDb" value="true" /><property name="isLocal" value="false" />
<property name="isDevelopment" value="true" />
<property name="isIntegration" value="false" />
<property name="isPreProd" value="false" />
<property name="isProduction" value="false" /></target><target name="deploy" depends="env-dev, build-version" description="Deploys CAPability to the Development environment">
<property name="build.name" value="${project.name}-${build.version}" />
<property name="build.dir" value="${draco.build.dir}\${build.name}" />
<property name="draco.output.dir" value="${draco.build.dir}\output" />
<property name="db.scripts.dir" value="${build.dir}/dbScripts" />
<call target="info" />
<call target="build" />
<call target="analysis" /><echo message="" />
<echo message="Deploying ${project.name} (${build.name}) to development environment!" />
<echo message="" /><echo message="Restoring and updating ${project.name}'s development DB from latest backup of production..." />
<call target="update-db" />
<echo message="Updating ${project.name}'s web server..." />
<call target="clean-webserver" if="${doClean}" />
<call target="update-webserver" />
<call target="update-web-cachemonitor" /><cvstag root="${cvs.capability.root}" dest="." revision="v_${cvs.build.version}"/>
<call target="update-latest-dir" />
</target>In the "env-dev" target contians all my properties for that particular environment, server names, output paths etc. and then the "deploy" target calls all the other targets to build the dlls, restore the database and run alter scripts against it, and then copy all ascx, aspx, dll, etc out to the server.When I want to move my code to that environment, I just initiate the "deploy" target. Actually, we do this all through Draco.NET. We have a Draco.NET build called "Project.Deploy" that we invoke using the Draco.NET client on demand from a developer.We have had a lot of success with this and have proliferated this method through out the group. This might not be the best way, but it works for us.We even follow this method for nightly and release builds of dlls and libraries that don't necessarily get deployed anywhere, but get consumed by other projects.I hope this helps.Jason
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Landes Eric (RBNA/CIT4.2)
Sent: Thursday, January 08, 2004 9:22 AM
To: [EMAIL PROTECTED]
Subject: [Nant-users] Newbie question on using nant to push to productionJust wanted to see if I'm on the right track here. Do others use nant (in combination with something like Cruise Control.net or Draco.net) to push builds to a production environment? I'm wanting to automate our builds hoepfully from development to test to production, and it looks like I could use these tools to get there. Of course from Test to Production would have to be controlled some type of flag to automate the deployment of the current version.
I want to make sure that there's no pitfalls to this approach. I'd appreciate anyones comments, links or experiences with this. We're an in-house dev shop, with .net web apps. TIA
*******************************************
Eric Landes
Robert Bosch Corporation - Automotive Group
*******************************************
Computer Information Technology Office - Engineering Applications
401 N. Bendix Drive - South Bend, IN 46628
Phone: 574-237-2290
Fax: 574-237-3105