-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.xml
109 lines (85 loc) · 4.18 KB
/
build.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<Project DefaultTargets="build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\Tools\YUI\YUI.Targets"/>
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<!-- list of the solutions to build in order -->
<ItemGroup>
<Solution Include="$(SourceFolder)\$(PackageName).sln" />
</ItemGroup>
<ItemGroup>
<TestAssemblies Include="$(BuildFolder)\$(PackageName).Tests.dll" />
</ItemGroup>
<PropertyGroup>
<BuildFolder>$(SourceFolder)\Build</BuildFolder>
<ReportsFolder>$(SourceFolder)\Build\Reports</ReportsFolder>
<GallioEcho>C:\program files\gallio\bin\gallio.echo.exe</GallioEcho>
<NugetTool>C:\Program Files\NuGet\NuGet.exe</NugetTool>
<NugetPackages>C:\Production\Packages\Feed</NugetPackages>
<PackageName>LogElastic.NET</PackageName>
</PropertyGroup>
<Target Name="clean">
<!-- delete every file in the build folder -->
<CreateItem Include="$(BuildFolder)\**\*.*">
<Output TaskParameter="Include" ItemName="OldBuildFiles"/>
</CreateItem>
<Delete Files="@(OldBuildFiles)" />
<!-- clean the build folder -->
<RemoveDir Directories="$(BuildFolder)" />
<!-- clean all the solutions -->
<MSBuild Projects="@(Solution)" Targets="clean" />
<MSBuild Projects="@(SolutionInPlace)" Targets="clean" />
</Target>
<Target Name="create-build" DependsOnTargets="clean">
<Message Text="Regenerating Assembly info..." />
<AssemblyInfo CodeLanguage="CS"
OutputFile="$(SourceFolder)\LogElastic.NET\Properties\AssemblyInfo.gen.cs"
AssemblyVersion="$(BUILD_NUMBER)"
AssemblyFileVersion="$(BUILD_NUMBER)"
AssemblyCompany="TruffleMuffin"
/>
<AssemblyInfo CodeLanguage="CS"
OutputFile="$(SourceFolder)\LogElastic.NET.Manager\Properties\AssemblyInfo.gen.cs"
AssemblyVersion="$(BUILD_NUMBER)"
AssemblyFileVersion="$(BUILD_NUMBER)"
AssemblyCompany="TruffleMuffin"
/>
</Target>
<Target Name="release-build" DependsOnTargets="create-build">
<MSBuild Projects="@(Solution)" Properties="OutputPath=$(BuildFolder)" StopOnFirstFailure="true" />
<!-- build solutions in place -->
<MSBuild Projects="@(SolutionInPlace)" Properties="OutputPath=$(BuildFolder);Configuration=Release" StopOnFirstFailure="true" />
</Target>
<!-- create and clean the reports folder -->
<Target Name="create-reports-folder">
<Exec Command="rmdir /s /q $(ReportsFolder)" />
<Exec Command="mkdir $(ReportsFolder)" />
</Target>
<!-- Target for producing reports for test coverage -->
<Target Name="coverage" DependsOnTargets="create-reports-folder">
<Message text="Running tests" />
<!-- Run tests with NCover -->
<Exec Command=""$(GallioEcho)" @(TestAssemblies, ' ') /runner:IsolatedProcess /runner-property:NCoverCoverageFile='$(ReportsFolder)\CoverageOutput.xml' /report-directory:$(ReportsFolder) /report-type:Html-Condensed /report-name-format:UnitTests /no-echo-results" IgnoreExitCode="true" />
</Target>
<Target Name="version-nuget-spec">
<Message text="Version nuget package" />
<ItemGroup>
<NugetSpec Include="$(SourceFolder)\$(PackageName).nuspec" />
<NugetSpec Include="$(SourceFolder)\$(PackageName).Manager.nuspec" />
</ItemGroup>
<Message Text="%(NugetSpec.Identity)" />
<XmlUpdate
XmlFileName="%(NugetSpec.Identity)"
Xpath="//package/metadata/version"
Value="$(BUILD_NUMBER)"
/>
</Target>
<!-- Create the nuget package -->
<Target Name="nuget" DependsOnTargets="version-nuget-spec">
<Exec Command='"$(NugetTool)" pack "$(SourceFolder)\$(PackageName).nuspec" -verbosity normal' />
<Exec Command='"$(NugetTool)" pack "$(SourceFolder)\$(PackageName).Manager.nuspec" -verbosity normal' />
<Message text="Copying package to nuget server" />
<Exec Command='xcopy "$(SourceFolder)\$(PackageName).$(BUILD_NUMBER).nupkg" "$(NugetPackages)" /Y' />
<Exec Command='del "$(SourceFolder)\$(PackageName).$(BUILD_NUMBER).nupkg"' />
<Exec Command='xcopy "$(SourceFolder)\$(PackageName).Manager.$(BUILD_NUMBER).nupkg" "$(NugetPackages)" /Y' />
<Exec Command='del "$(SourceFolder)\$(PackageName).Manager.$(BUILD_NUMBER).nupkg"' />
</Target>
</Project>