Make numeric revision numbers only usable on full clones

This commit is contained in:
Toru the Red Fox 2022-07-27 19:59:33 +01:00
commit 40f84f861c
4 changed files with 27 additions and 9 deletions

View file

@ -3,6 +3,6 @@ namespace LBPUnion.ProjectLighthouse.Configuration.ConfigurationCategories;
public class CustomizationConfiguration public class CustomizationConfiguration
{ {
public string ServerName { get; set; } = "Project Lighthouse"; public string ServerName { get; set; } = "Project Lighthouse";
public string EnvironmentName { get; set; } = "lighthouse"; public string EnvironmentName { get; set; } = "project-lighthouse";
public bool UseNumericRevisionNumber { get; set; } = false; public bool UseLessReliableNumericRevisionNumberingSystem { get; set; } = false;
} }

View file

@ -8,13 +8,25 @@ public static class VersionHelper
{ {
static VersionHelper() static VersionHelper()
{ {
string rawRevision = "<unknown>"; string commitNumber = "invalid";
try try
{ {
CommitHash = ResourceHelper.ReadManifestFile("gitVersion.txt"); CommitHash = ResourceHelper.ReadManifestFile("gitVersion.txt");
Branch = ResourceHelper.ReadManifestFile("gitBranch.txt"); Branch = ResourceHelper.ReadManifestFile("gitBranch.txt");
rawRevision = ServerConfiguration.Instance.Customization.UseNumericRevisionNumber ? ResourceHelper.ReadManifestFile("gitRevCount.txt") : $"{CommitHash}_{Build}"; bool isShallowRepo = ResourceHelper.ReadManifestFile("gitIsShallowRepo.txt") == "true";
Revision = (Branch == "main") ? $"r{rawRevision}" : $"{Branch}_r{rawRevision}"; if (isShallowRepo)
{
Logger.Warn
(
"The UseLessReliavleNumericRevisionNumberingSystem option is not supported for builds made from a shallow clone." +
"Please perform a full clone if you want to use numeric revision numbers." +
"UseLessReliavleNumericRevisionNumberingSystem is now disabled.",
LogArea.Startup
);
ServerConfiguration.Instance.Customization.UseLessReliableNumericRevisionNumberingSystem = false;
}
commitNumber = ServerConfiguration.Instance.Customization.UseLessReliableNumericRevisionNumberingSystem ? ResourceHelper.ReadManifestFile("gitRevCount.txt") : $"{CommitHash}_{Build}";
OrdinalCommitNumber = (Branch == "main") ? $"r{commitNumber}" : $"{Branch}_r{commitNumber}";
string remotesFile = ResourceHelper.ReadManifestFile("gitRemotes.txt"); string remotesFile = ResourceHelper.ReadManifestFile("gitRemotes.txt");
@ -51,16 +63,16 @@ public static class VersionHelper
"Please make sure you are properly disclosing the source code to any users who may be using this instance.", "Please make sure you are properly disclosing the source code to any users who may be using this instance.",
LogArea.Startup LogArea.Startup
); );
Revision = $"{Branch}-dirty_r{rawRevision}"; OrdinalCommitNumber = $"{Branch}-dirty_r{commitNumber}";
CanCheckForUpdates = false; CanCheckForUpdates = false;
} }
} }
public static string CommitHash { get; set; } public static string CommitHash { get; set; }
public static string Branch { get; set; } public static string Branch { get; set; }
public static string Revision { get; set; } public static string OrdinalCommitNumber { get; set; }
public static string EnvVer => $"{ServerConfiguration.Instance.Customization.EnvironmentName} {Revision}"; public static string EnvVer => $"{ServerConfiguration.Instance.Customization.EnvironmentName} {OrdinalCommitNumber}";
public static string FullVersion => $"Project Lighthouse {Branch}@{CommitHash} {Build} ({EnvVer})"; public static string FullVersion => $"Project Lighthouse {Branch}@{CommitHash} {Build} ({(ServerConfiguration.Instance.Customization.UseLessReliableNumericRevisionNumberingSystem ? EnvVer : ServerConfiguration.Instance.Customization.EnvironmentName)})";
public static bool IsDirty => CommitHash.EndsWith("-dirty") || CommitsOutOfDate != 1 || CommitHash == "invalid" || Branch == "invalid"; public static bool IsDirty => CommitHash.EndsWith("-dirty") || CommitsOutOfDate != 1 || CommitHash == "invalid" || Branch == "invalid";
public static int CommitsOutOfDate { get; set; } public static int CommitsOutOfDate { get; set; }
public static bool CanCheckForUpdates { get; set; } public static bool CanCheckForUpdates { get; set; }

View file

@ -52,6 +52,10 @@
<EmbeddedResource Include="gitRevCount.txt"> <EmbeddedResource Include="gitRevCount.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource> </EmbeddedResource>
<None Remove="gitIsShallowRepo.txt" />
<EmbeddedResource Include="gitIsShallowRepo.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -63,6 +67,7 @@
</ItemGroup> </ItemGroup>
<Target Name="PreBuild" BeforeTargets="PreBuildEvent"> <Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command="git rev-parse --is-shallow-repository &gt; &quot;$(ProjectDir)/gitIsShallowRepo.txt&quot;" />
<Exec Command="git describe --long --always --dirty --exclude=\* --abbrev=8 &gt; &quot;$(ProjectDir)/gitVersion.txt&quot;" /> <Exec Command="git describe --long --always --dirty --exclude=\* --abbrev=8 &gt; &quot;$(ProjectDir)/gitVersion.txt&quot;" />
<Exec Command="git rev-list HEAD --count &gt; &quot;$(ProjectDir)/gitRevCount.txt&quot;" /> <Exec Command="git rev-list HEAD --count &gt; &quot;$(ProjectDir)/gitRevCount.txt&quot;" />
<Exec Command="git branch --show-current &gt; &quot;$(ProjectDir)/gitBranch.txt&quot;" /> <Exec Command="git branch --show-current &gt; &quot;$(ProjectDir)/gitBranch.txt&quot;" />

View file

@ -0,0 +1 @@
false