Console output is duplicated in pull request pipelines (#663)

This commit is contained in:
Tan Nhu 2023-10-09 20:38:10 +00:00 committed by Harness
parent 1c762c6802
commit 12b192cf1c
2 changed files with 52 additions and 55 deletions

View File

@ -74,7 +74,7 @@ export function useScheduleJob<T>({
function sendDataToScheduler(item: T | T[]) {
if (Array.isArray(item)) {
data.current.push(...item)
} else {
} else if (item) {
data.current.push(item)
}

View File

@ -82,15 +82,11 @@ const CheckPipelineStep: React.FC<CheckPipelineStepsProps & { step: TypesStep }>
)
const lazy =
!expanded || isRunning || step.status === ExecutionState.PENDING || step.status === ExecutionState.SKIPPED
const {
data: logs,
error,
loading,
refetch
} = useGet<LivelogLine[]>({
const { data, error, loading, refetch } = useGet<LivelogLine[]>({
path,
lazy: true
})
const logs = useMemo(() => data?.map(({ out = '' }) => out), [data])
const [isStreamingDone, setIsStreamingDone] = useState(false)
const containerRef = useRef<HTMLDivElement | null>(null)
const [autoCollapse, setAutoCollapse] = useState(false)
@ -140,7 +136,8 @@ const CheckPipelineStep: React.FC<CheckPipelineStepsProps & { step: TypesStep }>
maxProcessingBlockSize: 100
})
useEffect(() => {
useEffect(
function initStreamingLogs() {
if (expanded && isRunning) {
setAutoCollapse(false)
@ -168,30 +165,33 @@ const CheckPipelineStep: React.FC<CheckPipelineStepsProps & { step: TypesStep }>
}
return closeEventStream
}, [expanded, isRunning, showError, path, step.status, closeEventStream, sendStreamLogToRenderer])
},
[expanded, isRunning, showError, path, step.status, closeEventStream, sendStreamLogToRenderer]
)
useEffect(() => {
useEffect(
function fetchAndRenderCompleteLogs() {
if (!lazy && !error && !isRunning && !isStreamingDone && expanded) {
if (!logs) {
refetch()
} else {
sendCompleteLogsToRenderer(logs.map(({ out = '' }) => out))
} else if (Array.isArray(logs)) {
sendCompleteLogsToRenderer(logs)
}
}
}, [lazy, error, logs, refetch, isStreamingDone, expanded, isRunning, sendCompleteLogsToRenderer])
},
[lazy, error, logs, refetch, isStreamingDone, expanded, isRunning, sendCompleteLogsToRenderer]
)
useEffect(() => {
useEffect(
function autoCollapseWhenStreamingIsDone() {
if (autoCollapse && expanded && step.status === ExecutionState.SUCCESS) {
setIsStreamingDone(false)
setAutoCollapse(false)
setExpanded(false)
}
}, [autoCollapse, expanded, step.status])
useEffect(() => {
if (!isRunning && logs?.length) {
sendCompleteLogsToRenderer(logs.map(({ out = '' }) => out))
}
}, [isRunning, logs, sendCompleteLogsToRenderer])
},
[autoCollapse, expanded, step.status]
)
useShowRequestError(error, 0)
@ -202,9 +202,6 @@ const CheckPipelineStep: React.FC<CheckPipelineStepsProps & { step: TypesStep }>
className={cx(css.stepHeader, { [css.expanded]: expanded, [css.selected]: expanded })}
{...ButtonRoleProps}
onClick={() => {
if (expanded && isStreamingDone) {
setIsStreamingDone(false)
}
setExpanded(!expanded)
}}>
<NavArrowRight color={Utils.getRealCSSColor(Color.GREY_500)} className={cx(css.noShrink, css.chevron)} />