50 lines
2.4 KiB
XML
50 lines
2.4 KiB
XML
<Project>
|
|
<!-- MSBuild target to generate BuildInfo.g.cs automatically prior to compilation -->
|
|
<Target Name="GenerateDeploymentcenterBuildInfo" BeforeTargets="CoreCompile">
|
|
<PropertyGroup>
|
|
<BuildInfoFile>$(IntermediateOutputPath)BuildInfo.g.cs</BuildInfoFile>
|
|
<BuildDateUtc>$([System.DateTime]::UtcNow.ToString("o"))</BuildDateUtc>
|
|
<BuildVersion Condition="'$(Version)' != ''">$(Version)</BuildVersion>
|
|
<BuildVersion Condition="'$(BuildVersion)' == ''">1.0.0</BuildVersion>
|
|
<BuildChannel Condition="'$(BuildChannel)' == ''">prod</BuildChannel>
|
|
</PropertyGroup>
|
|
|
|
<Exec Command="git rev-parse HEAD" ConsoleToMSBuild="true" IgnoreExitCode="true">
|
|
<Output TaskParameter="ConsoleOutput" PropertyName="GitCommitLong" />
|
|
</Exec>
|
|
<Exec Command="git rev-parse --short HEAD" ConsoleToMSBuild="true" IgnoreExitCode="true">
|
|
<Output TaskParameter="ConsoleOutput" PropertyName="GitCommitShort" />
|
|
</Exec>
|
|
|
|
<PropertyGroup>
|
|
<GitCommitLong Condition="'$(GitCommitLong)' == ''">UNKNOWN_COMMIT</GitCommitLong>
|
|
<GitCommitShort Condition="'$(GitCommitShort)' == ''">UNKNOWN</GitCommitShort>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<BuildInfoLine Include="// <auto-generated />" />
|
|
<BuildInfoLine Include="using System%3B" />
|
|
<BuildInfoLine Include="namespace Deploymentcenter.Client.Models" />
|
|
<BuildInfoLine Include="{" />
|
|
<BuildInfoLine Include=" public static partial class BuildInfo" />
|
|
<BuildInfoLine Include=" {" />
|
|
<BuildInfoLine Include=" static BuildInfo()" />
|
|
<BuildInfoLine Include=" {" />
|
|
<BuildInfoLine Include=" Version = "$(BuildVersion)"%3B" />
|
|
<BuildInfoLine Include=" GitCommit = "$(GitCommitLong)"%3B" />
|
|
<BuildInfoLine Include=" GitCommitShort = "$(GitCommitShort)"%3B" />
|
|
<BuildInfoLine Include=" BuildDateUtc = "$(BuildDateUtc)"%3B" />
|
|
<BuildInfoLine Include=" Channel = "$(BuildChannel)"%3B" />
|
|
<BuildInfoLine Include=" }" />
|
|
<BuildInfoLine Include=" }" />
|
|
<BuildInfoLine Include="}" />
|
|
</ItemGroup>
|
|
|
|
<WriteLinesToFile File="$(BuildInfoFile)" Lines="@(BuildInfoLine)" Overwrite="true" WriteOnlyWhenDifferent="true" />
|
|
|
|
<ItemGroup>
|
|
<Compile Include="$(BuildInfoFile)" />
|
|
</ItemGroup>
|
|
</Target>
|
|
</Project>
|