internal static bool TryGetFailureInfo(string[] consoleTextLines, out JobFailureInfo failureInfo) { JobFailureReason? reason = null; var list = new List<string>(); foreach (var line in consoleTextLines) { foreach (var tuple in s_allChecks) { if (tuple.Item1.IsMatch(line)) { reason = reason ?? tuple.Item2; list.Add(line); break; } } } if (reason != null) { failureInfo = new JobFailureInfo(reason.Value, list); return true; } failureInfo = null; return false; }
public void InsertFailure(JobInfo info, JobFailureInfo failureInfo) { var commandText = @" INSERT INTO dbo.Failures (Id, Sha, Reason, Messages) VALUES (@Id, @Sha, @Reason, @Messages)"; using (var command = new SqlCommand(commandText, _connection)) { var p = command.Parameters; p.AddWithValue("@Id", GetKey(info.Id)); p.AddWithValue("@Sha", info.PullRequestInfo.Sha1); p.AddWithValue("@Reason", failureInfo.Reason.ToString()); p.AddWithValue("@Messages", string.Join(";", failureInfo.Messages)); try { command.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine($"Could not insert failure {info.Id}"); Console.WriteLine(ex.Message); } } }
internal static bool TryGetFailureInfo(string consoleText, out JobFailureInfo failureInfo) { var lines = consoleText.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); return TryGetFailureInfo(lines, out failureInfo); }
public JobResult(JobInfo jobInfo, JobFailureInfo failureInfo) { _jobInfo = jobInfo; _failureInfo = failureInfo; }