private async Task CreateNugetPackage(CancellationToken token) { var packageDir = Path.Combine(Context.ContentDirectory, "Jenkins.Net.Publishing", "bin", "Package"); var args = new[] { "pack", "\"Jenkins.Net\\Jenkins.Net.csproj\"", "--configuration Release", "--no-build", $"--output \"{packageDir}\"", }; var info = new ProcessRunInfo { Filename = "dotnet", Arguments = string.Join(" ", args), WorkingDirectory = Context.ContentDirectory, }; var runner = new ProcessRunner(Context); var result = await runner.RunAsync(info, token); if (result.ExitCode != 0) { throw new ApplicationException($"Build Failed! [{result.ExitCode}]"); } }
private async void BeginInstall(string updatePath, string msiFilename) { // TODO: Verify MSI? try { await PhotonServer.Instance.Shutdown(TimeSpan.FromSeconds(30)); } catch (Exception error) { Log.Error("An error occurred while shutting down!", error); } Log.Debug("Starting server update..."); try { var runInfo = new ProcessRunInfo { Filename = "msiexec.exe", Arguments = $"/i \"{msiFilename}\" /passive /l*vx \"log.txt\"", WorkingDirectory = updatePath, }; new ProcessRunner().Start(runInfo); Log.Info("Server update started."); } catch (Exception error) { Log.Error("Failed to start server update!", error); } }
private async Task BeginInstall(string updatePath, string msiFilename) { // TODO: Verify MSI? try { await PhotonAgent.Instance.Shutdown(TimeSpan.FromSeconds(30)); } catch (Exception error) { Log.Error("An error occurred while shutting down!", error); } Log.Debug("Starting agent update..."); try { var runInfo = new ProcessRunInfo { Filename = "msiexec.exe", Arguments = $"/i \"{msiFilename}\" /passive /l*vx \"log.txt\"", WorkingDirectory = updatePath, }; using (var process = new ProcessRunner().Start(runInfo)) { if (process == null) { throw new ApplicationException("Failed to start process!"); } } Log.Info("Agent update started."); } catch (Exception error) { Log.Error("Failed to start agent update!", error); } }
public void SplitWithQuotes_NoArgs() { var info = ProcessRunInfo.FromCommand("\"program\""); Assert.That(info.Filename, Is.EqualTo("program")); Assert.That(info.Arguments, Is.Null); }
public void TrimArgs() { var info = ProcessRunInfo.FromCommand("program arg1 arg2"); Assert.That(info.Filename, Is.EqualTo("program")); Assert.That(info.Arguments, Is.EqualTo("arg1 arg2")); }
public void SplitNoQuotes_WhitespaceArgs() { var info = ProcessRunInfo.FromCommand("program "); Assert.That(info.Filename, Is.EqualTo("program")); Assert.That(info.Arguments, Is.Null); }
protected void RunCommandScript(string command) { var runInfo = ProcessRunInfo.FromCommand(command); runInfo.WorkingDirectory = ContentDirectory; var result = new ProcessRunner { Output = Output.Writer, }.Run(runInfo); if (result.ExitCode != 0) { throw new ApplicationException("Process terminated with a non-zero exit code!"); } }
private ProcessResult GitCmd(string arguments, string printArgs = null, CancellationToken token = default(CancellationToken)) { Output.WriteLine($" > git {printArgs ?? arguments}", ConsoleColor.White); var runInfo = new ProcessRunInfo { Filename = Exe, Arguments = arguments, WorkingDirectory = Source.RepositoryPath, EchoCommand = false, }; if (EnableTracing) { runInfo.EnvironmentVariables["GIT_TRACE"] = "1"; } return(new ProcessRunner(context) { Output = Output, }.Run(runInfo, token)); }
public static async Task BuildSolution(IAgentContext context, CancellationToken token) { var args = new[] { "build", "\"Jenkins.Net.sln\"", "--configuration Release", "--no-incremental", }; var info = new ProcessRunInfo { Filename = "dotnet", Arguments = string.Join(" ", args), WorkingDirectory = context.ContentDirectory, }; var runner = new ProcessRunner(context); var result = await runner.RunAsync(info, token); if (result.ExitCode != 0) { throw new ApplicationException($"Build Failed! [{result.ExitCode}]"); } }
public static async Task UnitTest(IAgentContext context, CancellationToken token) { var args = new[] { "test", "\"Jenkins.Net.Tests\\Jenkins.Net.Tests.csproj\"", "--configuration Release", "--no-build", "--filter Category=unit", }; var info = new ProcessRunInfo { Filename = "dotnet", Arguments = string.Join(" ", args), WorkingDirectory = context.ContentDirectory, }; var runner = new ProcessRunner(context); var result = await runner.RunAsync(info, token); if (result.ExitCode != 0) { throw new ApplicationException($"Unit-Test Failed! [{result.ExitCode}]"); } }
public void IsEmpty_ThrowsException() { Assert.Throws <ArgumentNullException>(() => ProcessRunInfo.FromCommand(string.Empty)); }
public void IsNull_ThrowsException() { Assert.Throws <ArgumentNullException>(() => ProcessRunInfo.FromCommand(null)); }