Consume local info support from VersionTools
Davis added support for VersionTools to be able to pull from a local filesystem layout that looks like what we have in GitHub on dotnet/versions. Start to consume this so a composed build can use this logic to update dependencies using local version information produced during the build.
This commit is contained in:
parent
99f7eb4843
commit
921c116c65
3 changed files with 37 additions and 16 deletions
|
@ -17,12 +17,13 @@ namespace Microsoft.DotNet.Scripts
|
||||||
///
|
///
|
||||||
/// The following Environment Variables can optionally be specified:
|
/// The following Environment Variables can optionally be specified:
|
||||||
///
|
///
|
||||||
/// ROSLYN_VERSION_URL - The Url to get the current Roslyn version. (ex. "https://raw.githubusercontent.com/dotnet/versions/master/build-info/dotnet/roslyn/netcore1.0")
|
/// DOTNET_VERSION_URL - The Url to the root of the version information (this is combined with the fragments bellow) (ex. "https://raw.githubusercontent.com/dotnet/versions/master/build-info")
|
||||||
/// CORESETUP_VERSION_URL - The Url to get the current dotnet/core-setup package versions. (ex. "https://raw.githubusercontent.com/dotnet/versions/master/build-info/dotnet/core-setup/master")
|
/// ROSLYN_VERSION_FRAGMENT - The fragment to combine with DOTNET_VERSION_URL to get the current dotnet/roslyn package versions. (ex. "dotnet/roslyn/netcore1.0")
|
||||||
|
/// CORESETUP_VERSION_FRAGMENT - The fragment to combine with DOTNET_VERSION_URL to get the current dotnet/core-setup package versions. (ex. "dotnet/core-setup/master")
|
||||||
/// GITHUB_ORIGIN_OWNER - The owner of the GitHub fork to push the commit and create the PR from. (ex. "dotnet-bot")
|
/// GITHUB_ORIGIN_OWNER - The owner of the GitHub fork to push the commit and create the PR from. (ex. "dotnet-bot")
|
||||||
/// GITHUB_UPSTREAM_OWNER - The owner of the GitHub base repo to create the PR to. (ex. "dotnet")
|
/// GITHUB_UPSTREAM_OWNER - The owner of the GitHub base repo to create the PR to. (ex. "dotnet")
|
||||||
/// GITHUB_PROJECT - The repo name under the ORIGIN and UPSTREAM owners. (ex. "cli")
|
/// GITHUB_PROJECT - The repo name under the ORIGIN and UPSTREAM owners. (ex. "cli")
|
||||||
/// GITHUB_UPSTREAM_BRANCH - The branch in the GitHub base repo to create the PR to. (ex. "master")
|
/// GITHUB_UPSTREAM_BRANCH - The branch in the GitHub base repo to create the PR to. (ex. "master");
|
||||||
/// GITHUB_PULL_REQUEST_NOTIFICATIONS - A semi-colon ';' separated list of GitHub users to notify on the PR.
|
/// GITHUB_PULL_REQUEST_NOTIFICATIONS - A semi-colon ';' separated list of GitHub users to notify on the PR.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
public class Config
|
public class Config
|
||||||
|
@ -33,15 +34,15 @@ namespace Microsoft.DotNet.Scripts
|
||||||
private Lazy<string> _email = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_EMAIL"));
|
private Lazy<string> _email = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_EMAIL"));
|
||||||
private Lazy<string> _password = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_PASSWORD"));
|
private Lazy<string> _password = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_PASSWORD"));
|
||||||
|
|
||||||
private Lazy<string> _roslynVersionUrl = new Lazy<string>(() => GetEnvironmentVariable("ROSLYN_VERSION_URL", "https://raw.githubusercontent.com/dotnet/versions/master/build-info/dotnet/roslyn/netcore1.0"));
|
private Lazy<string> _dotNetVersionUrl = new Lazy<string>(() => GetEnvironmentVariable("DOTNET_VERSION_URL", "https://raw.githubusercontent.com/dotnet/versions/master/build-info"));
|
||||||
private Lazy<string> _coreSetupVersionUrl = new Lazy<string>(() => GetEnvironmentVariable("CORESETUP_VERSION_URL", "https://raw.githubusercontent.com/dotnet/versions/master/build-info/dotnet/core-setup/master"));
|
private Lazy<string> _roslynVersionFragment = new Lazy<string>(() => GetEnvironmentVariable("ROSLYN_VERSION_FRAGMENT", "dotnet/roslyn/netcore1.0"));
|
||||||
|
private Lazy<string> _coreSetupVersionFragment = new Lazy<string>(() => GetEnvironmentVariable("CORESETUP_VERSION_FRAGMENT", "dotnet/core-setup/master"));
|
||||||
private Lazy<string> _gitHubUpstreamOwner = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_UPSTREAM_OWNER", "dotnet"));
|
private Lazy<string> _gitHubUpstreamOwner = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_UPSTREAM_OWNER", "dotnet"));
|
||||||
private Lazy<string> _gitHubProject = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_PROJECT", "cli"));
|
private Lazy<string> _gitHubProject = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_PROJECT", "cli"));
|
||||||
private Lazy<string> _gitHubUpstreamBranch = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_UPSTREAM_BRANCH", "master"));
|
private Lazy<string> _gitHubUpstreamBranch = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_UPSTREAM_BRANCH", "master"));
|
||||||
private Lazy<string[]> _gitHubPullRequestNotifications = new Lazy<string[]>(() =>
|
private Lazy<string[]> _gitHubPullRequestNotifications = new Lazy<string[]>(() =>
|
||||||
GetEnvironmentVariable("GITHUB_PULL_REQUEST_NOTIFICATIONS", "")
|
GetEnvironmentVariable("GITHUB_PULL_REQUEST_NOTIFICATIONS", "")
|
||||||
.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
|
.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
|
||||||
|
|
||||||
private Config()
|
private Config()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -49,8 +50,9 @@ namespace Microsoft.DotNet.Scripts
|
||||||
public string UserName => _userName.Value;
|
public string UserName => _userName.Value;
|
||||||
public string Email => _email.Value;
|
public string Email => _email.Value;
|
||||||
public string Password => _password.Value;
|
public string Password => _password.Value;
|
||||||
public string RoslynVersionUrl => _roslynVersionUrl.Value;
|
public string DotNetVersionUrl => _dotNetVersionUrl.Value;
|
||||||
public string CoreSetupVersionUrl => _coreSetupVersionUrl.Value;
|
public string RoslynVersionFragment => _roslynVersionFragment.Value;
|
||||||
|
public string CoreSetupVersionFragment => _coreSetupVersionFragment.Value;
|
||||||
public string GitHubUpstreamOwner => _gitHubUpstreamOwner.Value;
|
public string GitHubUpstreamOwner => _gitHubUpstreamOwner.Value;
|
||||||
public string GitHubProject => _gitHubProject.Value;
|
public string GitHubProject => _gitHubProject.Value;
|
||||||
public string GitHubUpstreamBranch => _gitHubUpstreamBranch.Value;
|
public string GitHubUpstreamBranch => _gitHubUpstreamBranch.Value;
|
||||||
|
|
|
@ -25,8 +25,8 @@ namespace Microsoft.DotNet.Scripts
|
||||||
|
|
||||||
List<BuildInfo> buildInfos = new List<BuildInfo>();
|
List<BuildInfo> buildInfos = new List<BuildInfo>();
|
||||||
|
|
||||||
buildInfos.Add(BuildInfo.Get("Roslyn", s_config.RoslynVersionUrl, fetchLatestReleaseFile: false));
|
buildInfos.Add(GetBuildInfo("Roslyn", s_config.RoslynVersionFragment, fetchLatestReleaseFile: false));
|
||||||
buildInfos.Add(BuildInfo.Get("CoreSetup", s_config.CoreSetupVersionUrl, fetchLatestReleaseFile: false));
|
buildInfos.Add(GetBuildInfo("CoreSetup", s_config.CoreSetupVersionFragment, fetchLatestReleaseFile: false));
|
||||||
|
|
||||||
IEnumerable<IDependencyUpdater> updaters = GetUpdaters();
|
IEnumerable<IDependencyUpdater> updaters = GetUpdaters();
|
||||||
var dependencyBuildInfos = buildInfos.Select(buildInfo =>
|
var dependencyBuildInfos = buildInfos.Select(buildInfo =>
|
||||||
|
@ -60,6 +60,25 @@ namespace Microsoft.DotNet.Scripts
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static BuildInfo GetBuildInfo(string name, string buildInfoFragment, bool fetchLatestReleaseFile = true)
|
||||||
|
{
|
||||||
|
const string FileUrlProtocol = "file://";
|
||||||
|
|
||||||
|
if (s_config.DotNetVersionUrl.StartsWith(FileUrlProtocol, StringComparison.Ordinal))
|
||||||
|
{
|
||||||
|
return BuildInfo.LocalFileGetAsync(
|
||||||
|
name,
|
||||||
|
s_config.DotNetVersionUrl.Substring(FileUrlProtocol.Length),
|
||||||
|
buildInfoFragment.Replace('/', Path.DirectorySeparatorChar),
|
||||||
|
fetchLatestReleaseFile)
|
||||||
|
.Result;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return BuildInfo.Get(name, $"{s_config.DotNetVersionUrl}/{buildInfoFragment}", fetchLatestReleaseFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static IEnumerable<IDependencyUpdater> GetUpdaters()
|
private static IEnumerable<IDependencyUpdater> GetUpdaters()
|
||||||
{
|
{
|
||||||
yield return CreateRegexUpdater(Path.Combine("build", "Microsoft.DotNet.Cli.DependencyVersions.props"), "CLI_SharedFrameworkVersion", "Microsoft.NETCore.App");
|
yield return CreateRegexUpdater(Path.Combine("build", "Microsoft.DotNet.Cli.DependencyVersions.props"), "CLI_SharedFrameworkVersion", "Microsoft.NETCore.App");
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.NETCore.App" Version="1.0.0" />
|
<PackageReference Include="Microsoft.NETCore.App" Version="1.0.0" />
|
||||||
<PackageReference Include="Microsoft.DotNet.VersionTools" Version="1.0.27-prerelease-01308-02" />
|
<PackageReference Include="Microsoft.DotNet.VersionTools" Version="1.0.27-prerelease-01316-08" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue