public static int Execute(string[] args, IBuildAgentUpdater updater, ILogger logger) { int exitCode; IBootstrapperSettings settings; if (ArgumentProcessor.TryProcessArgs(args, logger, out settings)) { Debug.Assert(settings != null, "Bootstrapper settings should not be null"); Debug.Assert(settings.Phase != AnalysisPhase.Unspecified, "Expecting the processing phase to be specified"); logger.Verbosity = settings.LoggingVerbosity; AnalysisPhase phase = settings.Phase; LogProcessingStarted(phase, logger); if (phase == AnalysisPhase.PreProcessing) { exitCode = PreProcess(updater, settings, logger); } else { exitCode = PostProcess(settings, logger); } LogProcessingCompleted(phase, exitCode, logger); } else { // The argument processor will have logged errors exitCode = ErrorCode; } return(exitCode); }
public static int Execute(string[] args, IBuildAgentUpdater updater, ILogger logger) { int exitCode; IBootstrapperSettings settings; if (ArgumentProcessor.TryProcessArgs(args, logger, out settings)) { Debug.Assert(settings != null, "Bootstrapper settings should not be null"); Debug.Assert(settings.Phase != AnalysisPhase.Unspecified, "Expecting the processing phase to be specified"); logger.Verbosity = settings.LoggingVerbosity; AnalysisPhase phase = settings.Phase; LogProcessingStarted(phase, logger); if (phase == AnalysisPhase.PreProcessing) { exitCode = PreProcess(updater, settings, logger); } else { exitCode = PostProcess(settings, logger); } LogProcessingCompleted(phase, exitCode, logger); } else { // The argument processor will have logged errors exitCode = ErrorCode; } return exitCode; }
private static TestLogger CheckExecutionSucceeds(IBuildAgentUpdater updater, params string[] args) { TestLogger logger = new TestLogger(); int exitCode = Bootstrapper.Program.Execute(args, updater, logger); Assert.AreEqual(0, exitCode, "Bootstrapper did not return the expected exit code"); logger.AssertErrorsLogged(0); return(logger); }
private static int PreProcess(IBuildAgentUpdater updater, IBootstrapperSettings settings, ILogger logger) { string downloadBinPath = settings.DownloadDirectory; logger.LogInfo(Resources.MSG_PreparingDirectories); if (!Utilities.TryEnsureEmptyDirectories(logger, settings.TempDirectory, downloadBinPath)) { return(ErrorCode); } string server = settings.SonarQubeUrl; Debug.Assert(!string.IsNullOrWhiteSpace(server), "Not expecting the server url to be null/empty"); logger.LogDebug(Resources.MSG_ServerUrl, server); logger.LogInfo(Resources.MSG_CheckingForUpdates); if (!updater.TryUpdate(server, downloadBinPath, logger)) { logger.LogError(Resources.ERROR_FailedToUpdateRunnerBinaries); return(ErrorCode); } if (!updater.CheckBootstrapperApiVersion(settings.SupportedBootstrapperVersionsFilePath, settings.BootstrapperVersion)) { logger.LogError(Resources.ERROR_VersionMismatch); return(ErrorCode); } var preprocessorFilePath = settings.PreProcessorFilePath; ProcessScannerArguments runnerArgs = new ProcessScannerArguments(preprocessorFilePath, false, logger) { CmdLineArgs = settings.ChildCmdLineArgs, WorkingDirectory = settings.TempDirectory, }; ProcessRunner runner = new ProcessRunner(); runner.Execute(runnerArgs); return(runner.ExitCode); }
private static int PreProcess(IBuildAgentUpdater updater, IBootstrapperSettings settings, ILogger logger) { string downloadBinPath = settings.DownloadDirectory; logger.LogInfo(Resources.MSG_PreparingDirectories); if (!Utilities.TryEnsureEmptyDirectories(logger, settings.TempDirectory, downloadBinPath)) { return ErrorCode; } string server = settings.SonarQubeUrl; Debug.Assert(!string.IsNullOrWhiteSpace(server), "Not expecting the server url to be null/empty"); logger.LogDebug(Resources.MSG_ServerUrl, server); logger.LogInfo(Resources.MSG_CheckingForUpdates); if (!updater.TryUpdate(server, downloadBinPath, logger)) { logger.LogError(Resources.ERROR_FailedToUpdateRunnerBinaries); return ErrorCode; } if (!updater.CheckBootstrapperApiVersion(settings.SupportedBootstrapperVersionsFilePath, settings.BootstrapperVersion)) { logger.LogError(Resources.ERROR_VersionMismatch); return ErrorCode; } var preprocessorFilePath = settings.PreProcessorFilePath; ProcessRunnerArguments runnerArgs = new ProcessRunnerArguments(preprocessorFilePath, logger) { CmdLineArgs = settings.ChildCmdLineArgs, WorkingDirectory = settings.TempDirectory, }; ProcessRunner runner = new ProcessRunner(); runner.Execute(runnerArgs); return runner.ExitCode; }
private static TestLogger CheckExecutionSucceeds(IBuildAgentUpdater updater, params string[] args) { TestLogger logger = new TestLogger(); int exitCode = Bootstrapper.Program.Execute(args, updater, logger); Assert.AreEqual(0, exitCode, "Bootstrapper did not return the expected exit code"); logger.AssertErrorsLogged(0); return logger; }