|
This
is an example NANT build script for database builds.
<?xml version="1.0"?>
<project name="TEST Build" default="full" basedir="." xmlns="http://nant.sf.net/schemas/nant-0.85.win32.net-1.0.xsd">
<description>
Test Build file
</description>
<!-- **************** Properties ******************* -->
<property name="VSSPath" value="\\uk-hosting41\tesa_vss\srcsafe.ini"/>
<property name="VssUsername" value="ibisonp"/>
<property name="VssPassword" value=""/>
<!-- all database properties -->
<property name="DBUserName" value="BobTheBuilder"/>
<property name="DBUserPassword" value="BobTheBuilder"/>
<property name="DBName" value="TESA_Build_Database"/>
<property name="ConnString" value="server=uk-hosting02;database=TESA_Build_Database;user=BobTheBuilder;password=BobTheBuilder;"
/>
<property name="DbCoreFilesFolder" value="C:\testNANT\Build\Database\"/>
<property name="DbStoredProcedureFilesFolder" value="C:\testNANT\Build\Database\storedprocs"/>
<!-- ************* Main build targets ******************* -->
<!-- Builds the database and the site -->
<target name="buildDatabaseCompletely">
<echo message="Make sure the database version has been updated as
required!! Starting build..." />
<call target="CleanAllFiles"/>
<call target="getCoreDBFilesVSS"/>
<call target="getStoredProcDBFilesVSS"/>
<call target="DB_CreateNewDatabase"/>
<call target="DB_CreateTables"/>
<call target="DB_CreateManualStoredProcedures"/>
</target>
<!-- ********* Component targets called by the main build targets
************* -->
<!-- Clean target will delete the current version -->
<target name="CleanAllFiles" description="remove all generated
files">
<echo message="Cleaning output directory..." />
<delete dir="${DbCoreFilesFolder}" failonerror="false" />
</target>
<!-- Gets the latest version of DB code from vss -->
<target name="getCoreDBFilesVSS">
<echo message="Getting source code from VSS..." />
<vssget
username="${VssUsername}"
password="${VssPassword}"
localpath="${DbCoreFilesFolder}"
recursive="true"
replace="false"
writable="true"
dbpath="${VSSPath}"
path="$/TESA_R1/Database/General/TestNant" />
</target>
<!-- Gets the latest stored procs from vss -->
<target name="getStoredProcDBFilesVSS">
<echo message="Getting source code from VSS..." />
<vssget
username="${VssUsername}"
password="${VssPassword}"
localpath="${DbStoredProcedureFilesFolder}"
recursive="true"
replace="false"
writable="true"
dbpath="${VSSPath}"
path="$/TESA_R1/Database/General/TestNant/storedprocs" />
</target>
<!-- create the db for testing. -->
<target name="DB_CreateNewDatabase">
<echo message="Running : A 10 Create Database.sql"/>
<exec program="sqlcmd" commandline='-S uk-hosting02 -d master -U ${DBUserName}
-P ${DBUserPassword} -i "${DbCoreFilesFolder}\A 10 Create
Database.sql"'> </exec>
</target>
<!-- Creates the tables and Indexes -->
<target name="DB_CreateTables">
<echo message="Running : C 20 Add Tables.sql"/>
<exec program="sqlcmd" commandline='-S uk-hosting02 -d ${DBName} -U
${DBUserName} -P ${DBUserPassword} -i "${DbCoreFilesFolder}\C 20 Add
Tables.sql"'> </exec>
</target>
<!-- Creates the manual stored procedures -->
<target name="DB_CreateManualStoredProcedures">
<delete file="${DbStoredProcedureFilesFolder}\allManualsps.sql"
failonerror="false" />
<delete file="${DbStoredProcedureFilesFolder}\vssver.scc"
failonerror="false" />
<foreach item="File" in="${DbStoredProcedureFilesFolder}"
property="filename">
<!--<echo message="Creating stored proc : '${filename}' on database
'${DBName}':"/>-->
<exec program="sqlcmd" commandline='-S uk-hosting02 -d ${DBName} -U
${DBUserName} -P ${DBUserPassword} -i "${filename}"'> </exec>
</foreach>
</target>
</project>
|