in build/VersionInfoAttribute.cs [12:43]
public override object GetValue(MemberInfo member, object instance) =>
GetFromSpace() ?? GetFromGit() ?? GetFromTime();
bool IsMainBranch(string branch) =>
string.Equals(branch, "refs/heads/main", StringComparison.OrdinalIgnoreCase) ||
string.Equals(branch, "main", StringComparison.OrdinalIgnoreCase);
VersionInfo? GetFromSpace()
{
var versionInfo = File.Exists("version-info.txt")
? File.ReadAllText("version-info.txt").TrimStart('v')
: $"{VersionMajor}.{VersionMinor}";
var executionNumber = Environment.GetEnvironmentVariable("JB_SPACE_EXECUTION_NUMBER");
var branch = Environment.GetEnvironmentVariable("JB_SPACE_GIT_BRANCH")?.Replace("refs/heads/", "").Replace("/", "-");
var revision = Environment.GetEnvironmentVariable("JB_SPACE_GIT_REVISION");
if (!string.IsNullOrEmpty(executionNumber) &&
!string.IsNullOrEmpty(branch) &&
!string.IsNullOrEmpty(revision))
{
return new VersionInfo(
$"{VersionMajor}.{VersionMinor}.{executionNumber}.0",
$"{VersionMajor}.{VersionMinor}.{executionNumber}.0",
$"{VersionMajor}.{VersionMinor}.{executionNumber}.0+Branch.{branch}.Sha.{revision}.Server.{versionInfo}",
IsMainBranch(branch)
? $"{versionInfo}.{executionNumber}"
: $"{versionInfo}-{branch}.{executionNumber}");
}
return null;
}