40 lines
1.4 KiB
TypeScript
40 lines
1.4 KiB
TypeScript
import { CloudRunnerStepState } from '../cloud-runner-step-state';
|
|
import { CustomWorkflow } from './custom-workflow';
|
|
import { WorkflowInterface } from './workflow-interface';
|
|
import { BuildAutomationWorkflow } from './build-automation-workflow';
|
|
import CloudRunner from '../cloud-runner';
|
|
import CloudRunnerOptions from '../cloud-runner-options';
|
|
import { AsyncWorkflow } from './async-workflow';
|
|
|
|
export class WorkflowCompositionRoot implements WorkflowInterface {
|
|
async run(cloudRunnerStepState: CloudRunnerStepState) {
|
|
try {
|
|
if (
|
|
CloudRunnerOptions.asyncCloudRunner &&
|
|
!CloudRunner.isCloudRunnerAsyncEnvironment &&
|
|
!CloudRunner.isCloudRunnerEnvironment
|
|
) {
|
|
return await AsyncWorkflow.runAsyncWorkflow(cloudRunnerStepState.environment, cloudRunnerStepState.secrets);
|
|
}
|
|
|
|
if (CloudRunner.buildParameters.customJob !== '') {
|
|
return await CustomWorkflow.runCustomJobFromString(
|
|
CloudRunner.buildParameters.customJob,
|
|
cloudRunnerStepState.environment,
|
|
cloudRunnerStepState.secrets,
|
|
);
|
|
}
|
|
|
|
return await new BuildAutomationWorkflow().run(
|
|
new CloudRunnerStepState(
|
|
cloudRunnerStepState.image.toString(),
|
|
cloudRunnerStepState.environment,
|
|
cloudRunnerStepState.secrets,
|
|
),
|
|
);
|
|
} catch (error) {
|
|
throw error;
|
|
}
|
|
}
|
|
}
|