Skip to content

Commit

Permalink
- add meta tags
Browse files Browse the repository at this point in the history
- get correct authors
  • Loading branch information
FroggieFrog committed Mar 18, 2024
1 parent c0f5ae7 commit 1309738
Show file tree
Hide file tree
Showing 6 changed files with 78 additions and 20 deletions.
1 change: 1 addition & 0 deletions BaGetter.sln
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
src\Directory.Build.props = src\Directory.Build.props
src\Directory.Build.targets = src\Directory.Build.targets
Directory.Packages.props = Directory.Packages.props
Dockerfile = Dockerfile
nuget.config = nuget.config
Expand Down
2 changes: 1 addition & 1 deletion src/BaGetter.Web/BaGetter.Web.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@

<ItemGroup>
<ProjectReference Include="..\BaGetter.Core\BaGetter.Core.csproj" />
</ItemGroup>
</ItemGroup>

</Project>
4 changes: 3 additions & 1 deletion src/BaGetter.Web/Helper/ApplicationVersion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ internal class ApplicationVersion
public string Branch { get; private set; }
public string Commit { get; private set; }
public DateTime BuildDateUtc { get; private set; }
public string Authors { get; private set; }

// Calculated
public string ShortCommit { get; private set; }
Expand All @@ -37,14 +38,15 @@ private ApplicationVersion()
BuildDateUtc = DateTime.UtcNow;
}

public ApplicationVersion(Uri repositoryBase, string informationalVersion, string version, string branch, string commit, DateTime buildDateUtc)
public ApplicationVersion(Uri repositoryBase, string informationalVersion, string version, string branch, string commit, DateTime buildDateUtc, string authors)
{
Present = true;
InformationalVersion = informationalVersion;
Version = version;
Branch = branch;
Commit = commit;
BuildDateUtc = buildDateUtc;
Authors = authors;

ShortCommit = string.IsNullOrEmpty(Commit) ? string.Empty : Commit.Substring(0, Math.Min(10, Commit.Length));

Expand Down
25 changes: 14 additions & 11 deletions src/BaGetter.Web/Helper/ApplicationVersionHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,24 @@ private static ApplicationVersion LoadVersion()
{
try
{
var metadata = typeof(ApplicationVersionHelper)
.Assembly
var assembly = typeof(ApplicationVersionHelper).Assembly;
var metadataAttr = assembly
.GetCustomAttributes<AssemblyMetadataAttribute>()
.ToDictionary(a => a.Key, a => a.Value, StringComparer.OrdinalIgnoreCase);
var infoVer = typeof(ApplicationVersionHelper)
.Assembly
var infoVersionAttr = assembly
.GetCustomAttribute<AssemblyInformationalVersionAttribute>();
var companyAttr = assembly
.GetCustomAttribute<AssemblyCompanyAttribute>();

var informationalVersion = infoVer == null ?
var informationalVersion = infoVersionAttr == null ?
typeof(ApplicationVersionHelper).Assembly.GetName().Version.ToString() :
infoVer.InformationalVersion;
infoVersionAttr.InformationalVersion;
var version = informationalVersion.Split("+").First();
var branch = TryGet(metadata, "Branch");
var commit = TryGet(metadata, "CommitId");
var dateString = TryGet(metadata, "BuildDateUtc");
var repoUriString = TryGet(metadata, "RepositoryUrl");
var authors = companyAttr?.Company ?? string.Empty;
var branch = TryGet(metadataAttr, "CommitBranch");
var commit = TryGet(metadataAttr, "CommitHash");
var dateString = TryGet(metadataAttr, "BuildDateUtc");
var repoUriString = TryGet(metadataAttr, "RepositoryUrl");

if (!DateTime.TryParse(dateString, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out var buildDate))
{
Expand All @@ -53,7 +55,8 @@ private static ApplicationVersion LoadVersion()
version,
branch,
commit,
buildDate);
buildDate,
authors);
}
catch
{
Expand Down
36 changes: 29 additions & 7 deletions src/BaGetter.Web/Pages/Shared/_Layout.cshtml
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
@using System.Reflection
@using BaGetter.Web.Helper
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="BaGet">
<meta name="author" content="Loic Sharma">
<meta name="author" content="@ApplicationVersionHelper.GetVersion().Authors">
@ReleaseMetadata()

<link rel="shortcut icon" href="~/_content/BaGetter.Web/favicon.ico">

Expand Down Expand Up @@ -64,14 +66,10 @@
@RenderBody()
</main>

<footer class="footer">
<footer class="footer">
<p>
Version: @(Assembly.GetEntryAssembly()
.GetCustomAttribute<AssemblyInformationalVersionAttribute>()
.InformationalVersion
.Split("+").First())
Version: @ApplicationVersionHelper.GetVersion().Version
</p>

</footer>

<script src="~/_content/BaGetter.Web/lib/alpinejs/dist/alpine.js"></script>
Expand All @@ -83,3 +81,27 @@
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>

@{
//based on: https://github.com/NuGet/NuGetGallery/blob/main/src/NuGetGallery/Views/Shared/Gallery/Layout.cshtml
object ReleaseMetadata()
{
var ver = ApplicationVersionHelper.GetVersion();
if (ver.Present)
{
WriteMeta("branch", ver.Branch);
WriteMeta("commit", ver.ShortCommit);
WriteMeta("time", ver.BuildDateUtc == DateTime.MinValue ? null : ver.BuildDateUtc.ToString("O"));
}

return null;
}

void WriteMeta(string name, string val)
{
if (!string.IsNullOrEmpty(val))
{
<meta name="deployment-@name" content="@val" />
}
}
}
30 changes: 30 additions & 0 deletions src/Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<Project>

<PropertyGroup>
<!--Azure Pipelines-->
<CommitBranch Condition=" '$(CommitBranch)' == '' ">$(BUILD_SOURCEBRANCHNAME)</CommitBranch>
<CommitHash Condition=" '$(CommitHash)' == '' ">$(BUILD_SOURCEVERSION)</CommitHash>
<!--GitHub Actions-->
<CommitBranch Condition=" '$(CommitBranch)' == '' and '$(GITHUB_REF_NAME)' != '' ">$(GITHUB_REF_NAME)</CommitBranch>
<CommitHash Condition=" '$(CommitHash)' == '' ">$(GITHUB_SHA)</CommitHash>
</PropertyGroup>

<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)' == '' ">
<Output TaskParameter="ConsoleOutput" PropertyName="CommitHash" />
</Exec>
<Exec Command="git rev-parse --abbrev-ref HEAD" ConsoleToMSBuild="true" StandardOutputImportance="low" IgnoreExitCode="true" Condition=" '$(CommitBranch)' == '' ">
<Output TaskParameter="ConsoleOutput" PropertyName="CommitBranch" />
</Exec>

<!--Generates the ItemGroup and all AssemblyMetadata Tags-->
<ItemGroup>
<AssemblyMetadata Include="BuildDateUtc" Value="$([System.DateTime]::UtcNow.ToString(o))" />
<AssemblyMetadata Condition=" $(CommitHash) != '' " Include="CommitHash" Value="$(CommitHash)" />
<AssemblyMetadata Condition=" $(CommitBranch) != '' " Include="CommitBranch" Value="$(CommitBranch)" />
</ItemGroup>

</Target>
</Project>

0 comments on commit 1309738

Please sign in to comment.