要手工维护多个branch的代码有点麻烦,原先设想ftp的文件同步,后来觉得nant就够了,而且nant支持script后能做的事情更多了。
用nant原理很简单,daily build的机器从source control服务器获得最新的代码,编译、备份、压缩发布到http服务器。
然后每个branch的机器用nant备份旧代码,再用http服务器下载的新代码来替换掉旧代码。
最简单的例子。
<?xml version="1.0"?>
<project name="myproject" default="build" basedir=".">
<property name="myproject.codefilename" value="code.zip" readonly="true" />
<property name="myproject.codesourceurl" value="http://myserver/code/code.zip" readonly="true" />
<property name="myproject.zipfolder" value=".\temp" />
<property name="myproject.applicationdir" value="C:\tempfolder" />
<target name="clean">
<delete>
<fileset>
<include name="${myproject.codefilename}"/>
<include name="${myproject.zipfolder}/*.*"/>
<include name="${myproject.zipfolder}/**" />
</fileset>
</delete>
</target>
<target name="downloadcode" >
<get src="${myproject.codesourceurl}" dest="${myproject.codefilename}">
<credentials username="name" password="password" domain="domain" />
</get>
<unzip zipfile="${myproject.codefilename}" todir="${myproject.zipfolder}"/>
</target>
<target name="build" depends="downloadcode" >
<copy todir="${myproject.applicationdir}" flatten="false" overwrite="true">
<fileset basedir="${myproject.zipfolder}">
<include name="**" />
<exclude name="**/*.config" />
</fileset>
</copy>
<call target="clean" />
</target>
</project>