Created
May 6, 2010 19:43
-
-
Save tucaz/392612 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Project DefaultTargets="Run" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
<!-- ### Import non-default tasks do be used in this build file ### --> | |
<!--SDC Tasks Library - Open Source pack from: http://sdctasks.codeplex.com/--> | |
<Import Project="Microsoft.Sdc.Common.tasks"/> | |
<!-- FTP Task - Open Source task from: http://www.digizzle.com/Projects/FtpTask/Docs.aspx#ftptask --> | |
<UsingTask AssemblyFile="FtpTask.dll" TaskName="FtpTask"/> | |
<!-- ### 0 - This is the entry point of this build file. Run all tasks in the correct order ### --> | |
<Target Name="Run"> | |
<CallTarget Targets="Clean" /> | |
<CallTarget Targets="Compile" /> | |
<CallTarget Targets="Publish" /> | |
<CallTarget Targets="FTPUpload1" /> | |
<CallTarget Targets="FTPUpload2" /> | |
</Target> | |
<!-- ### 1 - Set properties used during deploy ### --> | |
<Target Name="SetProperties"> | |
<!-- Indicates what is the directory where the source code is: one level above this build file --> | |
<CreateItem Include="$(MSBuildProjectDirectory)\.."> | |
<Output TaskParameter="Include" ItemName="SourceCodeDirectory" /> | |
</CreateItem> | |
<!-- Indicates what folder should be used as output folder from the build process --> | |
<CreateItem Include="$(MSBuildProjectDirectory)\output"> | |
<Output TaskParameter="Include" ItemName="OutputDirectory" /> | |
</CreateItem> | |
</Target> | |
<!-- ### 2 - Run a "Clean" command in the entire solution to remove old files ### --> | |
<Target Name="Clean" DependsOnTargets="SetProperties"> | |
<Message Text="Starting to clean Solution" /> | |
<MSBuild Projects="%(SourceCodeDirectory.FullPath)\HNI.Portal.sln" Targets="Clean"> | |
</MSBuild> | |
<Message Text="Solution cleaned" /> | |
</Target> | |
<!-- ### 3 - Build the web project ### --> | |
<Target Name="Compile" DependsOnTargets="SetProperties"> | |
<Message Text="Start to compile solution" /> | |
<MSBuild Projects="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\HNI.Portal.UI.csproj" StopOnFirstFailure="True" Targets="Build" Properties="Configuration=Release;"> | |
</MSBuild> | |
<Message Text="Solution compiled" /> | |
</Target> | |
<!--### 4 - Since there is no MSBuild task that works as "Publish" command we do it manually, task by task | |
and output all assemblies and pages to $(OutputDirectory) --> | |
<Target Name="Publish" DependsOnTargets="SetProperties"> | |
<PropertyGroup> | |
<OutputDir>%(OutputDirectory.FullPath)</OutputDir> | |
</PropertyGroup> | |
<!-- Create a list of files that will be copied to the output directory --> | |
<ItemGroup> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.dll" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.aspx" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.asmx" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.ashx" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.jpg" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.gif" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.png" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.bmp" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.js" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.css" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.config" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.master" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.html" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.htm" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.asax" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.resx" /> | |
<File Include="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\**\*.ascx" /> | |
</ItemGroup> | |
<!-- Removes the output directory to make sure it is clean --> | |
<RemoveDir Directories="$(OutputDir)"> | |
</RemoveDir> | |
<!-- Then we create it --> | |
<MakeDir Directories="$(OutputDir)"> | |
</MakeDir> | |
<!-- Use this task to copy all the references needed by the web project --> | |
<MSBuild Projects="%(SourceCodeDirectory.FullPath)\HNI.Portal.UI\HNI.Portal.UI.csproj" Properties="" Targets="ResolveReferences" ContinueOnError="false" StopOnFirstFailure="true" /> | |
<!-- Copy files defined up there to the output directory --> | |
<Copy SourceFiles="@(File)" DestinationFiles="@(File->'$(OutputDir)\%(RecursiveDir)\%(Filename)%(Extension)')" /> | |
<Message Text="Solution published to local folder" /> | |
</Target> | |
<!-- ### 5 - Deploy all files from the OutputDirectory to QA Server 1 ### --> | |
<Target Name="FTPUpload1"> | |
<Message Text="Starting to FTP to QA Server 1" /> | |
<FtpTask | |
Action="CleanupAndUpload" | |
Address="qa.server1.com" | |
RemoteDir="/remoteDirectory | |
LocalDir="$(OutputDir)" | |
UserName="FTPUser" | |
Password="FTPPassword" | |
/> | |
<Message Text="Finished FTP to QA Server 1" /> | |
</Target> | |
<!-- ### 6 - Deploy all files from the OutputDirectory to QA Server 2 ### --> | |
<Target Name="FTPUpload2"> | |
<Message Text="Starting to FTP to QA Server 2" /> | |
<FtpTask | |
Action="CleanupAndUpload" | |
Address="qa.server2.com" | |
RemoteDir="/remoteDirectory" | |
LocalDir="$(OutputDir)" | |
UserName="FTPUser" | |
Password="FTPPassword" | |
/> | |
<Message Text="Finished FTP to QA Server 2" /> | |
</Target> | |
</Project> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment