From b7ab810945b604f64cc2499e391956b38fa31600 Mon Sep 17 00:00:00 2001 From: Tingluo Huang Date: Fri, 26 Jan 2024 17:26:30 -0500 Subject: [PATCH] Make embedded timeline record has same order as its parent record. (#3113) --- src/Runner.Worker/ExecutionContext.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/Runner.Worker/ExecutionContext.cs b/src/Runner.Worker/ExecutionContext.cs index 9ed9faeb024..cbd935b9744 100644 --- a/src/Runner.Worker/ExecutionContext.cs +++ b/src/Runner.Worker/ExecutionContext.cs @@ -397,11 +397,11 @@ public IExecutionContext CreateChild( if (recordOrder != null) { - child.InitializeTimelineRecord(_mainTimelineId, recordId, _record.Id, ExecutionContextType.Task, displayName, refName, recordOrder); + child.InitializeTimelineRecord(_mainTimelineId, recordId, _record.Id, ExecutionContextType.Task, displayName, refName, recordOrder, embedded: isEmbedded); } else { - child.InitializeTimelineRecord(_mainTimelineId, recordId, _record.Id, ExecutionContextType.Task, displayName, refName, ++_childTimelineRecordOrder); + child.InitializeTimelineRecord(_mainTimelineId, recordId, _record.Id, ExecutionContextType.Task, displayName, refName, ++_childTimelineRecordOrder, embedded: isEmbedded); } if (logger != null) { @@ -432,7 +432,7 @@ public IExecutionContext CreateEmbeddedChild( Dictionary intraActionState = null, string siblingScopeName = null) { - return Root.CreateChild(_record.Id, _record.Name, _record.Id.ToString("N"), scopeName, contextName, stage, logger: _logger, isEmbedded: true, cancellationTokenSource: null, intraActionState: intraActionState, embeddedId: embeddedId, siblingScopeName: siblingScopeName, timeout: GetRemainingTimeout()); + return Root.CreateChild(_record.Id, _record.Name, _record.Id.ToString("N"), scopeName, contextName, stage, logger: _logger, isEmbedded: true, cancellationTokenSource: null, intraActionState: intraActionState, embeddedId: embeddedId, siblingScopeName: siblingScopeName, timeout: GetRemainingTimeout(), recordOrder: _record.Order); } public void Start(string currentOperation = null) @@ -1160,7 +1160,7 @@ public void WriteWebhookPayload() } } - private void InitializeTimelineRecord(Guid timelineId, Guid timelineRecordId, Guid? parentTimelineRecordId, string recordType, string displayName, string refName, int? order) + private void InitializeTimelineRecord(Guid timelineId, Guid timelineRecordId, Guid? parentTimelineRecordId, string recordType, string displayName, string refName, int? order, bool embedded = false) { _mainTimelineId = timelineId; _record.Id = timelineRecordId; @@ -1186,7 +1186,11 @@ private void InitializeTimelineRecord(Guid timelineId, Guid timelineRecordId, Gu var configuration = HostContext.GetService(); _record.WorkerName = configuration.GetSettings().AgentName; - _jobServerQueue.QueueTimelineRecordUpdate(_mainTimelineId, _record); + // We don't want to update the timeline record for embedded steps since they are not really represented in the UI. + if (!embedded) + { + _jobServerQueue.QueueTimelineRecordUpdate(_mainTimelineId, _record); + } } private void JobServerQueueThrottling_EventReceived(object sender, ThrottlingEventArgs data)