/
build.proj
131 lines (111 loc) · 8.17 KB
/
build.proj
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Deploy">
<ItemGroup>
<PackageReference Include="chocolatey">
<Version>2.2.2</Version>
</PackageReference>
<PackageReference Include="MSBuildTasks">
<Version>1.5.0.235</Version>
</PackageReference>
<PackageReference Include="NuGet.CommandLine">
<Version>6.8.0</Version>
</PackageReference>
</ItemGroup>
<!-- Required to support command " msbuild .\build.proj /t:restore" -->
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- Imported MSBuild tasks -->
<UsingTask TaskName="ReportGenerator" AssemblyFile="ReportGenerator.Console\bin\Release\ReportGenerator.MSBuild.dll" />
<UsingTask TaskName="Zip" AssemblyFile="$(UserProfile)\.nuget\packages\msbuildtasks\1.5.0.235\tools\MSBuild.Community.Tasks.dll" />
<UsingTask TaskName="FileUpdate" AssemblyFile="$(UserProfile)\.nuget\packages\msbuildtasks\1.5.0.235\tools\MSBuild.Community.Tasks.dll" />
<!-- Version, adjust before build -->
<PropertyGroup>
<Version>5.2.5</Version>
</PropertyGroup>
<!-- Tools -->
<PropertyGroup>
<NuGetCommandLine>"$(UserProfile)\.nuget\packages\nuget.commandline\6.8.0\tools\NuGet.exe"</NuGetCommandLine>
<ChocolateyCommandLine>"$(UserProfile)\.nuget\packages\chocolatey\1.4.0\tools\chocolateyInstall\choco.exe"</ChocolateyCommandLine>
</PropertyGroup>
<Target Name="Clean">
<RemoveDir Directories="ReportGenerator.Console\bin" />
<RemoveDir Directories="ReportGenerator.Console\obj" />
<RemoveDir Directories="ReportGenerator.Console.NetCore\bin" />
<RemoveDir Directories="ReportGenerator.Console.NetCore\obj" />
<RemoveDir Directories="ReportGenerator.Core\bin" />
<RemoveDir Directories="ReportGenerator.Core\obj" />
<RemoveDir Directories="ReportGenerator.Core.Test\bin" />
<RemoveDir Directories="ReportGenerator.Core.Test\obj" />
<RemoveDir Directories="ReportGenerator.DotnetCorePluginLoader\bin" />
<RemoveDir Directories="ReportGenerator.DotnetCorePluginLoader\obj" />
<RemoveDir Directories="ReportGenerator.DotnetGlobalTool\bin" />
<RemoveDir Directories="ReportGenerator.DotnetGlobalTool\obj" />
<RemoveDir Directories="target\packages" />
<RemoveDir Directories="target\reports\coverage" />
<RemoveDir Directories="target\samplereports" />
</Target>
<Target Name="Compile">
<MSBuild Projects="ReportGenerator.sln" Targets="Restore;Build" Properties="Configuration=Release" />
<Exec Command="dotnet publish -c Release -f net6.0 ReportGenerator.Console.NetCore.csproj" WorkingDirectory="ReportGenerator.Console.NetCore" />
<Exec Command="dotnet publish -c Release -f net7.0 ReportGenerator.Console.NetCore.csproj" WorkingDirectory="ReportGenerator.Console.NetCore" />
<Exec Command="dotnet publish -c Release -f net8.0 ReportGenerator.Console.NetCore.csproj" WorkingDirectory="ReportGenerator.Console.NetCore" />
<Exec Command="dotnet publish -c Release -f net6.0 ReportGenerator.DotnetGlobalTool.csproj" WorkingDirectory="ReportGenerator.DotnetGlobalTool" />
<Exec Command="dotnet publish -c Release -f net7.0 ReportGenerator.DotnetGlobalTool.csproj" WorkingDirectory="ReportGenerator.DotnetGlobalTool" />
<Exec Command="dotnet publish -c Release -f net8.0 ReportGenerator.DotnetGlobalTool.csproj" WorkingDirectory="ReportGenerator.DotnetGlobalTool" />
<RemoveDir Directories="bin" />
<RemoveDir Directories="obj" />
</Target>
<Target Name="Test" DependsOnTargets="Clean; Compile">
<MakeDir Directories="target\reports\coverage" />
<Exec Command="dotnet test --no-build ReportGenerator.Core.Test.csproj -c Release /p:CollectCoverage=true /p:DeterministicSourcePaths=true /p:IncludeTestAssembly=true /p:CoverletOutputFormat=\"opencover,cobertura\" /p:CoverletOutput=../target/reports/coverage/" WorkingDirectory="ReportGenerator.Core.Test" />
</Target>
<Target Name="Report" DependsOnTargets="Test">
<ItemGroup>
<CoverageFiles Include="target\reports\coverage\coverage.opencover.xml" />
</ItemGroup>
<ReportGenerator ReportFiles="@(CoverageFiles)" ReportTypes="Html;Badges" TargetDirectory="target\reports\coverage" AssemblyFilters="-Moq;-xunit*" HistoryDirectory="target\reports\coveragehistory" VerbosityLevel="Warning" />
</Target>
<Target Name="Deploy" DependsOnTargets="Clean; Compile; Report">
<ItemGroup>
<ZipFileContentBase Include="ReportGenerator.Console\bin\Release\LICENSE.txt;ReportGenerator.Console\bin\Release\Readme.txt" />
<ZipFileContentNet47 Include="ReportGenerator.Console\bin\Release\appsettings.json;ReportGenerator.Console\bin\Release\*.dll;ReportGenerator.Console\bin\Release\ReportGenerator.exe;ReportGenerator.Console\bin\Release\ReportGenerator.exe.config" />
<ZipFileContentNetCore60 Include="ReportGenerator.Console.NetCore\bin\Release\net6.0\publish\**\*.*"/>
<ZipFileContentNetCore70 Include="ReportGenerator.Console.NetCore\bin\Release\net7.0\publish\**\*.*"/>
<ZipFileContentNetCore80 Include="ReportGenerator.Console.NetCore\bin\Release\net8.0\publish\**\*.*"/>
</ItemGroup>
<!-- ZIP -->
<MakeDir Directories="tmpzip" />
<MakeDir Directories="tmpzip\net47" />
<Copy SourceFiles="@(ZipFileContentBase)" DestinationFolder="tmpzip" />
<Copy SourceFiles="@(ZipFileContentNet47)" DestinationFolder="tmpzip\net47" />
<Copy SourceFiles="@(ZipFileContentNetCore60)" DestinationFolder="tmpzip\net6.0\%(RecursiveDir)" />
<Copy SourceFiles="@(ZipFileContentNetCore70)" DestinationFolder="tmpzip\net7.0\%(RecursiveDir)" />
<Copy SourceFiles="@(ZipFileContentNetCore80)" DestinationFolder="tmpzip\net8.0\%(RecursiveDir)" />
<ItemGroup>
<ZipFileContent Include="tmpzip\**\*.*"/>
</ItemGroup>
<Zip Files="@(ZipFileContent)" WorkingDirectory="$(MSBuildThisFileDirectory)tmpzip" ZipFileName="target\packages\ReportGenerator_$(Version).zip" ZipLevel="9" />
<RemoveDir Directories="tmpzip" />
<!-- AzureDevopsTask -->
<RemoveDir Directories="AzureDevopsTask\ReportGenerator\tools\net6.0" />
<MakeDir Directories="AzureDevopsTask\ReportGenerator\tools\net6.0" />
<Copy SourceFiles="@(ZipFileContentNetCore60)" DestinationFolder="AzureDevopsTask\ReportGenerator\tools\net6.0\%(RecursiveDir)" />
<Exec Command="npm run tsc --" WorkingDirectory="AzureDevopsTask\ReportGenerator" />
<Exec Command="tfx extension create --manifest-globs vss-extension.json --output-path ..\target\packages" WorkingDirectory="AzureDevopsTask" />
<!-- Nuget -->
<Exec Command="$(NuGetCommandLine) pack Deployment\nuget\ReportGenerator.nuspec -OutputDirectory target\packages -Version $(Version)" />
<Exec Command="$(NuGetCommandLine) pack Deployment\nuget\ReportGenerator.Core.nuspec -OutputDirectory target\packages -Version $(Version)" />
<Exec Command="$(NuGetCommandLine) pack Deployment\nuget\dotnet-reportgenerator-globaltool.nuspec -OutputDirectory target\packages -Version $(Version)" />
<!-- Chocolatey -->
<Exec Command="$(ChocolateyCommandLine) pack Deployment\chocolatey\reportgenerator.portable.nuspec --outputdirectory=target\packages --version=$(Version)" />
</Target>
<Target Name="Publish" DependsOnTargets="Deploy">
<!-- Nuget -->
<Exec Command="$(NuGetCommandLine) push .\target\packages\ReportGenerator.$(Version).nupkg -ApiKey $(NugetApiKey) -Source https://www.nuget.org/api/v2/package" />
<Exec Command="$(NuGetCommandLine) push .\target\packages\ReportGenerator.Core.$(Version).nupkg -ApiKey $(NugetApiKey) -Source https://www.nuget.org/api/v2/package" />
<Exec Command="$(NuGetCommandLine) push .\target\packages\dotnet-reportgenerator-globaltool.$(Version).nupkg -ApiKey $(NugetApiKey) -Source https://www.nuget.org/api/v2/package" />
<!-- Chocolatey -->
<Exec Command="$(ChocolateyCommandLine) push .\target\packages\reportgenerator.portable.$(Version).nupkg --apikey $(ChocolateyApiKey) --source https://push.chocolatey.org/" />
<!-- VSIX -->
<Exec Command="tfx extension publish --vsix .\target\packages\Palmmedia.reportgenerator-$(Version).vsix -t $(VisualStudioMarketPlaceToken)" />
</Target>
</Project>