diff --git a/workflow-parser/src/model/converter/steps.ts b/workflow-parser/src/model/converter/steps.ts index aa11f5d..05793a5 100644 --- a/workflow-parser/src/model/converter/steps.ts +++ b/workflow-parser/src/model/converter/steps.ts @@ -50,7 +50,7 @@ function convertStep(context: TemplateContext, idBuilder: IdBuilder, step: Templ let id: StringToken | undefined; let name: ScalarToken | undefined; let uses: StringToken | undefined; - let continueOnError: boolean | undefined; + let continueOnError: boolean | ScalarToken | undefined; let env: MappingToken | undefined; const ifCondition = new BasicExpressionToken(undefined, undefined, "success()", undefined, undefined, undefined); for (const item of mapping) { @@ -78,7 +78,11 @@ function convertStep(context: TemplateContext, idBuilder: IdBuilder, step: Templ env = item.value.assertMapping("step env"); break; case "continue-on-error": - continueOnError = item.value.assertBoolean("steps item continue-on-error").value; + if (!item.value.isExpression) { + continueOnError = item.value.assertBoolean("steps item continue-on-error").value; + } else { + continueOnError = item.value.assertScalar("steps item continue-on-error"); + } } } diff --git a/workflow-parser/src/model/workflow-template.ts b/workflow-parser/src/model/workflow-template.ts index d50fea9..679da4f 100644 --- a/workflow-parser/src/model/workflow-template.ts +++ b/workflow-parser/src/model/workflow-template.ts @@ -86,7 +86,7 @@ type BaseStep = { id: string; name?: ScalarToken; if: BasicExpressionToken; - "continue-on-error"?: boolean; + "continue-on-error"?: boolean | ScalarToken; env?: MappingToken; };