From f4a32c43cf6de42cf53a3fc118f0f0ec86ecc9be Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Tue, 11 Apr 2023 10:05:30 -0400 Subject: [PATCH 1/6] token --- workflow-parser/src/model/converter/steps.ts | 22 +++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/workflow-parser/src/model/converter/steps.ts b/workflow-parser/src/model/converter/steps.ts index aa11f5d..0c5d161 100644 --- a/workflow-parser/src/model/converter/steps.ts +++ b/workflow-parser/src/model/converter/steps.ts @@ -1,10 +1,11 @@ -import {TemplateContext} from "../../templates/template-context"; -import {BasicExpressionToken, MappingToken, ScalarToken, StringToken, TemplateToken} from "../../templates/tokens"; -import {isSequence} from "../../templates/tokens/type-guards"; -import {isActionStep} from "../type-guards"; -import {ActionStep, Step} from "../workflow-template"; -import {handleTemplateTokenErrors} from "./handle-errors"; -import {IdBuilder} from "./id-builder"; +import { TemplateContext } from "../../templates/template-context"; +import { BasicExpressionToken, MappingToken, ScalarToken, StringToken, TemplateToken } from "../../templates/tokens"; +import { isSequence } from "../../templates/tokens/type-guards"; +import { isActionStep } from "../type-guards"; +import { ActionStep, Step } from "../workflow-template"; +import { handleTemplateTokenErrors } from "./handle-errors"; +import { IdBuilder } from "./id-builder"; +import { TokenType } from "../../templates/tokens/types"; export function convertSteps(context: TemplateContext, steps: TemplateToken): Step[] { if (!isSequence(steps)) { @@ -78,7 +79,12 @@ 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 { + // get the value of the expression + + } } } From d58deaf097bb97bbb7ae26158c22cd9c448b26b0 Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Tue, 11 Apr 2023 10:12:38 -0400 Subject: [PATCH 2/6] Remove branch --- workflow-parser/src/model/converter/steps.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/workflow-parser/src/model/converter/steps.ts b/workflow-parser/src/model/converter/steps.ts index 0c5d161..2cd332d 100644 --- a/workflow-parser/src/model/converter/steps.ts +++ b/workflow-parser/src/model/converter/steps.ts @@ -81,9 +81,6 @@ function convertStep(context: TemplateContext, idBuilder: IdBuilder, step: Templ case "continue-on-error": if (!item.value.isExpression) { continueOnError = item.value.assertBoolean("steps item continue-on-error").value; - } else { - // get the value of the expression - } } } From 736dd1a66c4626544a4118f28ae712e0ad81994b Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Tue, 11 Apr 2023 13:54:53 -0400 Subject: [PATCH 3/6] add scalar handling --- workflow-parser/src/model/converter/steps.ts | 4 +++- workflow-parser/src/model/workflow-template.ts | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/workflow-parser/src/model/converter/steps.ts b/workflow-parser/src/model/converter/steps.ts index 2cd332d..2aebbd4 100644 --- a/workflow-parser/src/model/converter/steps.ts +++ b/workflow-parser/src/model/converter/steps.ts @@ -51,7 +51,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) { @@ -81,6 +81,8 @@ function convertStep(context: TemplateContext, idBuilder: IdBuilder, step: Templ case "continue-on-error": 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..fc39c0f 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; }; @@ -154,12 +154,12 @@ export type PathFilterConfig = { }; export type WorkflowDispatchConfig = { - inputs?: {[inputName: string]: InputConfig}; + inputs?: { [inputName: string]: InputConfig }; }; export type WorkflowCallConfig = { - inputs?: {[inputName: string]: InputConfig & {default?: string | boolean | number | ScalarToken}}; - secrets?: {[secretName: string]: SecretConfig}; + inputs?: { [inputName: string]: InputConfig & { default?: string | boolean | number | ScalarToken } }; + secrets?: { [secretName: string]: SecretConfig }; // TODO - these are supported in C# and Go but not in TS yet // outputs: { [outputName: string]: OutputConfig } }; From 488879804f71782d9b6160dab1f32c053c1f1f08 Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Tue, 11 Apr 2023 13:56:02 -0400 Subject: [PATCH 4/6] prettify --- workflow-parser/src/model/converter/steps.ts | 16 ++++++++-------- workflow-parser/src/model/workflow-template.ts | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/workflow-parser/src/model/converter/steps.ts b/workflow-parser/src/model/converter/steps.ts index 2aebbd4..177e1ef 100644 --- a/workflow-parser/src/model/converter/steps.ts +++ b/workflow-parser/src/model/converter/steps.ts @@ -1,11 +1,11 @@ -import { TemplateContext } from "../../templates/template-context"; -import { BasicExpressionToken, MappingToken, ScalarToken, StringToken, TemplateToken } from "../../templates/tokens"; -import { isSequence } from "../../templates/tokens/type-guards"; -import { isActionStep } from "../type-guards"; -import { ActionStep, Step } from "../workflow-template"; -import { handleTemplateTokenErrors } from "./handle-errors"; -import { IdBuilder } from "./id-builder"; -import { TokenType } from "../../templates/tokens/types"; +import {TemplateContext} from "../../templates/template-context"; +import {BasicExpressionToken, MappingToken, ScalarToken, StringToken, TemplateToken} from "../../templates/tokens"; +import {isSequence} from "../../templates/tokens/type-guards"; +import {isActionStep} from "../type-guards"; +import {ActionStep, Step} from "../workflow-template"; +import {handleTemplateTokenErrors} from "./handle-errors"; +import {IdBuilder} from "./id-builder"; +import {TokenType} from "../../templates/tokens/types"; export function convertSteps(context: TemplateContext, steps: TemplateToken): Step[] { if (!isSequence(steps)) { diff --git a/workflow-parser/src/model/workflow-template.ts b/workflow-parser/src/model/workflow-template.ts index fc39c0f..679da4f 100644 --- a/workflow-parser/src/model/workflow-template.ts +++ b/workflow-parser/src/model/workflow-template.ts @@ -154,12 +154,12 @@ export type PathFilterConfig = { }; export type WorkflowDispatchConfig = { - inputs?: { [inputName: string]: InputConfig }; + inputs?: {[inputName: string]: InputConfig}; }; export type WorkflowCallConfig = { - inputs?: { [inputName: string]: InputConfig & { default?: string | boolean | number | ScalarToken } }; - secrets?: { [secretName: string]: SecretConfig }; + inputs?: {[inputName: string]: InputConfig & {default?: string | boolean | number | ScalarToken}}; + secrets?: {[secretName: string]: SecretConfig}; // TODO - these are supported in C# and Go but not in TS yet // outputs: { [outputName: string]: OutputConfig } }; From d0916938cec6f7dc59935e447b11338f01f77c07 Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Wed, 12 Apr 2023 11:26:59 -0400 Subject: [PATCH 5/6] Remove TokenType --- workflow-parser/src/model/converter/steps.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/workflow-parser/src/model/converter/steps.ts b/workflow-parser/src/model/converter/steps.ts index 177e1ef..1579cf0 100644 --- a/workflow-parser/src/model/converter/steps.ts +++ b/workflow-parser/src/model/converter/steps.ts @@ -1,11 +1,10 @@ -import {TemplateContext} from "../../templates/template-context"; -import {BasicExpressionToken, MappingToken, ScalarToken, StringToken, TemplateToken} from "../../templates/tokens"; -import {isSequence} from "../../templates/tokens/type-guards"; -import {isActionStep} from "../type-guards"; -import {ActionStep, Step} from "../workflow-template"; -import {handleTemplateTokenErrors} from "./handle-errors"; -import {IdBuilder} from "./id-builder"; -import {TokenType} from "../../templates/tokens/types"; +import { TemplateContext } from "../../templates/template-context"; +import { BasicExpressionToken, MappingToken, ScalarToken, StringToken, TemplateToken } from "../../templates/tokens"; +import { isSequence } from "../../templates/tokens/type-guards"; +import { isActionStep } from "../type-guards"; +import { ActionStep, Step } from "../workflow-template"; +import { handleTemplateTokenErrors } from "./handle-errors"; +import { IdBuilder } from "./id-builder"; export function convertSteps(context: TemplateContext, steps: TemplateToken): Step[] { if (!isSequence(steps)) { From 6e8cbc3e8c49cf13f5347f8ff48c0a88d0155031 Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Wed, 12 Apr 2023 11:32:38 -0400 Subject: [PATCH 6/6] prettify --- workflow-parser/src/model/converter/steps.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/workflow-parser/src/model/converter/steps.ts b/workflow-parser/src/model/converter/steps.ts index 1579cf0..05793a5 100644 --- a/workflow-parser/src/model/converter/steps.ts +++ b/workflow-parser/src/model/converter/steps.ts @@ -1,10 +1,10 @@ -import { TemplateContext } from "../../templates/template-context"; -import { BasicExpressionToken, MappingToken, ScalarToken, StringToken, TemplateToken } from "../../templates/tokens"; -import { isSequence } from "../../templates/tokens/type-guards"; -import { isActionStep } from "../type-guards"; -import { ActionStep, Step } from "../workflow-template"; -import { handleTemplateTokenErrors } from "./handle-errors"; -import { IdBuilder } from "./id-builder"; +import {TemplateContext} from "../../templates/template-context"; +import {BasicExpressionToken, MappingToken, ScalarToken, StringToken, TemplateToken} from "../../templates/tokens"; +import {isSequence} from "../../templates/tokens/type-guards"; +import {isActionStep} from "../type-guards"; +import {ActionStep, Step} from "../workflow-template"; +import {handleTemplateTokenErrors} from "./handle-errors"; +import {IdBuilder} from "./id-builder"; export function convertSteps(context: TemplateContext, steps: TemplateToken): Step[] { if (!isSequence(steps)) {