Class PipelineLogExtractor
For WorkflowRun (Pipeline) builds,
this class walks the flow graph to locate the node that originally threw the
error, reads a limited number of log lines from that step, and records a
node-specific URL that can be used to navigate to the failure location.
When no failing step log can be found, or when the build is not a pipeline,
it falls back to the standard build console log.
If the optional pipeline-graph-view plugin is installed, the
generated URL is compatible with its overview page so that consumers can
deep-link directly into the failing node from error explanations.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionExtracts the log output of the step(s) that caused the pipeline failure, combining results from multiple strategies so that parallel failures (e.g.getUrl()Returns the URL associated with the extracted log.
-
Field Details
-
URL_NAME
- See Also:
-
-
Constructor Details
-
PipelineLogExtractor
-
-
Method Details
-
getFailedStepLog
Extracts the log output of the step(s) that caused the pipeline failure, combining results from multiple strategies so that parallel failures (e.g. both a Rspec test failure and a RuboCop offense) are all captured.- Strategy 1 — ErrorAction multi-collect: walks the FlowGraph and collects
logs from all nodes with
ErrorActionand an associatedLogAction(explicit uncaught exceptions). Unlike the original single-return approach, this accumulates logs from every failing step up tomaxLinestotal, covering parallel failures such as multiple Rspec pod crashes. - Strategy 3 — Error pattern scan (always runs as supplement): reads the
full build console log and appends lines matching common error patterns (with
surrounding context) that were not already captured by Strategy 1.
This fills the gap left by
catchError + sh(returnStatus:true) + error()pipelines (where noLogActionexists on theerror()step) and catches errors that appear early in large build logs.
run.getLog(maxLines)(last N lines of console) only if all strategies produce no results.- Returns:
- A non-null list of log lines combining all relevant failure output, capped at
maxLines. - Throws:
IOException- if there is an error reading the build logs.
- Strategy 1 — ErrorAction multi-collect: walks the FlowGraph and collects
logs from all nodes with
-
getUrl
Returns the URL associated with the extracted log.When
getFailedStepLog()finds a failed pipeline step with an attached log and thepipeline-graph-viewplugin is available, this will point to the pipeline overview page with the failing node preselected. Otherwise, it falls back to the build's console output URL.- Returns:
- the Jenkins URL for either the pipeline overview of the failing step or the build console output,
or
nullifgetFailedStepLog()has not been invoked successfully.
-