-
Notifications
You must be signed in to change notification settings - Fork 667
Pipeline builder visualization #4031
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
Pipeline builder visualization #4031
Conversation
|
/kind feature cc @openshift/team-devconsole-ux |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: andrewballantyne The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
da81c22 to
b59a470
Compare
|
@andrewballantyne: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
serenamarie125
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is a bit picky :) but the first time you select a task, it looks like the whole visualizatoin "blinks", but it doesn't seem to do that as you select subsequent tasks
Totally valid, I'd like to fix it too. I noted this in the description:
|
| ? `${resourcePathFromModel(PipelineRunModel, pipelineRun, namespace)}/logs/${name}` | ||
| const path = pipelineRunName | ||
| ? `${resourcePathFromModel(PipelineRunModel, pipelineRunName, namespace)}/logs/${name}` | ||
| : undefined; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need to keep the undefined?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It appears not, but this was pre-existing code. My change was just to change the variable away from pipelineRun because that implicitly means the K8s resource and not just the name.
| import { convertResourceToTask } from './utils'; | ||
|
|
||
| type UseTasks = { | ||
| namespacedTasks: K8sResourceKind[] | null; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we dont need | null, do we?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I suppose that is true... I was just trying to the actual values. I guess any object can be null.
| setNamespacedTasks(res); | ||
| }) | ||
| .catch(() => { | ||
| setLoadErrorMsg(`Failed to load namespace Tasks. ${loadErrorMsg || ''}`); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need || ''
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe so...
let value = null;
`Hello World, ${value}`
// "Hello World, null"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ahh..yes
| onFocus={() => setShowAdd(true)} | ||
| onBlur={() => setShowAdd(false)} | ||
| onMouseOver={() => setShowAdd(true)} | ||
| onMouseOut={() => setShowAdd(false)} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could use the topology package useHover here for mouse over and mouse out. That gives you the default delay for changing state on hovers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oooh, how fancy. I'll be sure to update it to do that.
haha, yeah... this was just a shim page. The proper page has scrollbars built in and shouldn't have this issue. Good review catch though, easily could be missed. |
|
Folded into #4055 for CI sanity. |

Fixes:
Dependency on #4004 (https://issues.redhat.com/browse/ODC-2605) -- 1st commit
https://issues.redhat.com/browse/ODC-2448 -- 2nd commit
Do review of the second commit while we wait for #4004 to get in.
Analysis / Root cause:
Using a hugely skeleton page, mount and render a Pipeline Builder Visualization.
Solution Description:
Using the work done in PR #4004, I've implemented a couple new nodes, supported a different set of layout options and fixed a couple layout rendering issues with parallel-to-parallel that are not in #4004.
New Nodes:
Screen shots / Gifs for design review:
The magic in action:
Current caveats:
id === taskName, and only one node can exist with a given id)Unit test coverage report:
Test setup:
Browser conformance: