feat(pipeline): surface ungrouped workflow runs in a fallback bucket#1172
Conversation
The pipeline only rendered workflow runs whose workflow was a member of a configured WorkflowGroup; runs for any other workflow were silently dropped. When a repository adds or renames a workflow (e.g. Artemis's CI refactor that introduced the single `CI` orchestrator), its runs disappeared from the PR and branch pipelines until someone manually added the workflow to a group — which also hid the associated test results. Add a fallback: after mapping runs into their configured groups, collect any runs whose workflow is in no group and surface them under a synthesized "Ungrouped" bucket (only when such runs exist). New/renamed workflows are now visible by default. Named "Ungrouped" (not "Other") to avoid colliding with a user-defined "Other" group, since the template tracks groups by name. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Coverage variation | ✅ +0.01% coverage variation (-1.00%) |
| Diff coverage | ✅ 100.00% diff coverage |
Coverage variation details
Coverable lines Covered lines Coverage Common ancestor commit (0ffd59e) 15414 7579 49.17% Head commit (558ebd5) 15418 (+4) 7583 (+4) 49.18% (+0.01%) Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch:
<coverage of head commit> - <coverage of common ancestor commit>
Diff coverage details
Coverable lines Covered lines Diff coverage Pull request (#1172) 4 4 100.00% Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified:
<covered lines added or modified>/<coverable lines added or modified> * 100%
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
There was a problem hiding this comment.
Pull request overview
This PR updates the client pipeline UI to avoid silently dropping workflow runs whose workflows are not assigned to any configured workflow group, by surfacing such runs in a synthesized fallback group.
Changes:
- Add an
"Ungrouped"fallback bucket inPipelineComponentfor runs whoseworkflowIdis not present in any configured group. - Add Vitest coverage ensuring ungrouped runs appear under the fallback and that the fallback is omitted when all runs are grouped.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| client/src/app/components/pipeline/pipeline.component.ts | Adds logic to collect and display ungrouped workflow runs in a synthetic "Ungrouped" group. |
| client/src/app/components/pipeline/pipeline.component.spec.ts | Adds unit tests covering presence/absence of the "Ungrouped" fallback behavior. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| groupedWorkflowsRuns.push({ | ||
| name: 'Ungrouped', | ||
| id: -1, | ||
| workflows: ungroupedRuns, |
Motivation
Production regression surfaced on Artemis: after its CI refactor into a single
CIorchestrator (ci.yml) calling reusable workflows, the newCIrun — which carries all tests — disappeared from the PR/branch pipeline, leaving only a couple of minor workflows visible. Test results and flakiness became inaccessible for users.Root cause: the pipeline renders a workflow run only if its workflow is a member of a configured
WorkflowGroup. Runs for any workflow not in a group were silently dropped. So any newly added or renamed workflow vanishes from the pipeline until someone manually adds it to a group — a silent failure mode that recurs on every CI restructuring.Description
pipeline.component.ts— after mapping runs into their configured groups, collect runs whoseworkflowIdis in no group and append them to a synthesized "Ungrouped" bucket (only when such runs exist). This keeps new/renamed workflows visible by default instead of silently disappearing.name.id: -1; the template doesn't use groupidin any link, so this is safe.allGroupsHaveNoWorkflowRunsstill behaves correctly (the fallback only appears when it has runs).This is the durable counterpart to the one-off per-repo config fix (adding
CIto a group + repointing test types) applied to the Artemis repo.Testing Instructions
CI/unit change. Two vitest specs added to
pipeline.component.spec.ts:Verified locally:
ng test --include='**/pipeline.component.spec.ts'→ 5 passed; eslint clean.Checklist
General
Client