Support reusable workflow inputs and outputs

This commit is contained in:
Josh Gross
2023-02-06 17:06:42 -05:00
parent f28384e7ea
commit 9b0c8a971e
9 changed files with 73 additions and 11 deletions
@@ -4,6 +4,7 @@ import {TokenType} from "../../templates/tokens/types";
import {ReusableWorkflowJob} from "../workflow-template";
import {convertOn} from "./events";
import {handleTemplateTokenErrors} from "./handle-errors";
import {convertWorkflowJobInputs} from "./job/inputs";
import {convertJobs} from "./jobs";
export function convertReferencedWorkflow(
@@ -45,7 +46,7 @@ function convertReferencedWorkflowOn(context: TemplateContext, on: TemplateToken
case TokenType.String: {
const event = on.assertString("Reference workflow on value").value;
if (event === "workflow_call") {
// TODO: Validate workflow job trigger
handleTemplateTokenErrors(on, context, undefined, () => convertWorkflowJobInputs(context, job));
return;
}
break;
@@ -56,7 +57,7 @@ function convertReferencedWorkflowOn(context: TemplateContext, on: TemplateToken
for (const eventToken of events) {
const event = eventToken.assertString(`Reference workflow on value ${eventToken}`).value;
if (event === "workflow_call") {
// TODO: Validate workflow job trigger
handleTemplateTokenErrors(on, context, undefined, () => convertWorkflowJobInputs(context, job));
return;
}
}
@@ -73,7 +74,7 @@ function convertReferencedWorkflowOn(context: TemplateContext, on: TemplateToken
}
if (pair.value.templateTokenType === TokenType.Null) {
// TODO: Validate workflow job trigger
handleTemplateTokenErrors(on, context, undefined, () => convertWorkflowJobInputs(context, job));
return;
}
@@ -84,10 +85,14 @@ function convertReferencedWorkflowOn(context: TemplateContext, on: TemplateToken
case "inputs":
job["input-definitions"] = definition.value.assertMapping(`on-workflow_call-${definition.key}`);
break;
case "outputs":
job.outputs = definition.value.assertMapping(`on-workflow_call-${definition.key}`);
break;
}
}
// TODO: Validate workflow job trigger
handleTemplateTokenErrors(on, context, undefined, () => convertWorkflowJobInputs(context, job));
return;
}
break;