static int Main(string[] args) { if (args.Length > 0 && args[0] == "--debug") { args = args.Skip(1).ToArray(); System.Diagnostics.Debugger.Launch(); } var app = new CommandLineApplication(); var dropFolder = app.Option("--drop-folder", "The CI drop share.", CommandOptionType.SingleValue); var buildBranch = app.Option("--build-branch", "Build branch (dev \\ release)", CommandOptionType.SingleValue); var outputPath = app.Option("--output-path", "Output path", CommandOptionType.SingleValue); var nugetPublishFeed = app.Option("--nuget-publish-feed", "Feed to push packages to", CommandOptionType.SingleValue); var apiKey = app.Option("--api-key", "NuGet API Key", CommandOptionType.SingleValue); var ciVolatileShare = app.Option("--ci-volatile-share", "CI Volatile share", CommandOptionType.SingleValue); var universeCoherenceDropDir = app.Option( "--universecoherence-build", "Build number for UniverseCoherence.", CommandOptionType.SingleValue); var coreCLRDropDir = app.Option( "--coreclr-build", "Build number for CoreCLR", CommandOptionType.SingleValue); var disableProductPackageVerification = app.Option( "--disable-product-package-verification", "Enable sanity verification on AspNetCore packages", CommandOptionType.NoValue); var disablePartnerPackageVerification = app.Option( "--disable-partner-package-verification", "Enable sanity verification for partner packages", CommandOptionType.NoValue); app.OnExecute(() => { var requiredFields = new[] { dropFolder, buildBranch, outputPath, universeCoherenceDropDir, coreCLRDropDir }; var nullField = requiredFields.FirstOrDefault(f => !f.HasValue()); if (nullField != null) { Log.WriteError($"Missing argument value {nullField.Template}."); app.ShowHelp(); return(1); } var repoInfos = new List <RepositoryInfo> { new RepositoryInfo("UniverseCoherence", universeCoherenceDropDir.Value()) { PackagesDestinationDirectory = "product-packages", }, new RepositoryInfo("CoreCLR", coreCLRDropDir.Value()) { PackagesDestinationDirectory = "ext", }, }; var coherenceBuild = new CoherenceBuild( repoInfos, dropFolder.Value().Trim(), buildBranch.Value(), outputPath.Value().Trim(), nugetPublishFeed.Value(), apiKey.Value()); if (disableProductPackageVerification.HasValue()) { coherenceBuild.VerifyBehavior &= CoherenceVerifyBehavior.All ^ CoherenceVerifyBehavior.ProductPackages; } if (disablePartnerPackageVerification.HasValue()) { coherenceBuild.VerifyBehavior &= CoherenceVerifyBehavior.All ^ CoherenceVerifyBehavior.PartnerPackages; } return(coherenceBuild.Execute()); }); try { return(app.Execute(args)); } catch (Exception ex) { Log.WriteError(ex.ToString()); return(1); } }
static int Main(string[] args) { var app = new CommandLineApplication(); var dropFolder = app.Option("--drop-folder", "The CI drop share.", CommandOptionType.SingleValue); var buildBranch = app.Option("--build-branch", "Build branch (dev \\ release)", CommandOptionType.SingleValue); var outputPath = app.Option("--output-path", "Output path", CommandOptionType.SingleValue); var nugetPublishFeed = app.Option("--nuget-publish-feed", "Feed to push packages to", CommandOptionType.SingleValue); var apiKey = app.Option("--api-key", "NuGet API Key", CommandOptionType.SingleValue); var ciVolatileShare = app.Option("--ci-volatile-share", "CI Volatile share", CommandOptionType.SingleValue); var universeCoherenceDropDir = app.Option( "--universecoherence-build", "Build number for UniverseCoherence.", CommandOptionType.SingleValue); var coreCLRDropDir = app.Option( "--coreclr-build", "Build number for CoreCLR", CommandOptionType.SingleValue); var disableProductPackageVerification = app.Option( "--disable-product-package-verification", "Enable sanity verification on AspNetCore packages", CommandOptionType.NoValue); var disablePartnerPackageVerification = app.Option( "--disable-partner-package-verification", "Enable sanity verification for partner packages", CommandOptionType.NoValue); app.OnExecute(() => { var requiredFields = new[] { dropFolder, buildBranch, outputPath, universeCoherenceDropDir, coreCLRDropDir }; var nullField = requiredFields.FirstOrDefault(f => !f.HasValue()); if (nullField != null) { Log.WriteError($"Missing argument value {nullField.Template}."); app.ShowHelp(); return(1); } var repoInfos = new List <RepositoryInfo> { new RepositoryInfo("UniverseCoherence", universeCoherenceDropDir.Value()) { PackagesToSkip = { "MusicStore", "MusicStore.StandAlone" }, FileSystemDependencies = { new FileDependency("commits") { Destination = "commits-universe" }, new FolderDependecy(".build"), }, }, new RepositoryInfo("CoreCLR", coreCLRDropDir.Value()) { PackageDestinationDir = "ext", FileSystemDependencies = { new FolderDependecy("netcoresdk") { Optional = true } }, }, new RepositoryInfo("SignalR-Client-Cpp", "latest") }; var coherenceBuild = new CoherenceBuild( repoInfos, dropFolder.Value(), buildBranch.Value(), outputPath.Value(), nugetPublishFeed.Value(), apiKey.Value()); if (disableProductPackageVerification.HasValue()) { coherenceBuild.VerifyBehavior &= CoherenceVerifyBehavior.All ^ CoherenceVerifyBehavior.ProductPackages; } if (disablePartnerPackageVerification.HasValue()) { coherenceBuild.VerifyBehavior &= CoherenceVerifyBehavior.All ^ CoherenceVerifyBehavior.PartnerPackages; } return(coherenceBuild.Execute()); }); return(app.Execute(args)); }