Refactor tasks
This commit is contained in:
parent
0986cc079a
commit
33d83d6639
14 changed files with 144 additions and 130 deletions
|
@ -1,97 +0,0 @@
|
|||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Microsoft.DotNet.Cli.Build
|
||||
{
|
||||
public class GenerateBuildVersionInfo : ToolTask
|
||||
{
|
||||
[Required]
|
||||
public string RepoRoot { get; set; }
|
||||
|
||||
[Required]
|
||||
public int VersionMajor { get; set; }
|
||||
|
||||
[Required]
|
||||
public int VersionMinor { get; set; }
|
||||
|
||||
[Required]
|
||||
public int VersionPatch { get; set; }
|
||||
|
||||
[Required]
|
||||
public string ReleaseSuffix { get; set; }
|
||||
|
||||
[Output]
|
||||
public string CommitCount { get; set; }
|
||||
|
||||
[Output]
|
||||
public string VersionSuffix { get; set; }
|
||||
|
||||
[Output]
|
||||
public string SimpleVersion { get; set; }
|
||||
|
||||
[Output]
|
||||
public string NugetVersion { get; set; }
|
||||
|
||||
[Output]
|
||||
public string MsiVersion { get; set; }
|
||||
|
||||
[Output]
|
||||
public string VersionBadgeMoniker { get; set; }
|
||||
|
||||
private int _commitCount;
|
||||
|
||||
public override bool Execute()
|
||||
{
|
||||
base.Execute();
|
||||
|
||||
var buildVersion = new BuildVersion()
|
||||
{
|
||||
Major = VersionMajor,
|
||||
Minor = VersionMinor,
|
||||
Patch = VersionPatch,
|
||||
ReleaseSuffix = ReleaseSuffix,
|
||||
CommitCount = _commitCount
|
||||
};
|
||||
|
||||
CommitCount = buildVersion.CommitCountString;
|
||||
VersionSuffix = buildVersion.VersionSuffix;
|
||||
SimpleVersion = buildVersion.SimpleVersion;
|
||||
NugetVersion = buildVersion.NuGetVersion;
|
||||
MsiVersion = buildVersion.GenerateMsiVersion();
|
||||
VersionBadgeMoniker = Monikers.GetBadgeMoniker();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected override string ToolName
|
||||
{
|
||||
get { return "git"; }
|
||||
}
|
||||
|
||||
protected override MessageImportance StandardOutputLoggingImportance
|
||||
{
|
||||
get { return MessageImportance.High; } // or else the output doesn't get logged by default
|
||||
}
|
||||
|
||||
protected override string GenerateFullPathToTool()
|
||||
{
|
||||
// Workaround: https://github.com/Microsoft/msbuild/issues/1215
|
||||
// There's a "git" folder on the PATH in VS 2017 Developer command prompt and it causes msbuild to fail to execute git.
|
||||
return RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "git.exe" : "git";
|
||||
}
|
||||
|
||||
protected override string GenerateCommandLineCommands()
|
||||
{
|
||||
return $"rev-list --count HEAD";
|
||||
}
|
||||
|
||||
protected override void LogEventsFromTextOutput(string line, MessageImportance importance)
|
||||
{
|
||||
_commitCount = int.Parse(line);
|
||||
}
|
||||
}
|
||||
}
|
46
build_projects/dotnet-cli-build/GenerateMsiVersion.cs
Normal file
46
build_projects/dotnet-cli-build/GenerateMsiVersion.cs
Normal file
|
@ -0,0 +1,46 @@
|
|||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Microsoft.DotNet.Cli.Build
|
||||
{
|
||||
public class GenerateMsiVersion : Task
|
||||
{
|
||||
[Required]
|
||||
public int CommitCount { get; set; }
|
||||
|
||||
[Required]
|
||||
public int VersionMajor { get; set; }
|
||||
|
||||
[Required]
|
||||
public int VersionMinor { get; set; }
|
||||
|
||||
[Required]
|
||||
public int VersionPatch { get; set; }
|
||||
|
||||
[Required]
|
||||
public string ReleaseSuffix { get; set; }
|
||||
|
||||
[Output]
|
||||
public string MsiVersion { get; set; }
|
||||
|
||||
public override bool Execute()
|
||||
{
|
||||
var buildVersion = new BuildVersion()
|
||||
{
|
||||
Major = VersionMajor,
|
||||
Minor = VersionMinor,
|
||||
Patch = VersionPatch,
|
||||
ReleaseSuffix = ReleaseSuffix,
|
||||
CommitCount = CommitCount
|
||||
};
|
||||
|
||||
MsiVersion = buildVersion.GenerateMsiVersion();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
42
build_projects/dotnet-cli-build/GetCommitCount.cs
Normal file
42
build_projects/dotnet-cli-build/GetCommitCount.cs
Normal file
|
@ -0,0 +1,42 @@
|
|||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Microsoft.DotNet.Cli.Build
|
||||
{
|
||||
public class GetCommitCount : ToolTask
|
||||
{
|
||||
[Output]
|
||||
public string CommitCount { get; set; }
|
||||
|
||||
protected override string ToolName
|
||||
{
|
||||
get { return "git"; }
|
||||
}
|
||||
|
||||
protected override MessageImportance StandardOutputLoggingImportance
|
||||
{
|
||||
get { return MessageImportance.High; } // or else the output doesn't get logged by default
|
||||
}
|
||||
|
||||
protected override string GenerateFullPathToTool()
|
||||
{
|
||||
// Workaround: https://github.com/Microsoft/msbuild/issues/1215
|
||||
// There's a "git" folder on the PATH in VS 2017 Developer command prompt and it causes msbuild to fail to execute git.
|
||||
return RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "git.exe" : "git";
|
||||
}
|
||||
|
||||
protected override string GenerateCommandLineCommands()
|
||||
{
|
||||
return $"rev-list --count HEAD";
|
||||
}
|
||||
|
||||
protected override void LogEventsFromTextOutput(string line, MessageImportance importance)
|
||||
{
|
||||
CommitCount = line;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -9,9 +9,6 @@ namespace Microsoft.DotNet.Cli.Build
|
|||
{
|
||||
public class GetCommitHash : ToolTask
|
||||
{
|
||||
[Required]
|
||||
public string RepoRoot { get; set; }
|
||||
|
||||
[Output]
|
||||
public string CommitHash { get; set; }
|
||||
|
||||
|
@ -42,4 +39,4 @@ namespace Microsoft.DotNet.Cli.Build
|
|||
CommitHash = line;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,8 +9,6 @@ namespace Microsoft.DotNet.Cli.Build
|
|||
{
|
||||
public class GetCurrentRuntimeInformation : Task
|
||||
{
|
||||
public string OverrideRid { get; set; }
|
||||
|
||||
[Output]
|
||||
public string Rid { get; set; }
|
||||
|
||||
|
@ -22,7 +20,7 @@ namespace Microsoft.DotNet.Cli.Build
|
|||
|
||||
public override bool Execute()
|
||||
{
|
||||
Rid = string.IsNullOrEmpty(OverrideRid) ? RuntimeEnvironment.GetRuntimeIdentifier() : OverrideRid;
|
||||
Rid = RuntimeEnvironment.GetRuntimeIdentifier();
|
||||
Architecture = RuntimeEnvironment.RuntimeArchitecture;
|
||||
OSName = Monikers.GetOSShortName();
|
||||
|
||||
|
|
22
build_projects/dotnet-cli-build/GetVersionBadgeMoniker.cs
Normal file
22
build_projects/dotnet-cli-build/GetVersionBadgeMoniker.cs
Normal file
|
@ -0,0 +1,22 @@
|
|||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Microsoft.DotNet.Cli.Build
|
||||
{
|
||||
public class GetVersionBadgeMoniker : Task
|
||||
{
|
||||
[Output]
|
||||
public string VersionBadgeMoniker { get; set; }
|
||||
|
||||
public override bool Execute()
|
||||
{
|
||||
VersionBadgeMoniker = Monikers.GetBadgeMoniker();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue