in src/pipeline.ts [213:242]
private jobForNode(node: AGraphNode, options: Context): Job | undefined {
switch (node.data?.type) {
// Nothing for these, they are groupings (shouldn't even have popped up here)
case 'group':
case 'stack-group':
case undefined:
throw new Error(`jobForNode: did not expect to get group nodes: ${node.data?.type}`);
case 'self-update':
throw new Error('github workflows does not support self mutation');
case 'publish-assets':
return this.jobForAssetPublish(node, node.data.assets, options);
case 'prepare':
throw new Error('"prepare" is not supported by GitHub worflows');
case 'execute':
return this.jobForDeploy(node, node.data.stack, node.data.captureOutputs);
case 'step':
if (node.data.isBuildStep) {
return this.jobForBuildStep(node, node.data.step);
} else if (node.data.step instanceof ShellStep) {
return this.jobForScriptStep(node, node.data.step);
} else {
throw new Error(`unsupported step type: ${node.data.step.constructor.name}`);
}
}
}