We currently use NAnt with StarTeam.  Here's our NAnt file 

 
<?xml version="1.0" encoding="UTF-8"?>



    <property name="checkin" value="true" />
    <property name="label" value="true" />
    <property name="current.directory" 
value="${directory::get-current-directory()}" />
    <property name="assembly.name" value="Prism.exe" />
    <property name="assembly" value="release/${assembly.name}" />
    <property name="starteam.command.path" value="C:/Program 
Files/Borland/StarTeam 6.0/stcmd.exe" />
    <property name="starteam.user" value="user" />
    <property name="starteam.password" value="password" />
    <property name="starteam.server" value="eadmv01:49205" />
    <property name="starteam.project" value="MapsGeneral" />
    <property name="starteam.url" value="${starteam.user}:[EMAIL 
PROTECTED]/${starteam.project}/Sources/Maps" />

    <target name="deleteSource" description="Clean out client bin directory">
    
        <echo message="Cleaning out client bin directory" />
        
        <delete>
            <fileset>
                <include name="${current.directory}/bin/client/*.*" />
            </fileset>
        </delete>
    
    </target>
    
    <target name="buildclient" description="Build MAPS Application in release 
mode" depends="deleteSource">
        
        <echo message="Building MAPS Application in release mode..." />
        
        <nant buildfile="MAPSDeploy.Build" />
        
    </target>
    
    <target name="getbuildversion" description="Get version of MAPS assembly" 
depends="buildclient">
    
        <echo message="Getting MAPS Assembly build version number..." />
        
        <property name="assembly.version" 
value="${assemblyname::get-version(assemblyname::get-assembly-name(assembly))}" 
/>
        
        <echo message="Assembly build version number: ${assembly.version}" />
    
    </target>
    
    <target name="buildmanifest" description="Execute MAPSMigrate to build 
ServerManifest.xml file" depends="getbuildversion">
    
        <echo message="Building server manifest file for Bootstrapper..." />
        
        <exec program="${current.directory}/lib/MAPSMigrate.exe" 
basedir="${current.directory}/lib" workingdir="${current.directory}/lib">
            <arg value="${assembly.version}" />
            <arg 
value="${current.directory}/bin/client/configs/ServerManifest.xml" />
            <arg value="${current.directory}/release" />
        </exec>
    
    </target>
    
    <target name="copyclientfiles" description="Copy client files to bin" 
depends="buildmanifest">

        <copy todir="bin/client" overwrite="true">
            <fileset basedir="release/">
                <include name="*.dll" />
                <include name="*.exe" />
            </fileset>
        </copy>
    
    </target>
    
    <target name="checkinclientfiles" description="Check client files into 
StarTeam" depends="copyclientfiles">

        <if test="${checkin}">
            <echo message="Checking client files into StarTeam..." />
        
            <exec program="${starteam.command.path}" 
workingdir="${current.directory}\bin\client">
                <arg value="ci" />
                <arg value="-p" />
                <arg value="${starteam.url}/bin/client" />
                <arg value="-u" />
                <arg value="-o" />
                <arg value='-r "New build - ${assembly.version}"' />
                <arg value="*.*" />
            </exec>
            
            <exec program="${starteam.command.path}" 
workingdir="${current.directory}\bin\client\configs">
                <arg value="ci" />
                <arg value="-p" />
                <arg value="${starteam.url}/bin/client/configs" />
                <arg value="-u" />
                <arg value="-o" />
                <arg value='-r "New build - ${assembly.version}"' />
                <arg value="*.xml" />
            </exec>
        </if>
        
        <ifnot test="${checkin}">
            <echo message="StarTeam client file checkin was bypassed..." />
        </ifnot>
        
    </target>
    
    <target name="checkinserverfiles" description="Check server files into 
StarTeam" depends="checkinclientfiles">

        <if test="${checkin}">
            <echo message="Checking server files into StarTeam..." />
        
            <exec program="${starteam.command.path}" 
workingdir="${current.directory}\bin\server">
                <arg value="ci" />
                <arg value="-p" />
                <arg value="${starteam.url}/bin/server" />
                <arg value="-u" />
                <arg value="-o" />
                <arg value='-r "New build - ${assembly.version}"' />
                <arg value="*.*" />
            </exec>
        </if>
        
        <ifnot test="${checkin}">
            <echo message="StarTeam server file checkin was bypassed..." />
        </ifnot>
        
    </target>
    
    <target name="labelbuild" description="Label with current build number" 
depends="checkinserverfiles">
    
        <if test="${label}">
            <echo message="Labelling /sources with latest build number - 
${assembly.version}..." />
        
            <exec program="${starteam.command.path}" 
workingdir="${current.directory}">
                <arg value="label" />
                <arg value="-p" />
                <arg value="${starteam.url}" />
                <arg value="-nl" />
                <arg value="${assembly.version}" />
                <arg value="-x" />
            </exec>
        </if>
        
        <ifnot test="${label}">
            <echo message="Labelling bypassed for build - 
${assembly.version}..." />
        </ifnot>
        
    </target>
    
</project>


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
NAnt-users mailing list
NAnt-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to