-
Notifications
You must be signed in to change notification settings - Fork 41
Expand file tree
/
Copy pathBuild.proj
More file actions
184 lines (147 loc) Β· 7.99 KB
/
Copy pathBuild.proj
File metadata and controls
184 lines (147 loc) Β· 7.99 KB
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
<!--
Krypton Extended Toolkit - Master Build Project
This MSBuild project orchestrates building the entire toolkit across all configurations
and release channels.
Release Channels:
- Release (master) : Stable production releases
- Canary (canary) : Beta pre-releases (-beta suffix)
- Nightly (alpha) : Alpha pre-releases (-alpha suffix)
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Property Definitions -->
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
<Platform Condition="'$(Platform)' == ''">Any CPU</Platform>
<!-- Paths -->
<RootDir>$(MSBuildProjectDirectory)</RootDir>
<SourceDir>$(RootDir)\Source\Krypton Toolkit</SourceDir>
<BinDir>$(RootDir)\Bin</BinDir>
<OutputDir>$(BinDir)\$(Configuration)</OutputDir>
<NuGetPackagesDir>$(BinDir)\NuGet Packages\$(Configuration)</NuGetPackagesDir>
<!-- Solution Files -->
<MainSolution>$(SourceDir)\Krypton Toolkit Suite Extended 2022 - VS2022.sln</MainSolution>
<NuGetSolution>$(SourceDir)\Krypton Toolkit Suite Extended 2022 - VS2022 - NuGet.sln</NuGetSolution>
<DevSolution>$(SourceDir)\Krypton Toolkit Suite Extended 2022 - VS2022 - Dev.sln</DevSolution>
<!-- Ultimate Package Projects -->
<UltimateProject>$(SourceDir)\Krypton.Toolkit.Suite.Extended.Ultimate\Krypton.Toolkit.Suite.Extended.Ultimate 2022.csproj</UltimateProject>
<UltimateLiteProject>$(SourceDir)\Krypton.Toolkit.Suite.Extended.Ultimate.Lite\Krypton.Toolkit.Suite.Extended.Ultimate.Lite 2022.csproj</UltimateLiteProject>
<!-- Build Properties -->
<BuildInParallel>true</BuildInParallel>
<MaxCpuCount>0</MaxCpuCount>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<ContinueOnError>false</ContinueOnError>
</PropertyGroup>
<!-- Release Channel Information -->
<PropertyGroup>
<IsReleaseBuild Condition="'$(Configuration)' == 'Release' or '$(Configuration)' == 'Stable'">true</IsReleaseBuild>
<IsCanaryBuild Condition="'$(Configuration)' == 'Canary'">true</IsCanaryBuild>
<IsNightlyBuild Condition="'$(Configuration)' == 'Nightly' or '$(Configuration)' == 'Alpha'">true</IsNightlyBuild>
<!-- Package Suffix -->
<PackageSuffix Condition="'$(IsCanaryBuild)' == 'true'">-beta</PackageSuffix>
<PackageSuffix Condition="'$(IsNightlyBuild)' == 'true'">-alpha</PackageSuffix>
<PackageSuffix Condition="'$(IsReleaseBuild)' == 'true'"></PackageSuffix>
<!-- Branch Names -->
<TargetBranch Condition="'$(IsReleaseBuild)' == 'true'">master</TargetBranch>
<TargetBranch Condition="'$(IsCanaryBuild)' == 'true'">canary</TargetBranch>
<TargetBranch Condition="'$(IsNightlyBuild)' == 'true'">alpha</TargetBranch>
</PropertyGroup>
<!-- Target: Restore -->
<Target Name="Restore">
<Message Text="π Restoring NuGet packages..." Importance="high" />
<Exec Command="dotnet restore "$(MainSolution)"" WorkingDirectory="$(RootDir)" />
<Message Text="β
NuGet packages restored successfully" Importance="high" />
</Target>
<!-- Target: Clean -->
<Target Name="Clean">
<Message Text="π§Ή Cleaning $(Configuration) configuration..." Importance="high" />
<!-- Delete Bin folder -->
<RemoveDir Directories="$(BinDir)" Condition="Exists('$(BinDir)')" />
<Message Text="Deleted Bin folder" Importance="high" />
<!-- Delete obj folders -->
<ItemGroup>
<ObjFolders Include="$(SourceDir)\**\obj" />
</ItemGroup>
<RemoveDir Directories="@(ObjFolders)" Condition="Exists('%(ObjFolders.Identity)')" />
<Message Text="Deleted obj folders" Importance="high" />
<!-- Delete log files -->
<Delete Files="$(RootDir)\build.log" Condition="Exists('$(RootDir)\build.log')" />
<Delete Files="$(RootDir)\Logs\*.*" Condition="Exists('$(RootDir)\Logs')" />
<Message Text="β
Clean completed" Importance="high" />
</Target>
<!-- Target: Build -->
<Target Name="Build" DependsOnTargets="Restore">
<Message Text="π¨ Building $(Configuration) configuration..." Importance="high" />
<MSBuild Projects="$(MainSolution)"
Properties="Configuration=$(Configuration);Platform=$(Platform)"
Targets="Build"
BuildInParallel="$(BuildInParallel)"
ContinueOnError="$(ContinueOnError)" />
<Message Text="β
Build completed successfully" Importance="high" />
</Target>
<!-- Target: BuildNuGet -->
<Target Name="BuildNuGet" DependsOnTargets="Build">
<Message Text="π¦ Building NuGet solution ($(Configuration))..." Importance="high" />
<MSBuild Projects="$(NuGetSolution)"
Properties="Configuration=$(Configuration);Platform=$(Platform)"
Targets="Build"
BuildInParallel="$(BuildInParallel)"
ContinueOnError="$(ContinueOnError)" />
<Message Text="β
NuGet solution built successfully" Importance="high" />
</Target>
<!-- Target: BuildUltimate -->
<Target Name="BuildUltimate" DependsOnTargets="BuildNuGet">
<Message Text="β Building Ultimate packages ($(Configuration))..." Importance="high" />
<!-- Build Ultimate Package -->
<MSBuild Projects="$(UltimateProject)"
Properties="Configuration=$(Configuration);Platform=$(Platform)"
Targets="Build"
BuildInParallel="false"
ContinueOnError="$(ContinueOnError)"
Condition="Exists('$(UltimateProject)')" />
<!-- Build Ultimate Lite Package -->
<MSBuild Projects="$(UltimateLiteProject)"
Properties="Configuration=$(Configuration);Platform=$(Platform)"
Targets="Build"
BuildInParallel="false"
ContinueOnError="$(ContinueOnError)"
Condition="Exists('$(UltimateLiteProject)')" />
<Message Text="β
Ultimate packages built successfully" Importance="high" />
</Target>
<!-- Target: Pack -->
<Target Name="Pack" DependsOnTargets="BuildUltimate">
<Message Text="π¦ Creating NuGet packages ($(Configuration))..." Importance="high" />
<Message Text="Package Suffix: $(PackageSuffix)" Importance="high" />
<!-- Ensure output directory exists -->
<MakeDir Directories="$(NuGetPackagesDir)" Condition="!Exists('$(NuGetPackagesDir)')" />
<!-- Pack Ultimate packages -->
<Exec Command="dotnet pack "$(UltimateProject)" --configuration $(Configuration) --output "$(NuGetPackagesDir)" --no-build /p:NoWarn=NU1012"
WorkingDirectory="$(RootDir)"
ContinueOnError="true"
Condition="Exists('$(UltimateProject)')" />
<Exec Command="dotnet pack "$(UltimateLiteProject)" --configuration $(Configuration) --output "$(NuGetPackagesDir)" --no-build /p:NoWarn=NU1012"
WorkingDirectory="$(RootDir)"
ContinueOnError="true"
Condition="Exists('$(UltimateLiteProject)')" />
<Message Text="β
NuGet packages created in: $(NuGetPackagesDir)" Importance="high" />
</Target>
<!-- Target: Rebuild -->
<Target Name="Rebuild" DependsOnTargets="Clean;Build">
<Message Text="β
Rebuild completed" Importance="high" />
</Target>
<!-- Target: CI -->
<Target Name="CI" DependsOnTargets="Clean;Build;BuildNuGet;BuildUltimate;Pack">
<Message Text="β
CI Build Completed Successfully!" Importance="high" />
<Message Text="Configuration : $(Configuration)" Importance="high" />
<Message Text="Target Branch : $(TargetBranch)" Importance="high" />
<Message Text="Packages Dir : $(NuGetPackagesDir)" Importance="high" />
</Target>
<!-- Target: Debug -->
<Target Name="Debug" DependsOnTargets="Clean">
<Message Text="π Running Debug build..." Importance="high" />
<MSBuild Projects="$(MSBuildProjectFile)"
Properties="Configuration=Debug;Platform=$(Platform)"
Targets="Build"
BuildInParallel="$(BuildInParallel)" />
<Message Text="β
Debug build completed" Importance="high" />
</Target>
</Project>