public static JenkinsJobRunner Create(TextWriter writer, JenkinsClient client = null, bool quiet = false) #endif { client = client ?? DefaultClient.Create(); var jobRunner = new JenkinsJobRunner(client) { MonitorConsoleOutput = !quiet, }; if (!quiet) { jobRunner.StatusChanged += () => { writer.WriteLine($"[{DateTime.Now}] Status: '{jobRunner.Status}'"); }; #if NETCORE // Write method not available! jobRunner.ConsoleOutputChanged += writer.WriteLine; #else jobRunner.ConsoleOutputChanged += writer.Write; #endif } return(jobRunner); }
public static JenkinsJobRunner Create(TextWriter writer, JenkinsClient client = null) { client = client ?? DefaultClient.Create(); var jobRunner = new JenkinsJobRunner(client) { MonitorConsoleOutput = true, }; jobRunner.StatusChanged += () => { writer.WriteLine($"[{DateTime.Now}] Status: '{jobRunner.Status}'"); }; jobRunner.ConsoleOutputChanged += newText => { writer.Write(newText); }; return(jobRunner); }
private async void button1_Click(object sender, RoutedEventArgs e) { try { jenkinsJobRunner = new JenkinsJobRunner(jenkinsClient) { BuildTimeout = 60 * 60 }; jenkinsJobRunner.StatusChanged += JenkinsJobRunner_StatusChanged; string jobName = JobCombo.SelectedValue.ToString(); ListBinding.Add(new ListEntry { Message = $"start {jobName}" }); JenkinsBuildBase result = null; if (jobData[jobName].Count == 0) { result = await jenkinsJobRunner.RunAsync(jobName); } else { Dictionary <string, string> parameters = new Dictionary <string, string>(); foreach (var jobProperty in SelectedJob.JobProperties) { parameters[jobProperty.Key] = jobProperty.Value; } result = await jenkinsJobRunner.RunWithParametersAsync(jobName, parameters); } ListBinding.Add(new ListEntry { Message = $"Duration { result.Duration } ms" }); ListBinding.Add(new ListEntry { Message = $"Result {result.Result}" }); } catch (Exception ex) { var t = ex; } }
private static void ExecuteJenkinsJob() { var jobName = Env.GetString("JOB"); var client = new JenkinsClient(Env.GetString("JENKINS_HOST")) { UserName = Env.GetString("JENKINS_USER"), ApiToken = Env.GetString("JENKINS_API_KEY") }; client.UpdateSecurityCrumb(); if (Env.GetBool("WAIT_FOR_COMPLETION")) { var jenkinsJobRunner = new JenkinsJobRunner(client) { BuildTimeout = Env.GetInt("BUILD_TIMEOUT", 600) }; Log.Information("Starting build"); var buildBase = jenkinsJobRunner.Run(jobName); if (Env.GetBool("TERMINATE_ON_FAILURE") && buildBase.Result != "SUCCESS") { Log.Error("Build status was " + buildBase.Result); Environment.Exit(1); } if (Env.GetBool("DOWNLOAD_ARTIFACT")) { if (buildBase.Id != null) { DownloadArtifact(client, jobName, buildBase.Id.Value, Env.GetString("ARTIFACT_NAME")); } } } else { client.Jobs.Build(jobName); } Log.Information("Completed"); }