222 lines
11 KiB
XML
222 lines
11 KiB
XML
<Project InitialTargets="Build" DefaultTargets="AfterBuild" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
|
|
<!--
|
|
****************************************************
|
|
INCLUDES
|
|
*****************************************************
|
|
-->
|
|
|
|
<PropertyGroup>
|
|
<MSBuildCommunityTasksPath>..\MSBuildCommunityTasks</MSBuildCommunityTasksPath>
|
|
<UmbracoMSBuildTasksPath>..\UmbracoMSBuildTasks</UmbracoMSBuildTasksPath>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="..\tools\UmbracoMSBuildTasks\Umbraco.MSBuild.Tasks.Targets" />
|
|
<Import Project="..\tools\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
|
|
|
|
<!--
|
|
****************************************************
|
|
VARIABLES
|
|
*****************************************************
|
|
-->
|
|
|
|
<!-- NB: BUILD_NUMBER is passed in by the build server -->
|
|
<PropertyGroup Condition="'$(BUILD_NUMBER)'!=''">
|
|
<DECIMAL_BUILD_NUMBER>.$(BUILD_NUMBER)</DECIMAL_BUILD_NUMBER>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(BUILD_RELEASE)'!=''">
|
|
<DECIMAL_BUILD_NUMBER>.$(BUILD_RELEASE)</DECIMAL_BUILD_NUMBER>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<BuildConfiguration>Release</BuildConfiguration>
|
|
<BuildFolder>_BuildOutput\</BuildFolder>
|
|
<BuildZipFileName>UmbracoCms$(DECIMAL_BUILD_NUMBER).zip</BuildZipFileName>
|
|
<BuildZipFileNameBin>UmbracoCms.AllBinaries$(DECIMAL_BUILD_NUMBER).zip</BuildZipFileNameBin>
|
|
<BuildZipFileNameWebPi>UmbracoCms.WebPI$(DECIMAL_BUILD_NUMBER).zip</BuildZipFileNameWebPi>
|
|
<IncludeSymbols>False</IncludeSymbols>
|
|
<BuildFolderRelativeToProjects>..\..\build\$(BuildFolder)</BuildFolderRelativeToProjects>
|
|
<BuildFolderAbsolutePath>$(MSBuildProjectDirectory)\$(BuildFolder)</BuildFolderAbsolutePath>
|
|
<SolutionBinFolder>$(BuildFolder)bin\</SolutionBinFolder>
|
|
<WebAppFolder>$(BuildFolder)WebApp\</WebAppFolder>
|
|
<WebPiFolder>$(BuildFolder)WebPi\</WebPiFolder>
|
|
<SolutionBinFolderRelativeToProjects>$(BuildFolderRelativeToProjects)bin\</SolutionBinFolderRelativeToProjects>
|
|
<SolutionBinFolderAbsolutePath>$(BuildFolderAbsolutePath)bin\</SolutionBinFolderAbsolutePath>
|
|
<WebAppFolderRelativeToProjects>$(BuildFolderRelativeToProjects)WebApp\</WebAppFolderRelativeToProjects>
|
|
<WebAppFolderAbsolutePath>$(BuildFolderAbsolutePath)WebApp\</WebAppFolderAbsolutePath>
|
|
<WebPiFolderRelativeToProjects>$(BuildFolderRelativeToProjects)WebPi\</WebPiFolderRelativeToProjects>
|
|
<WebPiFolderAbsolutePath>$(BuildFolderAbsolutePath)WebPi\</WebPiFolderAbsolutePath>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<SystemFolders Include="$(WebAppFolder)App_Plugins" />
|
|
<SystemFolders Include="$(WebAppFolder)App_Code" />
|
|
<SystemFolders Include="$(WebAppFolder)App_Data" />
|
|
<SystemFolders Include="$(WebAppFolder)media" />
|
|
<SystemFolders Include="$(WebAppFolder)masterpages" />
|
|
<SystemFolders Include="$(WebAppFolder)scripts" />
|
|
<SystemFolders Include="$(WebAppFolder)css" />
|
|
<SystemFolders Include="$(WebAppFolder)macroScripts" />
|
|
<SystemFolders Include="$(WebAppFolder)xslt" />
|
|
<SystemFolders Include="$(WebAppFolder)usercontrols" />
|
|
</ItemGroup>
|
|
|
|
<!--
|
|
****************************************************
|
|
TARGETS
|
|
*****************************************************
|
|
-->
|
|
|
|
<Target Name="Build" DependsOnTargets="ZipWebPiApp">
|
|
<Message Text="Build finished" />
|
|
</Target>
|
|
|
|
<Target Name="CleanUp" DependsOnTargets="ZipWebPiApp">
|
|
<Message Text="Deleting $(BuildFolder)" Importance="high" />
|
|
<RemoveDir Directories="$(BuildFolder)" />
|
|
<Message Text="Finished deleting $(BuildFolder)" Importance="high" />
|
|
</Target>
|
|
|
|
<Target Name="ZipWebPiApp" DependsOnTargets="ZipWebApp" >
|
|
|
|
<!-- Clean folders -->
|
|
<RemoveDir Directories="$(WebPiFolder)" />
|
|
<MakeDir Directories="$(WebPiFolder)" />
|
|
<MakeDir Directories="$(WebPiFolder)umbraco" />
|
|
|
|
<!-- Copy fresh built umbraco files -->
|
|
<Exec Command="xcopy %22$(WebAppFolderAbsolutePath)*%22 %22$(WebPiFolderAbsolutePath)umbraco%22 /S /E /Y /I" />
|
|
|
|
<!--<ItemGroup>
|
|
<WebAppFiles Include="$(WebAppFolder)\**\*.*" />
|
|
</ItemGroup>
|
|
|
|
<Copy SourceFiles="@(WebAppFiles)"
|
|
DestinationFiles="@(WebAppFiles->'$(WebPiFolder)umbraco\%(RecursiveDir)%(Filename)%(Extension)')" />-->
|
|
|
|
<!-- Copy Web Pi template files -->
|
|
<ItemGroup>
|
|
<WebPiFiles Include="..\src\WebPi\**\*.*" />
|
|
</ItemGroup>
|
|
|
|
<Copy SourceFiles="@(WebPiFiles)"
|
|
DestinationFiles="@(WebPiFiles->'$(WebPiFolder)%(RecursiveDir)%(Filename)%(Extension)')" />
|
|
|
|
<!-- Zip the files -->
|
|
<Exec Command="..\tools\7zip\7za.exe a -r %22$(BuildZipFileNameWebPi)%22 %22$(WebPiFolderAbsolutePath)*%22" />
|
|
|
|
</Target>
|
|
|
|
<Target Name="ZipWebApp" DependsOnTargets="CreateSystemFolders" >
|
|
|
|
<Message Text="Starting to zip to $(buildDate)-$(BuildZipFileName)" Importance="high" />
|
|
|
|
<Exec Command="..\tools\7zip\7za.exe a -r %22$(BuildZipFileNameBin)%22 %22$(SolutionBinFolderAbsolutePath)*%22" />
|
|
<Exec Command="..\tools\7zip\7za.exe a -r %22$(BuildZipFileName)%22 %22$(WebAppFolderAbsolutePath)*%22" />
|
|
|
|
<Message Text="Finished zipping to build\$(BuildFolder)\$(buildDate)-$(BuildZipFileName)" Importance="high" />
|
|
</Target>
|
|
|
|
<Target Name="CreateSystemFolders" DependsOnTargets="CopyLibraries" Inputs="@(SystemFolders)" Outputs="%(Identity).Dummy">
|
|
<MakeDir Directories="@(SystemFolders)" />
|
|
</Target>
|
|
|
|
<Target Name="CopyLibraries" DependsOnTargets="OffsetTimestamps" >
|
|
|
|
<!-- Copy SQL CE -->
|
|
<ItemGroup>
|
|
<SQLCE4Files Include="..\lib\SQLCE4\**\*.*" />
|
|
</ItemGroup>
|
|
|
|
<Copy SourceFiles="@(SQLCE4Files)"
|
|
DestinationFiles="@(SQLCE4Files->'$(SolutionBinFolder)%(RecursiveDir)%(Filename)%(Extension)')"
|
|
OverwriteReadOnlyFiles="true"
|
|
SkipUnchangedFiles="false" />
|
|
<Copy SourceFiles="@(SQLCE4Files)"
|
|
DestinationFiles="@(SQLCE4Files->'$(WebAppFolder)bin\%(RecursiveDir)%(Filename)%(Extension)')"
|
|
OverwriteReadOnlyFiles="true"
|
|
SkipUnchangedFiles="false" />
|
|
|
|
<!-- Copy WebPages -->
|
|
<ItemGroup>
|
|
<WebPageFiles Include="..\lib\WebPages\*.dll" />
|
|
</ItemGroup>
|
|
|
|
<Copy SourceFiles="@(WebPageFiles)"
|
|
DestinationFiles="@(WebPageFiles->'$(SolutionBinFolder)%(RecursiveDir)%(Filename)%(Extension)')"
|
|
OverwriteReadOnlyFiles="true"
|
|
SkipUnchangedFiles="false" />
|
|
<Copy SourceFiles="@(WebPageFiles)"
|
|
DestinationFiles="@(WebPageFiles->'$(WebAppFolder)bin\%(RecursiveDir)%(Filename)%(Extension)')"
|
|
OverwriteReadOnlyFiles="true"
|
|
SkipUnchangedFiles="false" />
|
|
|
|
</Target>
|
|
|
|
<!-- Offset the modified timestamps on all umbraco dlls, as WebResources break if date is in the future, which, due to timezone offsets can happen. -->
|
|
<Target Name="OffsetTimestamps" DependsOnTargets="CompileProjects">
|
|
<CreateItem Include="$(BuildFolder)**\umbraco.*.dll">
|
|
<Output TaskParameter="Include" ItemName="FilesToOffsetTimestamp" />
|
|
</CreateItem>
|
|
<Message Text="Starting to offset timestamps" Importance="high" />
|
|
<Umbraco.MSBuild.Tasks.TimestampOffset Files="@(FilesToOffsetTimestamp)" Offset="-11" />
|
|
<Message Text="Finished offsetting timestamps" Importance="high" />
|
|
</Target>
|
|
|
|
<Target Name="CompileProjects" DependsOnTargets="SetVersionNumber">
|
|
|
|
<Message Text="Compiling web project to build\$(BuildFolder)" Importance="high" />
|
|
<!-- For UseWPP_CopyWebApplication=True see http://stackoverflow.com/questions/1983575/copywebapplication-with-web-config-transformations -->
|
|
<MSBuild Projects="..\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);UseWPP_CopyWebApplication=True;PipelineDependsOnBuild=False;OutDir=$(SolutionBinFolderAbsolutePath);WebProjectOutputDir=$(WebAppFolderAbsolutePath)" Targets="Clean;Build;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False">
|
|
</MSBuild>
|
|
|
|
<!--
|
|
Now, because of all the circular dependencies we need to build those projects and have them dump their DLLs/assets out to the same folder. Really wish this wasn't the case!
|
|
These are: umbraco.editorControls umbraco.MacroEngines
|
|
|
|
Each of these projects has a post build to put their stuff in the correct location based on the solution and unfortunately for us each
|
|
of these projects references the web application! So if we specify an OutDir parameter it will also trigger a web deploy and chuck another
|
|
website output in bin/_PublishedWebSites folder. we cannot disable this: http://social.msdn.microsoft.com/forums/en-US/tfsbuild/thread/3ec642ad-2e6d-424c-891a-62f6409da62a/
|
|
so we need to just build the project 'in-place' then copy its output to the SolutionBinFolder
|
|
-->
|
|
|
|
<!-- MACRO ENGINES -->
|
|
<Message Text="Compiling MacroEngines project" Importance="high" />
|
|
<MSBuild Projects="..\src\umbraco.MacroEngines\umbraco.MacroEngines.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);" Targets="Clean;Build;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False">
|
|
</MSBuild>
|
|
<ItemGroup>
|
|
<MacroEngineDll Include="..\src\umbraco.MacroEngines\bin\$(BuildConfiguration)\umbraco.MacroEngines.dll"/>
|
|
</ItemGroup>
|
|
<Copy SourceFiles="@(MacroEngineDll)"
|
|
DestinationFolder="$(SolutionBinFolder)" OverwriteReadOnlyFiles="True"/>
|
|
<Copy SourceFiles="@(MacroEngineDll)"
|
|
DestinationFolder="$(WebAppFolder)\bin" OverwriteReadOnlyFiles="True"/>
|
|
|
|
<!-- EDITOR CONTROLS -->
|
|
<Message Text="Compiling editorControls project" Importance="high" />
|
|
<MSBuild Projects="..\src\umbraco.editorControls\umbraco.editorControls.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);" Targets="Clean;Build;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False">
|
|
</MSBuild>
|
|
<ItemGroup>
|
|
<EditorControlsDll Include="..\src\umbraco.editorControls\bin\$(BuildConfiguration)\umbraco.editorControls.dll"/>
|
|
</ItemGroup>
|
|
<Copy SourceFiles="@(EditorControlsDll)"
|
|
DestinationFolder="$(SolutionBinFolder)" OverwriteReadOnlyFiles="True"/>
|
|
<Copy SourceFiles="@(EditorControlsDll)"
|
|
DestinationFolder="$(WebAppFolder)\bin" OverwriteReadOnlyFiles="True"/>
|
|
|
|
<!-- DONE -->
|
|
<Message Text="Finished compiling projects" Importance="high" />
|
|
</Target>
|
|
|
|
<Target Name="SetVersionNumber" Condition="'$(BUILD_RELEASE)'!=''">
|
|
<!-- Match & replace 3 and 4 digit version numbers and -beta (if it's there) -->
|
|
<FileUpdate Files="..\src\Umbraco.Core\Configuration\GlobalSettings.cs"
|
|
Regex="(\d+)\.(\d+)\.(\d+)(.(\d+))?(-([a-zA-Z]+))?"
|
|
ReplacementText="$(BUILD_RELEASE)"/>
|
|
</Target>
|
|
|
|
<Target Name="AfterBuild">
|
|
<Message Text="Hi" />
|
|
</Target>
|
|
|
|
</Project> |