diff --git a/src/main/java/org/keycloak/dashboard/Dashboard.java b/src/main/java/org/keycloak/dashboard/Dashboard.java index 263a7c9..2a8ad41 100644 --- a/src/main/java/org/keycloak/dashboard/Dashboard.java +++ b/src/main/java/org/keycloak/dashboard/Dashboard.java @@ -65,6 +65,7 @@ public void createDashboard() throws IOException, TemplateException, ParseExcept attributes.put("failedJobs", logFailedParser.getUnlinkedFailedJobs()); attributes.put("linkedFailedJobs", logFailedParser.getLinkedFailedJobs()); attributes.put("flakyTests", bugs.getFlakyTests()); + attributes.put("flakyTestCountsByTeam", bugs.getFlakyTestCountsByTeam()); attributes.put("nextRelease", bugs.getNextRelease()); attributes.put("workflowWaitTimes", new WorkflowWaitTimes(data, teamMembers).getWorkFlowWaitPerMonthList()); attributes.put("configContents", Config.getConfigContents()); diff --git a/src/main/java/org/keycloak/dashboard/beans/Bugs.java b/src/main/java/org/keycloak/dashboard/beans/Bugs.java index ee023be..9bbe2f2 100644 --- a/src/main/java/org/keycloak/dashboard/beans/Bugs.java +++ b/src/main/java/org/keycloak/dashboard/beans/Bugs.java @@ -7,11 +7,7 @@ import org.keycloak.dashboard.rep.Teams; import org.keycloak.dashboard.util.DateUtil; -import java.util.Comparator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; public class Bugs { @@ -26,6 +22,8 @@ public class Bugs { private List flakyTests; + private Map flakyTestCountsByTeam; + public Bugs(GitHubData data, Teams teams) { issues = data.getIssues().stream().filter(i -> i.getLabels().contains("kind/bug")).collect(Collectors.toList()); @@ -36,11 +34,28 @@ public Bugs(GitHubData data, Teams teams) { .sorted(Comparator.comparing(FlakyTest::getCount).reversed()) .collect(Collectors.toList()); + flakyTestCountsByTeam = convertToTeamCount(flakyTests, teams); + stats = convertToBugStat(issues, data, teams); areaStats = convertToAreaStats(issues); teamStats = convertToTeamStats(issues, teams); } + private Map convertToTeamCount(List flakyTests, Teams teams) { + Map counts = new TreeMap<>(); + for (String team : teams.keySet()) { + if (!team.equals("no-team")) { + counts.put(team.substring("team/".length()), 0); + } + } + for (FlakyTest f : flakyTests) { + for (String t : f.getTeams()) { + counts.put(t, counts.get(t) + 1); + } + } + return counts; + } + private List convertToBugStat(List issues, GitHubData data, Teams teams) { List stats = new LinkedList<>(); FilteredIssues filteredIssues = FilteredIssues.create(issues); @@ -163,4 +178,7 @@ public List getFlakyTests() { return flakyTests; } + public Map getFlakyTestCountsByTeam() { + return flakyTestCountsByTeam; + } } diff --git a/src/main/java/org/keycloak/dashboard/beans/FlakyTest.java b/src/main/java/org/keycloak/dashboard/beans/FlakyTest.java index 637756b..adf73aa 100644 --- a/src/main/java/org/keycloak/dashboard/beans/FlakyTest.java +++ b/src/main/java/org/keycloak/dashboard/beans/FlakyTest.java @@ -76,13 +76,6 @@ public String getUpdatedAtClass() { } } - public int weight() { - int c = getCount(); - long daysSinceUpdated = TimeUnit.DAYS.convert(System.currentTimeMillis() - getUpdatedAt().getTime(), TimeUnit.MILLISECONDS); - System.out.println(c + "\t" + daysSinceUpdated); - return 0; - } - public List getLabels() { return issue.getLabels().stream() .filter(Predicate.isEqual("area/ci").negate()) diff --git a/src/main/resources/module-tests-flaky-tests.ftl b/src/main/resources/module-tests-flaky-tests.ftl index abfa81d..2f430b2 100644 --- a/src/main/resources/module-tests-flaky-tests.ftl +++ b/src/main/resources/module-tests-flaky-tests.ftl @@ -3,6 +3,19 @@ Flaky tests
+ + + <#list flakyTestCountsByTeam?keys as team> + + + + + <#list flakyTestCountsByTeam?values as count> + + + +
${team}
${count}
+
Package