Skip to content

Instantly share code, notes, and snippets.

@dwalleck
Created November 29, 2018 21:00
Show Gist options
  • Save dwalleck/5ddc309772ebcd9d3fba1e881e0998c3 to your computer and use it in GitHub Desktop.
Save dwalleck/5ddc309772ebcd9d3fba1e881e0998c3 to your computer and use it in GitHub Desktop.
namespace Minerva
{
class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
CredentialProfile profile;
AWSCredentials credentials;
var sharedFile = new SharedCredentialsFile();
if (sharedFile.TryGetProfile("default", out profile) &&
AWSCredentialsFactory.TryGetAWSCredentials(profile, sharedFile, out credentials))
{
var codebuildClient = new AmazonCodeBuildClient(credentials,
RegionEndpoint.USEast2);
var listBuildRequest = new ListBuildsForProjectRequest();
listBuildRequest.ProjectName = "zamboni-system-tests";
var builds = await codebuildClient.ListBuildsForProjectAsync(listBuildRequest);
var buildIds = builds.Ids;
while (builds.NextToken != "") {
Console.WriteLine(builds.NextToken);
listBuildRequest.NextToken = builds.NextToken;
builds = await codebuildClient.ListBuildsForProjectAsync(listBuildRequest);
buildIds.AddRange(builds.Ids);
}
var buildDetails = await codebuildClient.BatchGetBuildsAsync(new BatchGetBuildsRequest
{
Ids = buildIds
});
var buildGroups = buildDetails.Builds.GroupBy(b => b.BuildStatus);
foreach(var group in buildGroups){
Console.WriteLine($"{group.Key}: {group.ToList().Count}");
if (group.Key.Equals("FAILED")) {
var testFailures = 0;
var client = new AmazonCloudWatchLogsClient(
credentials,
RegionEndpoint.USEast2);
foreach (var build in group.ToList()) {
var request = new FilterLogEventsRequest();
request.LogGroupName = build.Logs.GroupName;
request.LogStreamNamePrefix = build.Logs.StreamName;
request.FilterPattern = "jest";
var logsEvents = await client.FilterLogEventsAsync(request);
if (logsEvents.Events.Count > 0) {
testFailures++;
}
}
Console.WriteLine($"Number of failures due to test failures: {testFailures.ToString()}");
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment