Repository navigation
feat(tekton): Pipeline/PipelineRun/TaskRun integration — detail views, live DAG, CI/CD fleet tab #1627
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
+2,698
−12
Closed
feat(tekton): Pipeline/PipelineRun/TaskRun integration — detail views, live DAG, CI/CD fleet tab #1627
Changes from all commits
Commits
Show all changes
37 commits
Select commit
Hold shift + click to select a range
ce97549
feat(tekton): Pipeline/PipelineRun/TaskRun with embedded DAG + live p…
jfillman 0bc5201
fix(tekton): move task DAG to full view with real topology-style nodes
jfillman 1e423fa
docs(tekton): update integration docs for the full-view DAG redesign
jfillman cb6f302
fix(tekton): add explicit back-link from TaskRun to its PipelineRun
jfillman c3bee3a
fix(tekton): sequential combined step logs + pod link on TaskRun
jfillman 003b00e
fix(tekton): move back-to-PipelineRun link into the header chip row
jfillman be2eb26
fix(tekton): widen the step-name label in combined TaskRun logs
jfillman 9ee91ea
feat(tekton): add a CI/CD tab — PipelineRun fleet view
jfillman 3b4224c
fix(tekton): stop the DAG canvas from panning off-screen on scroll
jfillman b36b303
feat(tekton): sortable CI/CD table + GitOps-style header
jfillman 4ee1297
fix(nav): keep a non-Resources peek's backdrop on further drill-downs
jfillman 7ec447c
fix(nav): close a never-small peek outright instead of collapsing it
jfillman c447dbc
feat(tekton): add row actions to the CI/CD table
jfillman 97743cf
fix(tekton): fix the DAG blanking (nodes hidden, edges missing) on li…
jfillman 4149c4d
feat(tekton): bulk multi-select delete for the CI/CD table
jfillman 5ffe14c
feat(tekton): make the CI/CD table's Pipeline column clickable
jfillman 5f2144a
feat(tekton): widen ELK spacing + merge edges to fix overlapping DAG …
jfillman 9f6cec9
feat(tekton): draggable DAG nodes with browser-local saved layout
jfillman 8070a77
feat(tekton): background wash + ring on running DAG task cards
jfillman a9201cc
fix(tekton): solid running-task background, drop the opacity pulse
jfillman e8444df
fix(tekton): compute transitive reduction of the pipeline task DAG
jfillman 8326759
fix(tekton): include spec.finally tasks in the DAG and task counts
jfillman b0d40b8
fix(tekton): aggregate matrix TaskRun statuses instead of keeping the…
jfillman 3850536
fix(tekton): show a skipped task as skipped, not pending forever
jfillman 72d68db
fix(nav): seed Tekton kinds into the pre-discovery plural-to-kind map
jfillman 35d8aa0
fix(tekton): show an error state in the CI/CD fleet, not a false empt…
jfillman bb86f8f
fix(tekton): read the real step container name; poll running logs; fi…
jfillman f80954f
fix(nav): close a never-small CI/CD peek on browser Back, not collaps…
jfillman f336685
style(tekton): drop before/after comments; expand TaskRun Parameters/…
jfillman 1175d94
fix(tekton): reset stale peekOpenedFullRef on close; unknown no longe…
jfillman 21e5c8a
fix(tekton): count finally tasks in the Pipeline status badge
jfillman 523aae3
fix(workload): keep the Logs tab visible for TaskRun/PipelineRun
jfillman 1440418
fix(tekton): keep a DAG status update that lands during layout
jfillman db47ee3
fix(tekton): show a cancelled TaskRun as cancelled, not failed
jfillman a16a757
fix(tekton): stop polling TaskRuns that have settled
jfillman 223e95d
fix(cicd): wait for cluster sync and add CI/CD to the command palette
jfillman f16e5c2
fix(cicd): show no value instead of a false zero on summary tiles
jfillman File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
59 changes: 59 additions & 0 deletions
59
packages/k8s-ui/src/components/resources/renderers/PipelineDagView.test.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,59 @@ | ||
| // @vitest-environment jsdom | ||
| import { act } from 'react' | ||
| import { createRoot, type Root } from 'react-dom/client' | ||
| import { afterEach, beforeEach, expect, it, vi } from 'vitest' | ||
| import type { TektonTaskNode } from '../resource-utils-tekton' | ||
|
|
||
| const layout = vi.hoisted(() => ({ resolve: (_: unknown) => {} })) | ||
|
|
||
| vi.mock('elkjs/lib/elk.bundled.js', () => ({ | ||
| default: class { | ||
| layout() { | ||
| return new Promise((resolve) => { layout.resolve = resolve }) | ||
| } | ||
| }, | ||
| })) | ||
|
|
||
| // jsdom has no layout engine, so render each node's task status as text | ||
| // instead of going through React Flow's measured viewport. | ||
| vi.mock('@xyflow/react', async (importOriginal) => ({ | ||
| ...(await importOriginal<typeof import('@xyflow/react')>()), | ||
| ReactFlow: ({ nodes }: { nodes: Array<{ id: string; data: { task: TektonTaskNode } }> }) => ( | ||
| <ul> | ||
| {nodes.map((n) => <li key={n.id} data-task={n.id}>{n.data.task.status}</li>)} | ||
| </ul> | ||
| ), | ||
| ReactFlowProvider: ({ children }: { children: React.ReactNode }) => <>{children}</>, | ||
| Controls: () => null, | ||
| Panel: () => null, | ||
| })) | ||
|
|
||
| const { PipelineDagView } = await import('./PipelineDagView') | ||
|
|
||
| let element: HTMLDivElement | ||
| let root: Root | ||
|
|
||
| beforeEach(() => { | ||
| element = document.createElement('div') | ||
| document.body.appendChild(element) | ||
| root = createRoot(element) | ||
| }) | ||
|
|
||
| afterEach(async () => { | ||
| await act(async () => root.unmount()) | ||
| element.remove() | ||
| }) | ||
|
|
||
| const tasks = (status: TektonTaskNode['status']): TektonTaskNode[] => [ | ||
| { name: 'build', dependsOn: [], status }, | ||
| { name: 'test', dependsOn: ['build'], status: 'pending' }, | ||
| ] | ||
|
|
||
| it('keeps a status update that lands while the layout is still running', async () => { | ||
| await act(async () => root.render(<PipelineDagView tasks={tasks('running')} />)) | ||
| await act(async () => root.render(<PipelineDagView tasks={tasks('succeeded')} />)) | ||
|
|
||
| await act(async () => layout.resolve({ children: [{ id: 'build', x: 0, y: 0 }, { id: 'test', x: 300, y: 0 }] })) | ||
|
|
||
| expect(element.querySelector('[data-task="build"]')?.textContent).toBe('succeeded') | ||
| }) |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.