Skip to content

Commit

Permalink
Better versioning
Browse files Browse the repository at this point in the history
~ Embed build information.
~ Print build metadata
~ Prevent the source revision in the informational version.
  • Loading branch information
jf-06 committed Jun 17, 2024
1 parent c1b06bb commit f56fcd6
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 7 deletions.
5 changes: 4 additions & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
<RootDirectory Condition="'$(SolutionDir)' == ''">$(MSBuildThisFileDirectory)</RootDirectory>
</PropertyGroup>

<Import Project="$(RootDirectory)targets/git-metadata.targets" Condition="Exists('$(RootDirectory)targets/git-metadata.targets')" />

<PropertyGroup Label="PackageMetadata">
<Company>MFDLABS</Company>
<Copyright>Copyright © $(Company) $([System.DateTime]::Now.ToString(`yyyy`)). All rights reserved.</Copyright>
Expand All @@ -28,8 +30,9 @@
<RepositoryUrl>https://github.com/mfdlabs/grid-bot</RepositoryUrl>
<RepositoryType>git</RepositoryType>

<VersionPrefix>$([System.DateTime]::Now.ToString(`yyyy.MM.dd`))</VersionPrefix>
<Version>$([System.DateTime]::Now.ToString(`yyyy.MM.dd`))</Version>

<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
<InformationalVersion Condition="'$(CI)' == 'true'">$(IMAGE_TAG)</InformationalVersion>
<InformationalVersion Condition="'$(CI)' != 'true'">dev</InformationalVersion>
</PropertyGroup>
Expand Down
3 changes: 2 additions & 1 deletion shared/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@
<RepositoryUrl>https://github.com/mfdlabs/grid-bot</RepositoryUrl>
<RepositoryType>git</RepositoryType>

<VersionPrefix>$([System.DateTime]::Now.ToString(`yyyy.MM.dd`))</VersionPrefix>
<Version>$([System.DateTime]::Now.ToString(`yyyy.MM.dd`))</Version>

<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
<InformationalVersion Condition="'$(CI)' == 'true'">$(IMAGE_TAG)</InformationalVersion>
<InformationalVersion Condition="'$(CI)' != 'true'">dev</InformationalVersion>
</PropertyGroup>
Expand Down
10 changes: 5 additions & 5 deletions src/Runner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -114,13 +114,13 @@ private static ServiceProvider InitializeServices()
services.AddSingleton<ILogger>(logger);

var informationalVersion = Assembly.GetExecutingAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion;
var metadataAttributes = Assembly.GetExecutingAssembly().GetCustomAttributes<AssemblyMetadataAttribute>();

logger.Information($"Starting Grid.Bot, Version = {informationalVersion}");
var buildTimeStamp = DateTime.Parse(metadataAttributes.FirstOrDefault(a => a.Key == "BuildTimestamp")?.Value ?? "1/1/1970");
var gitHash = metadataAttributes.FirstOrDefault(a => a.Key == "GitHash")?.Value ?? "Unknown";
var gitBranch = metadataAttributes.FirstOrDefault(a => a.Key == "GitBranch")?.Value ?? "Unknown";

#if DEBUG

Logger.GlobalLogPrefixes.Add(() => informationalVersion);
#endif
logger.Information($"Starting Grid.Bot, Version = {informationalVersion}, BuildTimeStamp = {buildTimeStamp}, GitHash = {gitHash}, GitBranch = {gitBranch}");

var config = new DiscordSocketConfig()
{
Expand Down
32 changes: 32 additions & 0 deletions targets/git-metadata.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<Project>
<Target Name="AddGitMetadaAssemblyAttributes"
BeforeTargets="GetAssemblyAttributes">

<!--Executes the Git Commands to get the Hash and Branch-->
<Exec Command="git rev-parse HEAD" ConsoleToMSBuild="true"
StandardOutputImportance="low" IgnoreExitCode="true" Condition=" '$(CommitHash)' == '' "
WorkingDirectory="$(RootDirectory)">
<Output TaskParameter="ConsoleOutput" PropertyName="CommitHash" />
</Exec>
<Exec Command="git rev-parse --short HEAD" ConsoleToMSBuild="true"
StandardOutputImportance="low" IgnoreExitCode="true"
Condition=" '$(CommitShortHash)' == '' " WorkingDirectory="$(RootDirectory)">
<Output TaskParameter="ConsoleOutput" PropertyName="CommitShortHash" />
</Exec>
<Exec Command="git rev-parse --abbrev-ref HEAD" ConsoleToMSBuild="true"
StandardOutputImportance="low" IgnoreExitCode="true"
Condition=" '$(CommitBranch)' == '' " WorkingDirectory="$(RootDirectory)">
<Output TaskParameter="ConsoleOutput" PropertyName="CommitBranch" />
</Exec>

<ItemGroup>
<AssemblyMetadata Include="BuildTimestamp"
Value="$([System.DateTime]::UtcNow.ToString(yyyy-MM-ddTHH:mm:ssK))" />
<AssemblyMetadata Condition=" $(CommitHash) != '' " Include="GitHash"
Value="$(CommitHash)" />
<AssemblyMetadata Condition=" $(CommitBranch) != '' " Include="GitBranch"
Value="$(CommitBranch)" />
</ItemGroup>
</Target>

</Project>

0 comments on commit f56fcd6

Please sign in to comment.