Files
octokit.net/build/Utilities/BuildVersion.cs
Stanley Goldman f70c402d78 Generate code coverage output with coverlet (#1866)
* add support for Codecov reporting on Windows
2019-09-17 09:49:44 -03:00

60 lines
1.7 KiB
C#

using Cake.Common.Diagnostics;
using Cake.Common.Tools.GitVersion;
using Cake.Core;
public class BuildVersion
{
public string Prefix { get; set; }
public string Suffix { get; set; }
public string FullSemVer { get; set; }
public BuildVersion(string version, string suffix, string fullSemVer)
{
Prefix = version;
Suffix = suffix;
FullSemVer = fullSemVer;
if (string.IsNullOrWhiteSpace(Suffix))
{
Suffix = null;
}
}
public string GetSemanticVersion()
{
if (!string.IsNullOrWhiteSpace(Suffix))
{
return string.Concat(Prefix, "-", Suffix);
}
return Prefix;
}
public static BuildVersion Calculate(Context context)
{
string version = null;
string semVersion = null;
string fullSemVer = null;
context.Information("Calculating semantic version...");
if (!context.IsLocalBuild)
{
// Run to set the version properties inside the CI server
GitVersionRunner.Run(context, GitVersionOutput.BuildServer);
}
// Run in interactive mode to get the properties for the rest of the script
var assertedversions = GitVersionRunner.Run(context, GitVersionOutput.Json);
version = assertedversions.MajorMinorPatch;
semVersion = assertedversions.LegacySemVerPadded;
fullSemVer = assertedversions.FullSemVer;
if (string.IsNullOrWhiteSpace(version))
{
throw new CakeException("Could not calculate version of build.");
}
return new BuildVersion(version, semVersion.Substring(version.Length).TrimStart('-'), fullSemVer);
}
}