Skip to content
This repository was archived by the owner on Dec 20, 2025. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions halconfig/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ var fiatEnabled = '{%features.fiat%}' === 'true';
var manualJudgmentParentPipelineEnabled = '{%features.manualJudgmentParentPipeline%}' === 'true';
var mineCanaryEnabled = '{%features.mineCanary%}' === 'true';
var pipelineTemplatesEnabled = '{%features.pipelineTemplates%}' === 'true';
var pipelineRefEnabled = '{%features.pipelineRefEnabled%}' === 'true';
var reduxLoggerEnabled = '{%canary.reduxLogger%}' === 'true';
var showAllConfigsEnabled = '{%canary.showAllCanaryConfigs%}' === 'true';
var dynamicRollbackTimeoutEnabled = '{%feature.dynamicRollbackTimeout%}' === 'true';
Expand Down Expand Up @@ -123,6 +124,7 @@ window.spinnakerSettings = {
pipelineTemplates: pipelineTemplatesEnabled,
roscoMode: true,
dynamicRollbackTimeout: dynamicRollbackTimeoutEnabled,
pipelineRefEnabled: pipelineRefEnabled,
},
gateUrl: gateHost,
notifications: {
Expand Down
1 change: 1 addition & 0 deletions packages/core/src/config/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ export interface IFeatures {
kubernetesRawResources?: boolean;
renderPipelineStageThreshold?: number;
deployManifestStageAdvancedConfiguration?: boolean;
pipelineRefEnabled?: boolean;
}

export interface IDockerInsightSettings {
Expand Down
1 change: 1 addition & 0 deletions packages/core/src/domain/IExecutionTrigger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export interface IExecutionTrigger extends ITrigger {
isPipeline?: boolean;
parameters?: { [key: string]: string };
parentExecution?: IExecution;
parentExecutionId?: string;
parentPipelineApplication?: string;
parentPipelineId?: string;
parentPipelineStageId?: string;
Expand Down
17 changes: 12 additions & 5 deletions packages/core/src/pipeline/details/SingleExecutionDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { set } from 'lodash';
import React, { useEffect, useState } from 'react';

import type { Application } from '../../application/application.model';
import { SETTINGS } from '../../config';
import type { IExecution, IPipeline } from '../../domain';
import { Execution } from '../executions/execution/Execution';
import { ManualExecutionModal } from '../manualExecution';
Expand Down Expand Up @@ -30,11 +31,17 @@ export interface ISingleExecutionRouterStateChange extends IStateChange {
toParams: ISingleExecutionStateParams;
}

export function getAndTransformExecution(id: string, app: Application) {
return ReactInjector.executionService.getExecution(id, app.pipelineConfigs?.data).then((execution) => {
ExecutionsTransformer.transformExecution(app, execution);
return execution;
});
export async function getAndTransformExecution(id: string, app: Application) {
const execution = await ReactInjector.executionService.getExecution(id, app.pipelineConfigs?.data);
ExecutionsTransformer.transformExecution(app, execution);

// Check if the execution has a trigger with a parentExecutionId
if (SETTINGS.feature.pipelineRefEnabled && execution?.trigger?.parentExecutionId) {
// Recursively get the parent execution and append it
const parentExecution = await getAndTransformExecution(execution.trigger.parentExecutionId, app);
execution.trigger.parentExecution = parentExecution;
}
return execution;
}

// 3 generations is probably the most reasonable window to render?
Expand Down
Loading