-
Notifications
You must be signed in to change notification settings - Fork 528
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
Delete DownstreamJobListener
and instead create NodeDownstreamBuildAction
dynamically during graph processing based on DownstreamBuildAction
#2540
base: master
Are you sure you want to change the base?
Conversation
…DownstreamBuildAction
...ipeline-api-impl/src/main/java/io/jenkins/blueocean/listeners/NodeDownstreamBuildAction.java
Outdated
Show resolved
Hide resolved
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.
Can we not just delete (or deprecate) NodeDownstreamBuildAction
and change whatever code is calling is to look up org.jenkinsci.plugins.workflow.support.steps.build.DownstreamBuildAction
on demand?
...ipeline-api-impl/src/main/java/io/jenkins/blueocean/listeners/NodeDownstreamBuildAction.java
Outdated
Show resolved
Hide resolved
Lines 191 to 192 in a910c53
blueocean-plugin/blueocean-dashboard/src/main/js/components/karaoke/components/Pipeline.jsx Lines 312 to 314 in a910c53
|
Yes I considered this kind of approach, but I think it would only move the performance issue to graph loading time (a bit better at least since it wouldn't affect non-Blue Ocean use cases). I can switch to it though. |
Oh, and I'm not sure if you can just change the code that looks for the action in the special Blue Ocean |
…instead of using TransientActionFactory
DownstreamJobListener
with a TransientActionFactory
based on DownstreamBuildAction
DownstreamJobListener
and instead create NodeDownstreamBuildAction
dynamically during graph processing based on DownstreamBuildAction
See b7ef607 for an approach that moves the logic to graph processing time. Delaying build loading until a user actually clicks on one of the relevant links does not seem possible without UX changes, since we expect the description of the run to be available in the UI. |
Which is pretty important I think, since B.O. might be installed yet rarely used. |
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.
OK AFAICT
...api-impl/src/main/java/io/jenkins/blueocean/rest/impl/pipeline/PipelineNodeGraphVisitor.java
Show resolved
Hide resolved
<version>6.8.0.202311291450-r</version> | ||
<exclusions> | ||
<exclusion> | ||
<!-- Provided by Jenkins core --> | ||
<groupId>commons-codec</groupId> | ||
<artifactId>commons-codec</artifactId> | ||
</exclusion> | ||
</exclusions> |
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.
FWIW, it is awkward for me to check how much work this would be because I cannot build Blue Ocean, but I think the better fix would be to depend on git-client
instead and adjust the code as needed to use Apache Mina to match jenkinsci/git-client-plugin#956.
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.
The code in GitUtils
uses JGit's Jsch library directly, and it is not immediately obvious to me how to adapt the code to use higher level APIs or to switch to JGit's Apache Mina APIs, so I will leave this as-is.
If you do not need to test the GUI interactively, you can just use https://github.com/eirslett/frontend-maven-plugin?tab=readme-ov-file#skipping-execution (which will be a lot faster too). |
DownstreamJobListener
here has the same bug as jenkinsci/pipeline-build-step-plugin#127 for completed builds. Prior to jenkinsci/workflow-cps-plugin#807, this only worked as long as you were using theMAX_SURVIVABILITY
durability level, otherwise it did nothing when the build was already complete. jenkinsci/workflow-cps-plugin#826 then made it so a warning was logged instead of the save being silently ignored in the problematic case, which can lead to log spam.Untested, because right now Blue Ocean doesn't build for me (I think the main problem is
Cannot download "https://github.com/sass/node-sass/releases/download/v7.0.0/darwin-x64-64_binding.node":
when trying to build the frontend code, and IDK if there are any releases that support ARM-based Macs: sass/node-sass#3033).Submitter checklist
Reviewer checklist