private static void PopulateAllJobInfos(DataClient dataClient) { var roslynClient = new RoslynClient(); var client = roslynClient.Client; foreach (var name in roslynClient.GetJobNames()) { List<JobId> jobs; try { jobs = client.GetJobIds(name); } catch { Console.WriteLine($"Can't get jobs for {name}"); continue; } foreach (var id in jobs) { try { Console.Write($"Processing {id.Id} {id.Name} ... "); var info = client.GetJobInfo(id); dataClient.InsertJobInfo(info); Console.WriteLine("Done"); } catch (Exception ex) { Console.WriteLine("ERROR!!!"); Console.WriteLine(ex.Message); } } } }
private static void PopulateAllFailures(DataClient dataClient) { /* var client = new JenkinsClient(); foreach (var id in client.GetJobIds()) { try { Console.Write($"Processing {id.Id} {id.Kind} ... "); var jobResult = client.GetJobResult(id); if (!jobResult.Failed) { Console.WriteLine("Succeeded"); continue; } dataClient.InsertFailure(jobResult.JobInfo, jobResult.FailureInfo); Console.WriteLine("Done"); } catch (Exception ex) { Console.WriteLine("ERROR!!!"); Console.WriteLine(ex.Message); } } */ }
internal static void Main(string[] args) { var connectionString = File.ReadAllText(@"c:\users\jaredpar\connection.txt"); var client = new DataClient(connectionString); PopulateAllJobInfos(client); // PopulateAllFailures(client); // PopulateAllRetest(client); }
public ActionResult Index() { var connectionString = ConfigurationManager.ConnectionStrings["Jenkins"].ConnectionString; using (var client = new DataClient(connectionString)) { var model = new AllJobsModel(); model.Names.AddRange(client.GetJobNamesWeighted()); return View(model); } }
public ActionResult Name(string name = null) { name = name ?? "roslyn_master_win_dbg_unit32"; var connectionString = ConfigurationManager.ConnectionStrings["Jenkins"].ConnectionString; using (var client = new DataClient(connectionString)) { var duration = client.GetAverageDuration(name); var model = new JobModel() { Name = name, AverageDuration = duration }; model.DailyAverageDuration.AddRange(client.GetDailyAverageDurations(name)); model.JobDaySummaryList.AddRange(GetDailySummary(client, name)); return View(model); } }
private IEnumerable<JobDaySummary> GetDailySummary(DataClient client, string jobName) { var map = new Dictionary<DateTime, JobDaySummary>(); Action<DateTime, Action<JobDaySummary>> update = (date, callback) => { date = date.Date; JobDaySummary summary; if (!map.TryGetValue(date, out summary)) { summary = new JobDaySummary(); summary.Date = date; map[date] = summary; } callback(summary); }; client.GetDailyJobCount(jobName, JobState.Succeeded).ForEach(x => update(x.Item1, y => y.Succeeded = x.Item2)); client.GetDailyJobCount(jobName, JobState.Failed).ForEach(x => update(x.Item1, y => y.Failed = x.Item2)); client.GetDailyJobCount(jobName, JobState.Aborted).ForEach(x => update(x.Item1, y => y.Aborted = x.Item2)); return map .OrderBy(pair => pair.Key) .Select(pair => pair.Value); }
private static void PopulateAllRetest(DataClient dataClient) { /* var list = dataClient.GetFailures(); foreach (var tuple in list) { var id = tuple.Item1; var sha = tuple.Item2; if (dataClient.HasSucceeded(id.Kind, sha)) { Console.WriteLine(id); dataClient.InsertRetest(id, sha); } } */ }