309 lines
15 KiB
XML
309 lines
15 KiB
XML
<?xml version="1.0" ?>
|
|
<project name="umbraco" default="test" basedir=".">
|
|
<description>Build the umbraco 3.1.x Application</description>
|
|
|
|
<!-- global properties, generally won't change -->
|
|
|
|
<property name="nant.settings.currentframework" value="net-2.0" />
|
|
|
|
<!-- filenames and directories, generally won't change -->
|
|
|
|
<property name="web.dir" value="D:\inetpub\wwwroot\v4.umbraco.org" />
|
|
<property name="public.dir" value="D:\inetpub\wwwroot\nightlies\umbraco 4.1" />
|
|
<property name="root.dir" value="${directory::get-current-directory()}" />
|
|
<property name="source.dir" value="${root.dir}\umbraco\presentation" />
|
|
<property name="build.dir" value="${root.dir}\build" />
|
|
<property name="dlls.dir" value="${root.dir}\foreign dlls" />
|
|
|
|
<property name="build.version" value="4.1"/>
|
|
|
|
<property name="docs.dir" value="${root.dir}\docs" />
|
|
|
|
<property name="win.dir" value="c:\WINDOWS" />
|
|
<property name="Webdeploy.dir" value="C:\Program Files\MSBuild\Microsoft\WebDeployment\v8.0" />
|
|
|
|
<!-- Sandcastle Directories -->
|
|
<property name="sandcastle.dir" value="c:\Program Files\Sandcastle" />
|
|
<property name="sandcastle.workingdir" value="${root.dir}\docs\SandcastleWorkingDir" />
|
|
<property name="sandcastle.output.dir" value="${sandcastle.workingdir}\Output" />
|
|
|
|
<!-- Sandcastle -->
|
|
<property name="sandcastle.mrefbuilder" value="${sandcastle.dir}\productiontools\mrefbuilder.exe" />
|
|
<property name="sandcastle.buildassembler" value="${sandcastle.dir}\productiontools\buildassembler.exe" />
|
|
<property name="sandcastle.xsltransform" value="${sandcastle.dir}\productiontools\xsltransform.exe" />
|
|
|
|
<!-- YUI -->
|
|
<property name="YUICompressor.dir" value="D:\inetpub\wwwroot\ccnet\buildTools\YUI" />
|
|
|
|
|
|
<!-- Build source -->
|
|
<target name="build" depends="init">
|
|
<attrib normal="true" readonly="false">
|
|
<fileset basedir="${root.dir}">
|
|
<include name="**/*" />
|
|
</fileset>
|
|
</attrib>
|
|
|
|
<exec program="${win.dir}\microsoft.net\framework\v3.5\msbuild.exe">
|
|
<arg value="${root.dir}\umbraco.sln" />
|
|
</exec>
|
|
|
|
<exec program="${win.dir}\microsoft.net\framework\v2.0.50727\aspnet_compiler.exe" commandline="-f -u -p umbraco/presentation -v / "${build.dir}""/>
|
|
</target>
|
|
|
|
|
|
<!-- Directories and files -->
|
|
<target name="directories" depends="build">
|
|
|
|
<!-- setup docs files -->
|
|
<mkdir dir="${docs.dir}" />
|
|
<copy todir="${docs.dir}">
|
|
<fileset basedir="${build.dir}\bin">
|
|
<include name="*.xml" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!--standard web.config-->
|
|
<copy file="${root.dir}\config templates\web.config" tofile="${build.dir}\web.config" failonerror="false" overwrite="true"/>
|
|
|
|
<!--standard /config files-->
|
|
<copy file="${root.dir}\config templates\config\404handlers.config" tofile="${build.dir}\config\404handlers.config" failonerror="false" overwrite="true"/>
|
|
<copy file="${root.dir}\config templates\config\dashboard.config" tofile="${build.dir}\config\dashboard.config" failonerror="false" overwrite="true"/>
|
|
<copy file="${root.dir}\config templates\config\formhandlers.config" tofile="${build.dir}\config\formhandlers.config" failonerror="false" overwrite="true"/>
|
|
<copy file="${root.dir}\config templates\config\metablogconfig.config" tofile="${build.dir}\config\metablogconfig.config" failonerror="false" overwrite="true"/>
|
|
<copy file="${root.dir}\config templates\config\restextensions.config" tofile="${build.dir}\config\restextensions.config" failonerror="false" overwrite="true"/>
|
|
<copy file="${root.dir}\config templates\config\xsltextensions.config" tofile="${build.dir}\config\xsltextensions.config" failonerror="false" overwrite="true"/>
|
|
<copy file="${root.dir}\config templates\config\tinymceconfig.config" tofile="${build.dir}\config\tinymceconfig.config" failonerror="false" overwrite="true"/>
|
|
<copy file="${root.dir}\config templates\config\umbracosettings.config" tofile="${build.dir}\config\umbracosettings.config" failonerror="false" overwrite="true"/>
|
|
<copy file="${root.dir}\config templates\config\urlrewriting.config" tofile="${build.dir}\config\urlrewriting.config" failonerror="false" overwrite="true"/>
|
|
|
|
<!--standard /data/packages files-->
|
|
<copy file="${root.dir}\config templates\packages\installedPackages.config" tofile="${build.dir}\data\packages\installed\installedPackages.config" failonerror="false" overwrite="true"/>
|
|
<copy file="${root.dir}\config templates\packages\createdPackages.config" tofile="${build.dir}\data\packages\created\createdPackages.config" failonerror="false" overwrite="true"/>
|
|
|
|
<!-- Standard access.xml file-->
|
|
<copy file="${root.dir}\config templates\access.xml" tofile="${build.dir}\data\access.xml" failonerror="false" overwrite="true"/>
|
|
|
|
<!-- Standard create UI.xml-->
|
|
<copy file="${root.dir}\config templates\config\UI.xml" tofile="${build.dir}\umbraco\config\create\UI.xml" failonerror="false" overwrite="true"/>
|
|
|
|
<!-- Standard empty cache file -->
|
|
<copy file="${root.dir}\config templates\umbraco.config" tofile="${build.dir}\umbraco\data\umbraco.config" failonerror="false" overwrite="true"/>
|
|
|
|
<!-- Baseline Language file for translation tool -->
|
|
<copy file="${build.dir}\umbraco\config\lang\en.xml" tofile="${web.dir}\usercontrols\translation\langs\en.xml" failonerror="false" overwrite="true"/>
|
|
|
|
|
|
<!-- standard folders -->
|
|
<mkdir dir="${build.dir}\App_Code" />
|
|
<mkdir dir="${build.dir}\App_Data" />
|
|
|
|
<mkdir dir="${build.dir}\media" />
|
|
<mkdir dir="${build.dir}\masterpages" />
|
|
<mkdir dir="${build.dir}\scripts" />
|
|
<mkdir dir="${build.dir}\css" />
|
|
<mkdir dir="${build.dir}\python" />
|
|
<mkdir dir="${build.dir}\xslt" />
|
|
<mkdir dir="${build.dir}\usercontrols" />
|
|
|
|
<delete dir="${build.dir}\webservices" />
|
|
<delete dir="${build.dir}\umbracoBase" />
|
|
<delete dir="${build.dir}\Web References" />
|
|
<delete dir="${build.dir}\obj" />
|
|
<delete dir="${build.dir}\properties" />
|
|
|
|
<delete>
|
|
<fileset>
|
|
<include name="${build.dir}/**/*.build" />
|
|
<include name="${build.dir}/**/*.csproj" />
|
|
<include name="${build.dir}/**/*.vspscc" />
|
|
<include name="${build.dir}/**/*.scc" />
|
|
<include name="${build.dir}/**/*.sln" />
|
|
<include name="${build.dir}/**/*.compiled" />
|
|
<include name="${build.dir}/**/*.resx" />
|
|
<include name="${build.dir}/PrecompiledApp.config" />
|
|
<include name="${build.dir}/web.config.template" />
|
|
</fileset>
|
|
</delete>
|
|
|
|
</target>
|
|
|
|
<!-- Minify -->
|
|
<target name="minify" description="minify JS files" depends="directories">
|
|
<fileset basedir="${build.dir}" id="jsFileSet">
|
|
<include name="umbraco/css/*.css"/>
|
|
<include name="umbraco/js/**/*.js"/>
|
|
|
|
<include name="umbraco_client/**/*.js"/>
|
|
<include name="umbraco_client/**/*.css"/>
|
|
</fileset>
|
|
|
|
<property name="js_files" value=""/>
|
|
<foreach item="File" property="file">
|
|
<in>
|
|
<items refid="jsFileSet"/>
|
|
</in>
|
|
<do>
|
|
<exec program="java" workingdir="${YUICompressor.dir}" failonerror="false">
|
|
<arg value="-jar" />
|
|
<arg value="yuicompressor.jar" />
|
|
<arg value="-o" />
|
|
<arg value="${file}.min" />
|
|
<arg value="${file}" />
|
|
</exec>
|
|
<move file="${file}.min" tofile="${file}" overwrite="true" failonerror="false"/>
|
|
</do>
|
|
</foreach>
|
|
</target>
|
|
|
|
<!-- Documentation -->
|
|
<target name="documentation" depends="directories">
|
|
<!-- Transformations -->
|
|
<property name="sandcastle.addfriendlyfilenames.xsl" value="${sandcastle.dir}\ProductionTransforms\AddFriendlyFilenames.xsl" />
|
|
<property name="sandcastle.reflectiontomanifest.xsl" value="${sandcastle.dir}\ProductionTransforms\ReflectionToManifest.xsl" />
|
|
|
|
<property name="sandcastle.buildassembler.config" value="${sandcastle.dir}\Presentation\wiki\configuration\sandcastle.config" />
|
|
|
|
<!-- Create a doc dir and move vs comment files to it-->
|
|
<mkdir dir="${docs.dir}" />
|
|
<copy todir="${docs.dir}">
|
|
<fileset basedir="${build.dir}\bin">
|
|
<include name="*.xml" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- Create or Cleanup Working Directory -->
|
|
<mkdir dir="${sandcastle.workingdir}" if="${not directory::exists(sandcastle.workingdir)}" />
|
|
<delete>
|
|
<fileset basedir="${sandcastle.workingdir}">
|
|
<include name="**\*" />
|
|
</fileset>
|
|
</delete>
|
|
|
|
<copy file="${sandcastle.buildassembler.config}" tofile="${sandcastle.workingdir}\Sandcastle.config">
|
|
<filterchain>
|
|
<replacestring from="%DXROOT%\" to="${sandcastle.dir}" />
|
|
<replacestring from=".\comments.xml" to="${docs.dir}\*.xml" />
|
|
</filterchain>
|
|
</copy>
|
|
|
|
<!-- Run MRefBuilder (introspection on assemblies) to create basic Reflection XML -->
|
|
<exec program="${sandcastle.mrefbuilder}" workingdir="${sandcastle.workingdir}">
|
|
<arg value=""${build.dir}\bin\businesslogic.dll" " />
|
|
<arg value=""${build.dir}\bin\cms.dll" " />
|
|
<arg value=""${build.dir}\bin\controls.dll" " />
|
|
<arg value=""${build.dir}\bin\interfaces.dll" " />
|
|
<arg value=""${build.dir}\bin\umbraco.datalayer.dll" " />
|
|
<arg value=""${build.dir}\bin\umbraco.dll" " />
|
|
<arg value=""${build.dir}\bin\umbraco.editorcontrols.dll" " />
|
|
<arg value=""${build.dir}\bin\umbraco.providers.dll" " />
|
|
<arg value=""${build.dir}\bin\umbraco.webservices.dll" " />
|
|
<arg value="/out:reflection.org" />
|
|
</exec>
|
|
|
|
<!-- Regroup overloads -->
|
|
<exec program="${sandcastle.xsltransform}" workingdir="${sandcastle.workingdir}">
|
|
<arg value="reflection.org" />
|
|
<arg value="/xsl:"${sandcastle.addfriendlyfilenames.xsl}"" />
|
|
<arg value="/out:reflection.xml" />
|
|
</exec>
|
|
|
|
|
|
<exec program="${sandcastle.xsltransform}" workingdir="${sandcastle.workingdir}">
|
|
<arg value="reflection.org" />
|
|
<arg value="/xsl:"${sandcastle.reflectiontomanifest.xsl}"" />
|
|
<arg value="/out:manifest.xml" />
|
|
</exec>
|
|
|
|
<exec program="${sandcastle.buildassembler}" workingdir="${sandcastle.workingdir}">
|
|
<arg value="/config:Sandcastle.config" />
|
|
<arg value="manifest.xml" />
|
|
</exec>
|
|
</target>
|
|
|
|
|
|
<!-- do the full release with docs, minify and nightly file distribution -->
|
|
<target name="release" depends="zip,minify">
|
|
<property name="assembly.name" value="${ assemblyname::get-version( assemblyname::get-assembly-name('umbraco/presentation/bin/umbraco.dll') ) }"/>
|
|
<property name="release.filename" value="${root.dir}\build_${build.version}_${assembly.name}.zip" />
|
|
|
|
<mkdir dir="${public.dir}\${build.version}" />
|
|
<copy file="${release.filename}" tofile="${public.dir}\${build.version}\${assembly.name}.zip" />
|
|
</target>
|
|
|
|
<!-- do the full release with docs, minify and nightly file distribution -->
|
|
<target name="zip" depends="directories">
|
|
<property name="assembly.name" value="${ assemblyname::get-version( assemblyname::get-assembly-name('umbraco/presentation/bin/umbraco.dll') ) }"/>
|
|
<property name="release.filename" value="${root.dir}\build_${build.version}_${assembly.name}.zip" />
|
|
|
|
<zip zipfile="${release.filename}" includeemptydirs="true" >
|
|
<fileset basedir="${root.dir}">
|
|
<include name="build/*" />
|
|
<include name="build/**/*" />
|
|
</fileset>
|
|
</zip>
|
|
</target>
|
|
|
|
<!-- do a nightly build without the minification and docs -->
|
|
<target name="nightly" depends="zip">
|
|
<property name="assembly.name" value="${ assemblyname::get-version( assemblyname::get-assembly-name('umbraco/presentation/bin/umbraco.dll') ) }"/>
|
|
<property name="release.filename" value="${root.dir}\build_${build.version}_${assembly.name}.zip" />
|
|
|
|
<mkdir dir="${public.dir}\${build.version}" />
|
|
<copy file="${release.filename}" tofile="${public.dir}\${build.version}\${assembly.name}.zip" />
|
|
</target>
|
|
|
|
<!-- will produce the a clean /build folder and nothing else-->
|
|
<target name="test" depends="directories">
|
|
|
|
</target>
|
|
|
|
<target name="webPIRelease" depends="release,webPiFile">
|
|
<copy file="${root.dir}\webPi_sha.txt" tofile="${public.dir}\${build.version}\webPi_sha.txt" />
|
|
<copy file="${root.dir}\Umbraco_${build.version}_WebDeploy.zip" tofile="${public.dir}\${build.version}\Umbraco_${build.version}_WebDeploy.zip" />
|
|
</target>
|
|
|
|
<!-- do the webdeploy release for web PI-->
|
|
<target name="webPiFile" depends="directories">
|
|
|
|
<property name="webpi.dir" value="${root.dir}\deploy" />
|
|
|
|
<delete dir="${webpi.dir}\umbraco" />
|
|
|
|
<mkdir dir="${webpi.dir}" />
|
|
<mkdir dir="${webpi.dir}\umbraco" />
|
|
|
|
<copy todir="${webpi.dir}\umbraco" includeemptydirs="true" >
|
|
<fileset basedir="${root.dir}">
|
|
<include name="build/*" />
|
|
<include name="build/**/*" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<copy file="d:\webpiAssets\installSQL.sql" tofile="${webpi.dir}\installSQL.sql" failonerror="false"/>
|
|
<copy file="d:\webpiAssets\manifest.xml" tofile="${webpi.dir}\manifest.xml" failonerror="false"/>
|
|
<copy file="d:\webpiAssets\parameters.xml" tofile="${webpi.dir}\parameters.xml" failonerror="false"/>
|
|
|
|
<property name="webpi.filename" value="${root.dir}\Umbraco_${build.version}_WebDeploy.zip" />
|
|
<zip zipfile="${webpi.filename}" includeemptydirs="true" >
|
|
<fileset basedir="${webpi.dir}">
|
|
<include name="*" />
|
|
<include name="**/*" />
|
|
</fileset>
|
|
</zip>
|
|
|
|
<exec program="${win.dir}\hashMyFiles.exe">
|
|
<arg value="/file "${webpi.filename}"" />
|
|
<arg value="/stext "${root.dir}\webPi_sha.txt"" />
|
|
</exec>
|
|
</target>
|
|
|
|
|
|
<target name="init" description="init tasks for the build">
|
|
<delete dir="${build.dir}" />
|
|
<mkdir dir="${build.dir}" />
|
|
</target>
|
|
|
|
|
|
</project>
|