From 67f64448ea19996fc78b48fb069389f3018615eb Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Wed, 24 Dec 2025 20:56:22 +0000 Subject: [PATCH] Generated by Spark: Make it really clear if most recent build passed or faled --- src/components/GitHubActionsFetcher.tsx | 238 ++++++++++++++++-------- 1 file changed, 156 insertions(+), 82 deletions(-) diff --git a/src/components/GitHubActionsFetcher.tsx b/src/components/GitHubActionsFetcher.tsx index 64980aab7..08612e16d 100644 --- a/src/components/GitHubActionsFetcher.tsx +++ b/src/components/GitHubActionsFetcher.tsx @@ -90,6 +90,11 @@ export function GitHubActionsFetcher() { const cancelled = data.filter(r => r.conclusion === 'cancelled').length const inProgress = data.filter(r => r.status !== 'completed').length + const mostRecent = data[0] + const mostRecentPassed = mostRecent?.conclusion === 'success' + const mostRecentFailed = mostRecent?.conclusion === 'failure' + const mostRecentRunning = mostRecent?.status !== 'completed' + const successRate = completed > 0 ? Math.round((successful / completed) * 100) : 0 const recentRuns = data.slice(0, 5) const recentSuccessful = recentRuns.filter(r => r.conclusion === 'success').length @@ -109,7 +114,11 @@ export function GitHubActionsFetcher() { health, trend, recentSuccessful, - recentFailed + recentFailed, + mostRecent, + mostRecentPassed, + mostRecentFailed, + mostRecentRunning } }, [data]) @@ -133,89 +142,154 @@ export function GitHubActionsFetcher() { {conclusion && ( - - - - {conclusion.health === 'healthy' && } - {conclusion.health === 'warning' && } - {conclusion.health === 'critical' && } - Pipeline Health Summary - - - Analysis of recent workflow runs - - - -
-
- - {conclusion.successRate}% Success Rate - - - - - {conclusion.successful} Passed - - - {conclusion.failed > 0 && ( - - - {conclusion.failed} Failed - - )} - - {conclusion.inProgress > 0 && ( - - - {conclusion.inProgress} Running - - )} - - {conclusion.cancelled > 0 && ( - - {conclusion.cancelled} Cancelled - - )} - - - {conclusion.trend === 'up' ? ( - - ) : ( - - )} - Recent: {conclusion.recentSuccessful}/{conclusion.recentSuccessful + conclusion.recentFailed} - -
- -
- {conclusion.health === 'healthy' && ( -

- - Pipeline is healthy. Most recent runs are passing consistently. -

- )} - {conclusion.health === 'warning' && ( -

- - Pipeline health is moderate. Some failures detected in recent runs. -

- )} - {conclusion.health === 'critical' && ( -

- - Pipeline health is critical. High failure rate detected. -

- )} + <> + +
+ {conclusion.mostRecentPassed && ( + + )} + {conclusion.mostRecentFailed && ( + + )} + {conclusion.mostRecentRunning && ( + + )} +
+ + {conclusion.mostRecentPassed && 'Most Recent Build: PASSED ✓'} + {conclusion.mostRecentFailed && 'Most Recent Build: FAILED ✗'} + {conclusion.mostRecentRunning && 'Most Recent Build: RUNNING...'} + + +
+ {conclusion.mostRecent.name} +
+
+ + Branch: + + {conclusion.mostRecent.head_branch} + + + + Updated: + {new Date(conclusion.mostRecent.updated_at).toLocaleString()} + +
+ +
- - +
+ + + + + {conclusion.health === 'healthy' && } + {conclusion.health === 'warning' && } + {conclusion.health === 'critical' && } + Pipeline Health Summary + + + Analysis of recent workflow runs + + + +
+
+ + {conclusion.successRate}% Success Rate + + + + + {conclusion.successful} Passed + + + {conclusion.failed > 0 && ( + + + {conclusion.failed} Failed + + )} + + {conclusion.inProgress > 0 && ( + + + {conclusion.inProgress} Running + + )} + + {conclusion.cancelled > 0 && ( + + {conclusion.cancelled} Cancelled + + )} + + + {conclusion.trend === 'up' ? ( + + ) : ( + + )} + Recent: {conclusion.recentSuccessful}/{conclusion.recentSuccessful + conclusion.recentFailed} + +
+ +
+ {conclusion.health === 'healthy' && ( +

+ + Pipeline is healthy. Most recent runs are passing consistently. +

+ )} + {conclusion.health === 'warning' && ( +

+ + Pipeline health is moderate. Some failures detected in recent runs. +

+ )} + {conclusion.health === 'critical' && ( +

+ + Pipeline health is critical. High failure rate detected. +

+ )} +
+
+
+
+ )} {needsAuth && (