@actions/workflow-parser 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +87 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/model/convert.d.ts +31 -0
- package/dist/model/convert.d.ts.map +1 -0
- package/dist/model/convert.js +105 -0
- package/dist/model/convert.js.map +1 -0
- package/dist/model/converter/concurrency.d.ts +5 -0
- package/dist/model/converter/concurrency.d.ts.map +1 -0
- package/dist/model/converter/concurrency.js +30 -0
- package/dist/model/converter/concurrency.js.map +1 -0
- package/dist/model/converter/container.d.ts +6 -0
- package/dist/model/converter/container.d.ts.map +1 -0
- package/dist/model/converter/container.js +97 -0
- package/dist/model/converter/container.js.map +1 -0
- package/dist/model/converter/cron-constants.d.ts +44 -0
- package/dist/model/converter/cron-constants.d.ts.map +1 -0
- package/dist/model/converter/cron-constants.js +30 -0
- package/dist/model/converter/cron-constants.js.map +1 -0
- package/dist/model/converter/cron.d.ts +3 -0
- package/dist/model/converter/cron.d.ts.map +1 -0
- package/dist/model/converter/cron.js +92 -0
- package/dist/model/converter/cron.js.map +1 -0
- package/dist/model/converter/events.d.ts +5 -0
- package/dist/model/converter/events.d.ts.map +1 -0
- package/dist/model/converter/events.js +123 -0
- package/dist/model/converter/events.js.map +1 -0
- package/dist/model/converter/handle-errors.d.ts +4 -0
- package/dist/model/converter/handle-errors.d.ts.map +1 -0
- package/dist/model/converter/handle-errors.js +18 -0
- package/dist/model/converter/handle-errors.js.map +1 -0
- package/dist/model/converter/id-builder.d.ts +23 -0
- package/dist/model/converter/id-builder.d.ts.map +1 -0
- package/dist/model/converter/id-builder.js +113 -0
- package/dist/model/converter/id-builder.js.map +1 -0
- package/dist/model/converter/job/environment.d.ts +5 -0
- package/dist/model/converter/job/environment.d.ts.map +1 -0
- package/dist/model/converter/job/environment.js +28 -0
- package/dist/model/converter/job/environment.js.map +1 -0
- package/dist/model/converter/job/inputs.d.ts +8 -0
- package/dist/model/converter/job/inputs.d.ts.map +1 -0
- package/dist/model/converter/job/inputs.js +38 -0
- package/dist/model/converter/job/inputs.js.map +1 -0
- package/dist/model/converter/job/runs-on.d.ts +9 -0
- package/dist/model/converter/job/runs-on.d.ts.map +1 -0
- package/dist/model/converter/job/runs-on.js +78 -0
- package/dist/model/converter/job/runs-on.js.map +1 -0
- package/dist/model/converter/job/secrets.d.ts +4 -0
- package/dist/model/converter/job/secrets.d.ts.map +1 -0
- package/dist/model/converter/job/secrets.js +32 -0
- package/dist/model/converter/job/secrets.js.map +1 -0
- package/dist/model/converter/job.d.ts +5 -0
- package/dist/model/converter/job.d.ts.map +1 -0
- package/dist/model/converter/job.js +144 -0
- package/dist/model/converter/job.js.map +1 -0
- package/dist/model/converter/jobs.d.ts +5 -0
- package/dist/model/converter/jobs.d.ts.map +1 -0
- package/dist/model/converter/jobs.js +74 -0
- package/dist/model/converter/jobs.js.map +1 -0
- package/dist/model/converter/referencedWorkflow.d.ts +5 -0
- package/dist/model/converter/referencedWorkflow.d.ts.map +1 -0
- package/dist/model/converter/referencedWorkflow.js +85 -0
- package/dist/model/converter/referencedWorkflow.js.map +1 -0
- package/dist/model/converter/steps.d.ts +5 -0
- package/dist/model/converter/steps.d.ts.map +1 -0
- package/dist/model/converter/steps.js +113 -0
- package/dist/model/converter/steps.js.map +1 -0
- package/dist/model/converter/string-list.d.ts +3 -0
- package/dist/model/converter/string-list.d.ts.map +1 -0
- package/dist/model/converter/string-list.js +8 -0
- package/dist/model/converter/string-list.js.map +1 -0
- package/dist/model/converter/workflow-call.d.ts +5 -0
- package/dist/model/converter/workflow-call.d.ts.map +1 -0
- package/dist/model/converter/workflow-call.js +45 -0
- package/dist/model/converter/workflow-call.js.map +1 -0
- package/dist/model/converter/workflow-dispatch.d.ts +9 -0
- package/dist/model/converter/workflow-dispatch.d.ts.map +1 -0
- package/dist/model/converter/workflow-dispatch.js +82 -0
- package/dist/model/converter/workflow-dispatch.js.map +1 -0
- package/dist/model/type-guards.d.ts +6 -0
- package/dist/model/type-guards.d.ts.map +1 -0
- package/dist/model/type-guards.js +13 -0
- package/dist/model/type-guards.js.map +1 -0
- package/dist/model/workflow-template.d.ts +157 -0
- package/dist/model/workflow-template.d.ts.map +1 -0
- package/dist/model/workflow-template.js +8 -0
- package/dist/model/workflow-template.js.map +1 -0
- package/dist/templates/allowed-context.d.ts +6 -0
- package/dist/templates/allowed-context.d.ts.map +1 -0
- package/dist/templates/allowed-context.js +30 -0
- package/dist/templates/allowed-context.js.map +1 -0
- package/dist/templates/json-object-reader.d.ts +20 -0
- package/dist/templates/json-object-reader.d.ts.map +1 -0
- package/dist/templates/json-object-reader.js +135 -0
- package/dist/templates/json-object-reader.js.map +1 -0
- package/dist/templates/object-reader.d.ts +15 -0
- package/dist/templates/object-reader.d.ts.map +1 -0
- package/dist/templates/object-reader.js +2 -0
- package/dist/templates/object-reader.js.map +1 -0
- package/dist/templates/parse-event.d.ts +16 -0
- package/dist/templates/parse-event.d.ts.map +1 -0
- package/dist/templates/parse-event.js +17 -0
- package/dist/templates/parse-event.js.map +1 -0
- package/dist/templates/schema/boolean-definition.d.ts +10 -0
- package/dist/templates/schema/boolean-definition.d.ts.map +1 -0
- package/dist/templates/schema/boolean-definition.js +41 -0
- package/dist/templates/schema/boolean-definition.js.map +1 -0
- package/dist/templates/schema/definition-info.d.ts +16 -0
- package/dist/templates/schema/definition-info.d.ts.map +1 -0
- package/dist/templates/schema/definition-info.js +40 -0
- package/dist/templates/schema/definition-info.js.map +1 -0
- package/dist/templates/schema/definition-type.d.ts +11 -0
- package/dist/templates/schema/definition-type.d.ts.map +1 -0
- package/dist/templates/schema/definition-type.js +12 -0
- package/dist/templates/schema/definition-type.js.map +1 -0
- package/dist/templates/schema/definition.d.ts +24 -0
- package/dist/templates/schema/definition.d.ts.map +1 -0
- package/dist/templates/schema/definition.js +62 -0
- package/dist/templates/schema/definition.js.map +1 -0
- package/dist/templates/schema/index.d.ts +2 -0
- package/dist/templates/schema/index.d.ts.map +1 -0
- package/dist/templates/schema/index.js +2 -0
- package/dist/templates/schema/index.js.map +1 -0
- package/dist/templates/schema/mapping-definition.d.ts +16 -0
- package/dist/templates/schema/mapping-definition.d.ts.map +1 -0
- package/dist/templates/schema/mapping-definition.js +81 -0
- package/dist/templates/schema/mapping-definition.js.map +1 -0
- package/dist/templates/schema/null-definition.d.ts +10 -0
- package/dist/templates/schema/null-definition.d.ts.map +1 -0
- package/dist/templates/schema/null-definition.js +41 -0
- package/dist/templates/schema/null-definition.js.map +1 -0
- package/dist/templates/schema/number-definition.d.ts +10 -0
- package/dist/templates/schema/number-definition.d.ts.map +1 -0
- package/dist/templates/schema/number-definition.js +41 -0
- package/dist/templates/schema/number-definition.js.map +1 -0
- package/dist/templates/schema/one-of-definition.d.ts +15 -0
- package/dist/templates/schema/one-of-definition.d.ts.map +1 -0
- package/dist/templates/schema/one-of-definition.js +154 -0
- package/dist/templates/schema/one-of-definition.js.map +1 -0
- package/dist/templates/schema/property-definition.d.ts +8 -0
- package/dist/templates/schema/property-definition.d.ts.map +1 -0
- package/dist/templates/schema/property-definition.js +31 -0
- package/dist/templates/schema/property-definition.js.map +1 -0
- package/dist/templates/schema/scalar-definition.d.ts +7 -0
- package/dist/templates/schema/scalar-definition.d.ts.map +1 -0
- package/dist/templates/schema/scalar-definition.js +7 -0
- package/dist/templates/schema/scalar-definition.js.map +1 -0
- package/dist/templates/schema/sequence-definition.d.ts +11 -0
- package/dist/templates/schema/sequence-definition.d.ts.map +1 -0
- package/dist/templates/schema/sequence-definition.js +47 -0
- package/dist/templates/schema/sequence-definition.js.map +1 -0
- package/dist/templates/schema/string-definition.d.ts +14 -0
- package/dist/templates/schema/string-definition.d.ts.map +1 -0
- package/dist/templates/schema/string-definition.js +79 -0
- package/dist/templates/schema/string-definition.js.map +1 -0
- package/dist/templates/schema/template-schema.d.ts +47 -0
- package/dist/templates/schema/template-schema.d.ts.map +1 -0
- package/dist/templates/schema/template-schema.js +377 -0
- package/dist/templates/schema/template-schema.js.map +1 -0
- package/dist/templates/template-constants.d.ts +49 -0
- package/dist/templates/template-constants.d.ts.map +1 -0
- package/dist/templates/template-constants.js +49 -0
- package/dist/templates/template-constants.js.map +1 -0
- package/dist/templates/template-context.d.ts +66 -0
- package/dist/templates/template-context.d.ts.map +1 -0
- package/dist/templates/template-context.js +118 -0
- package/dist/templates/template-context.js.map +1 -0
- package/dist/templates/template-reader.d.ts +9 -0
- package/dist/templates/template-reader.d.ts.map +1 -0
- package/dist/templates/template-reader.js +595 -0
- package/dist/templates/template-reader.js.map +1 -0
- package/dist/templates/template-validation-error.d.ts +14 -0
- package/dist/templates/template-validation-error.d.ts.map +1 -0
- package/dist/templates/template-validation-error.js +21 -0
- package/dist/templates/template-validation-error.js.map +1 -0
- package/dist/templates/tokens/basic-expression-token.d.ts +27 -0
- package/dist/templates/tokens/basic-expression-token.d.ts.map +1 -0
- package/dist/templates/tokens/basic-expression-token.js +38 -0
- package/dist/templates/tokens/basic-expression-token.js.map +1 -0
- package/dist/templates/tokens/boolean-token.d.ts +12 -0
- package/dist/templates/tokens/boolean-token.d.ts.map +1 -0
- package/dist/templates/tokens/boolean-token.js +23 -0
- package/dist/templates/tokens/boolean-token.js.map +1 -0
- package/dist/templates/tokens/expression-token.d.ts +11 -0
- package/dist/templates/tokens/expression-token.d.ts.map +1 -0
- package/dist/templates/tokens/expression-token.js +24 -0
- package/dist/templates/tokens/expression-token.js.map +1 -0
- package/dist/templates/tokens/index.d.ts +14 -0
- package/dist/templates/tokens/index.d.ts.map +1 -0
- package/dist/templates/tokens/index.js +14 -0
- package/dist/templates/tokens/index.js.map +1 -0
- package/dist/templates/tokens/insert-expression-token.d.ts +12 -0
- package/dist/templates/tokens/insert-expression-token.d.ts.map +1 -0
- package/dist/templates/tokens/insert-expression-token.js +26 -0
- package/dist/templates/tokens/insert-expression-token.js.map +1 -0
- package/dist/templates/tokens/key-value-pair.d.ts +8 -0
- package/dist/templates/tokens/key-value-pair.d.ts.map +1 -0
- package/dist/templates/tokens/key-value-pair.js +7 -0
- package/dist/templates/tokens/key-value-pair.js.map +1 -0
- package/dist/templates/tokens/literal-token.d.ts +14 -0
- package/dist/templates/tokens/literal-token.d.ts.map +1 -0
- package/dist/templates/tokens/literal-token.js +22 -0
- package/dist/templates/tokens/literal-token.js.map +1 -0
- package/dist/templates/tokens/mapping-token.d.ts +20 -0
- package/dist/templates/tokens/mapping-token.d.ts.map +1 -0
- package/dist/templates/tokens/mapping-token.js +58 -0
- package/dist/templates/tokens/mapping-token.js.map +1 -0
- package/dist/templates/tokens/null-token.d.ts +10 -0
- package/dist/templates/tokens/null-token.d.ts.map +1 -0
- package/dist/templates/tokens/null-token.js +19 -0
- package/dist/templates/tokens/null-token.js.map +1 -0
- package/dist/templates/tokens/number-token.d.ts +12 -0
- package/dist/templates/tokens/number-token.d.ts.map +1 -0
- package/dist/templates/tokens/number-token.js +23 -0
- package/dist/templates/tokens/number-token.js.map +1 -0
- package/dist/templates/tokens/scalar-token.d.ts +14 -0
- package/dist/templates/tokens/scalar-token.d.ts.map +1 -0
- package/dist/templates/tokens/scalar-token.js +22 -0
- package/dist/templates/tokens/scalar-token.js.map +1 -0
- package/dist/templates/tokens/sequence-token.d.ts +18 -0
- package/dist/templates/tokens/sequence-token.d.ts.map +1 -0
- package/dist/templates/tokens/sequence-token.js +47 -0
- package/dist/templates/tokens/sequence-token.js.map +1 -0
- package/dist/templates/tokens/serialization.d.ts +21 -0
- package/dist/templates/tokens/serialization.d.ts.map +1 -0
- package/dist/templates/tokens/serialization.js +2 -0
- package/dist/templates/tokens/serialization.js.map +1 -0
- package/dist/templates/tokens/string-token.d.ts +12 -0
- package/dist/templates/tokens/string-token.d.ts.map +1 -0
- package/dist/templates/tokens/string-token.js +21 -0
- package/dist/templates/tokens/string-token.js.map +1 -0
- package/dist/templates/tokens/template-token.d.ts +70 -0
- package/dist/templates/tokens/template-token.d.ts.map +1 -0
- package/dist/templates/tokens/template-token.js +138 -0
- package/dist/templates/tokens/template-token.js.map +1 -0
- package/dist/templates/tokens/token-range.d.ts +12 -0
- package/dist/templates/tokens/token-range.d.ts.map +1 -0
- package/dist/templates/tokens/token-range.js +2 -0
- package/dist/templates/tokens/token-range.js.map +1 -0
- package/dist/templates/tokens/traversal-state.d.ts +12 -0
- package/dist/templates/tokens/traversal-state.d.ts.map +1 -0
- package/dist/templates/tokens/traversal-state.js +54 -0
- package/dist/templates/tokens/traversal-state.js.map +1 -0
- package/dist/templates/tokens/type-guards.d.ts +18 -0
- package/dist/templates/tokens/type-guards.d.ts.map +1 -0
- package/dist/templates/tokens/type-guards.js +28 -0
- package/dist/templates/tokens/type-guards.js.map +1 -0
- package/dist/templates/tokens/types.d.ts +12 -0
- package/dist/templates/tokens/types.d.ts.map +1 -0
- package/dist/templates/tokens/types.js +37 -0
- package/dist/templates/tokens/types.js.map +1 -0
- package/dist/templates/trace-writer.d.ts +11 -0
- package/dist/templates/trace-writer.d.ts.map +1 -0
- package/dist/templates/trace-writer.js +12 -0
- package/dist/templates/trace-writer.js.map +1 -0
- package/dist/test-utils/null-trace.d.ts +3 -0
- package/dist/test-utils/null-trace.d.ts.map +1 -0
- package/dist/test-utils/null-trace.js +3 -0
- package/dist/test-utils/null-trace.js.map +1 -0
- package/dist/workflow-v1.0.json +2511 -0
- package/dist/workflows/file-provider.d.ts +6 -0
- package/dist/workflows/file-provider.d.ts.map +1 -0
- package/dist/workflows/file-provider.js +2 -0
- package/dist/workflows/file-provider.js.map +1 -0
- package/dist/workflows/file-reference.d.ts +13 -0
- package/dist/workflows/file-reference.d.ts.map +1 -0
- package/dist/workflows/file-reference.js +25 -0
- package/dist/workflows/file-reference.js.map +1 -0
- package/dist/workflows/file.d.ts +5 -0
- package/dist/workflows/file.d.ts.map +1 -0
- package/dist/workflows/file.js +2 -0
- package/dist/workflows/file.js.map +1 -0
- package/dist/workflows/workflow-constants.d.ts +2 -0
- package/dist/workflows/workflow-constants.d.ts.map +1 -0
- package/dist/workflows/workflow-constants.js +2 -0
- package/dist/workflows/workflow-constants.js.map +1 -0
- package/dist/workflows/workflow-parser.d.ts +11 -0
- package/dist/workflows/workflow-parser.d.ts.map +1 -0
- package/dist/workflows/workflow-parser.js +28 -0
- package/dist/workflows/workflow-parser.js.map +1 -0
- package/dist/workflows/workflow-schema.d.ts +3 -0
- package/dist/workflows/workflow-schema.d.ts.map +1 -0
- package/dist/workflows/workflow-schema.js +12 -0
- package/dist/workflows/workflow-schema.js.map +1 -0
- package/dist/workflows/yaml-object-reader.d.ts +26 -0
- package/dist/workflows/yaml-object-reader.d.ts.map +1 -0
- package/dist/workflows/yaml-object-reader.js +178 -0
- package/dist/workflows/yaml-object-reader.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { BasicExpressionToken } from "../../templates/tokens";
|
|
2
|
+
import { isSequence, isString } from "../../templates/tokens/type-guards";
|
|
3
|
+
import { convertConcurrency } from "./concurrency";
|
|
4
|
+
import { convertToJobContainer, convertToJobServices } from "./container";
|
|
5
|
+
import { handleTemplateTokenErrors } from "./handle-errors";
|
|
6
|
+
import { IdBuilder } from "./id-builder";
|
|
7
|
+
import { convertToActionsEnvironmentRef } from "./job/environment";
|
|
8
|
+
import { convertRunsOn } from "./job/runs-on";
|
|
9
|
+
import { convertSteps } from "./steps";
|
|
10
|
+
export function convertJob(context, jobKey, token) {
|
|
11
|
+
const error = new IdBuilder().tryAddKnownId(jobKey.value);
|
|
12
|
+
if (error) {
|
|
13
|
+
context.error(jobKey, error);
|
|
14
|
+
}
|
|
15
|
+
let concurrency, container, env, environment, name, outputs, runsOn, services, strategy;
|
|
16
|
+
let needs = undefined;
|
|
17
|
+
let steps = [];
|
|
18
|
+
let workflowJobRef;
|
|
19
|
+
let workflowJobInputs;
|
|
20
|
+
let inheritSecrets = false;
|
|
21
|
+
let workflowJobSecrets;
|
|
22
|
+
for (const item of token) {
|
|
23
|
+
const propertyName = item.key.assertString("job property name");
|
|
24
|
+
switch (propertyName.value) {
|
|
25
|
+
case "concurrency":
|
|
26
|
+
handleTemplateTokenErrors(item.value, context, undefined, () => convertConcurrency(context, item.value));
|
|
27
|
+
concurrency = item.value;
|
|
28
|
+
break;
|
|
29
|
+
case "container":
|
|
30
|
+
convertToJobContainer(context, item.value);
|
|
31
|
+
container = item.value;
|
|
32
|
+
break;
|
|
33
|
+
case "env":
|
|
34
|
+
handleTemplateTokenErrors(item.value, context, undefined, () => {
|
|
35
|
+
env = item.value.assertMapping("job env");
|
|
36
|
+
});
|
|
37
|
+
break;
|
|
38
|
+
case "environment":
|
|
39
|
+
handleTemplateTokenErrors(item.value, context, undefined, () => convertToActionsEnvironmentRef(context, item.value));
|
|
40
|
+
environment = item.value;
|
|
41
|
+
break;
|
|
42
|
+
case "name":
|
|
43
|
+
name = item.value.assertScalar("job name");
|
|
44
|
+
break;
|
|
45
|
+
case "needs": {
|
|
46
|
+
needs = [];
|
|
47
|
+
if (isString(item.value)) {
|
|
48
|
+
const jobNeeds = item.value.assertString("job needs id");
|
|
49
|
+
needs.push(jobNeeds);
|
|
50
|
+
}
|
|
51
|
+
if (isSequence(item.value)) {
|
|
52
|
+
for (const seqItem of item.value) {
|
|
53
|
+
const jobNeeds = seqItem.assertString("job needs id");
|
|
54
|
+
needs.push(jobNeeds);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
case "outputs":
|
|
60
|
+
handleTemplateTokenErrors(item.value, context, undefined, () => {
|
|
61
|
+
outputs = item.value.assertMapping("job outputs");
|
|
62
|
+
});
|
|
63
|
+
break;
|
|
64
|
+
case "runs-on":
|
|
65
|
+
handleTemplateTokenErrors(item.value, context, undefined, () => convertRunsOn(context, item.value));
|
|
66
|
+
runsOn = item.value;
|
|
67
|
+
break;
|
|
68
|
+
case "services":
|
|
69
|
+
convertToJobServices(context, item.value);
|
|
70
|
+
services = item.value;
|
|
71
|
+
break;
|
|
72
|
+
case "steps":
|
|
73
|
+
steps = convertSteps(context, item.value);
|
|
74
|
+
break;
|
|
75
|
+
case "strategy":
|
|
76
|
+
strategy = item.value;
|
|
77
|
+
break;
|
|
78
|
+
case "uses":
|
|
79
|
+
workflowJobRef = item.value.assertString("job uses value");
|
|
80
|
+
break;
|
|
81
|
+
case "with":
|
|
82
|
+
handleTemplateTokenErrors(item.value, context, undefined, () => {
|
|
83
|
+
workflowJobInputs = item.value.assertMapping("uses-with value");
|
|
84
|
+
});
|
|
85
|
+
break;
|
|
86
|
+
case "secrets":
|
|
87
|
+
if (isString(item.value) && item.value.value === "inherit") {
|
|
88
|
+
inheritSecrets = true;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
handleTemplateTokenErrors(item.value, context, undefined, () => {
|
|
92
|
+
workflowJobSecrets = item.value.assertMapping("uses-secrets value");
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (workflowJobRef !== undefined) {
|
|
99
|
+
return {
|
|
100
|
+
type: "reusableWorkflowJob",
|
|
101
|
+
id: jobKey,
|
|
102
|
+
name: jobName(name, jobKey),
|
|
103
|
+
needs: needs || [],
|
|
104
|
+
if: new BasicExpressionToken(undefined, undefined, "success()", undefined, undefined, undefined),
|
|
105
|
+
ref: workflowJobRef,
|
|
106
|
+
"input-definitions": undefined,
|
|
107
|
+
"input-values": workflowJobInputs,
|
|
108
|
+
"secret-definitions": undefined,
|
|
109
|
+
"secret-values": workflowJobSecrets,
|
|
110
|
+
"inherit-secrets": inheritSecrets || undefined,
|
|
111
|
+
outputs: undefined,
|
|
112
|
+
concurrency,
|
|
113
|
+
strategy
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
return {
|
|
118
|
+
type: "job",
|
|
119
|
+
id: jobKey,
|
|
120
|
+
name: jobName(name, jobKey),
|
|
121
|
+
needs,
|
|
122
|
+
if: new BasicExpressionToken(undefined, undefined, "success()", undefined, undefined, undefined),
|
|
123
|
+
env,
|
|
124
|
+
concurrency,
|
|
125
|
+
environment,
|
|
126
|
+
strategy,
|
|
127
|
+
"runs-on": runsOn,
|
|
128
|
+
container,
|
|
129
|
+
services,
|
|
130
|
+
outputs,
|
|
131
|
+
steps
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function jobName(name, jobKey) {
|
|
136
|
+
if (name === undefined) {
|
|
137
|
+
return jobKey;
|
|
138
|
+
}
|
|
139
|
+
if (isString(name) && name.value === "") {
|
|
140
|
+
return jobKey;
|
|
141
|
+
}
|
|
142
|
+
return name;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=job.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/model/converter/job.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TemplateContext } from "../../templates/template-context";
|
|
2
|
+
import { TemplateToken } from "../../templates/tokens/template-token";
|
|
3
|
+
import { WorkflowJob } from "../workflow-template";
|
|
4
|
+
export declare function convertJobs(context: TemplateContext, token: TemplateToken): WorkflowJob[];
|
|
5
|
+
//# sourceMappingURL=jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../../src/model/converter/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAC,aAAa,EAAC,MAAM,uCAAuC,CAAC;AAEpE,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AASjD,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,GAAG,WAAW,EAAE,CAiCzF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { isMapping } from "../../templates/tokens/type-guards";
|
|
2
|
+
import { handleTemplateTokenErrors } from "./handle-errors";
|
|
3
|
+
import { convertJob } from "./job";
|
|
4
|
+
export function convertJobs(context, token) {
|
|
5
|
+
if (isMapping(token)) {
|
|
6
|
+
const result = [];
|
|
7
|
+
const jobsWithSatisfiedNeeds = [];
|
|
8
|
+
const alljobsWithUnsatisfiedNeeds = [];
|
|
9
|
+
for (const item of token) {
|
|
10
|
+
const jobKey = item.key.assertString("job name");
|
|
11
|
+
const jobDef = item.value.assertMapping(`job ${jobKey.value}`);
|
|
12
|
+
const job = handleTemplateTokenErrors(token, context, undefined, () => convertJob(context, jobKey, jobDef));
|
|
13
|
+
if (job) {
|
|
14
|
+
result.push(job);
|
|
15
|
+
const node = {
|
|
16
|
+
name: job.id.value,
|
|
17
|
+
needs: Object.assign([], job.needs)
|
|
18
|
+
};
|
|
19
|
+
if (node.needs.length > 0) {
|
|
20
|
+
alljobsWithUnsatisfiedNeeds.push(node);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
jobsWithSatisfiedNeeds.push(node);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//validate job needs
|
|
28
|
+
validateNeeds(token, context, result, jobsWithSatisfiedNeeds, alljobsWithUnsatisfiedNeeds);
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
context.error(token, "Invalid format for jobs");
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
function validateNeeds(token, context, result, jobsWithSatisfiedNeeds, alljobsWithUnsatisfiedNeeds) {
|
|
35
|
+
if (jobsWithSatisfiedNeeds.length == 0) {
|
|
36
|
+
context.error(token, "The workflow must contain at least one job with no dependencies.");
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
// Figure out which nodes would start after current completes
|
|
40
|
+
while (jobsWithSatisfiedNeeds.length > 0) {
|
|
41
|
+
const currentJob = jobsWithSatisfiedNeeds.shift();
|
|
42
|
+
if (currentJob == undefined) {
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
for (let i = alljobsWithUnsatisfiedNeeds.length - 1; i >= 0; i--) {
|
|
46
|
+
const unsatisfiedJob = alljobsWithUnsatisfiedNeeds[i];
|
|
47
|
+
for (let j = unsatisfiedJob.needs.length - 1; j >= 0; j--) {
|
|
48
|
+
const need = unsatisfiedJob.needs[j];
|
|
49
|
+
if (need.value == currentJob.name) {
|
|
50
|
+
unsatisfiedJob.needs.splice(j, 1);
|
|
51
|
+
if (unsatisfiedJob.needs.length == 0) {
|
|
52
|
+
jobsWithSatisfiedNeeds.push(unsatisfiedJob);
|
|
53
|
+
alljobsWithUnsatisfiedNeeds.splice(i, 1);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Check whether some jobs will never execute
|
|
60
|
+
if (alljobsWithUnsatisfiedNeeds.length > 0) {
|
|
61
|
+
const jobNames = result.map(x => x.id.value);
|
|
62
|
+
for (const unsatisfiedJob of alljobsWithUnsatisfiedNeeds) {
|
|
63
|
+
for (const need of unsatisfiedJob.needs) {
|
|
64
|
+
if (jobNames.includes(need.value)) {
|
|
65
|
+
context.error(need, `Job '${unsatisfiedJob.name}' depends on job '${need.value}' which creates a cycle in the dependency graph.`);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
context.error(need, `Job '${unsatisfiedJob.name}' depends on unknown job '${need.value}'.`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=jobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/model/converter/jobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TemplateContext } from "../../templates/template-context";
|
|
2
|
+
import { TemplateToken } from "../../templates/tokens";
|
|
3
|
+
import { ReusableWorkflowJob } from "../workflow-template";
|
|
4
|
+
export declare function convertReferencedWorkflow(context: TemplateContext, referencedWorkflow: TemplateToken, job: ReusableWorkflowJob): void;
|
|
5
|
+
//# sourceMappingURL=referencedWorkflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referencedWorkflow.d.ts","sourceRoot":"","sources":["../../../src/model/converter/referencedWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAMzD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,EACxB,kBAAkB,EAAE,aAAa,EACjC,GAAG,EAAE,mBAAmB,QAuBzB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { TokenType } from "../../templates/tokens/types";
|
|
2
|
+
import { handleTemplateTokenErrors } from "./handle-errors";
|
|
3
|
+
import { convertWorkflowJobInputs } from "./job/inputs";
|
|
4
|
+
import { convertWorkflowJobSecrets } from "./job/secrets";
|
|
5
|
+
import { convertJobs } from "./jobs";
|
|
6
|
+
export function convertReferencedWorkflow(context, referencedWorkflow, job) {
|
|
7
|
+
const mapping = referencedWorkflow.assertMapping("root");
|
|
8
|
+
// The language service doesn't currently handles on other documents,
|
|
9
|
+
// So use the ref in the original workflow as the error location
|
|
10
|
+
const tokenForErrors = job.ref;
|
|
11
|
+
for (const pair of mapping) {
|
|
12
|
+
const key = pair.key.assertString("root key");
|
|
13
|
+
switch (key.value) {
|
|
14
|
+
case "on": {
|
|
15
|
+
handleTemplateTokenErrors(tokenForErrors, context, undefined, () => convertReferencedWorkflowOn(context, pair.value, job));
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
case "jobs": {
|
|
19
|
+
job.jobs = handleTemplateTokenErrors(tokenForErrors, context, [], () => convertJobs(context, pair.value));
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function convertReferencedWorkflowOn(context, on, job) {
|
|
26
|
+
const tokenForErrors = job.ref;
|
|
27
|
+
switch (on.templateTokenType) {
|
|
28
|
+
case TokenType.String: {
|
|
29
|
+
const event = on.assertString("Reference workflow on value").value;
|
|
30
|
+
if (event === "workflow_call") {
|
|
31
|
+
handleTemplateTokenErrors(tokenForErrors, context, undefined, () => convertWorkflowJobInputs(context, job));
|
|
32
|
+
handleTemplateTokenErrors(tokenForErrors, context, undefined, () => convertWorkflowJobSecrets(context, job));
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
case TokenType.Sequence: {
|
|
38
|
+
const events = on.assertSequence("Reference workflow on value");
|
|
39
|
+
for (const eventToken of events) {
|
|
40
|
+
const event = eventToken.assertString(`Reference workflow on value ${eventToken}`).value;
|
|
41
|
+
if (event === "workflow_call") {
|
|
42
|
+
handleTemplateTokenErrors(tokenForErrors, context, undefined, () => convertWorkflowJobInputs(context, job));
|
|
43
|
+
handleTemplateTokenErrors(tokenForErrors, context, undefined, () => convertWorkflowJobSecrets(context, job));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
case TokenType.Mapping: {
|
|
50
|
+
const eventMapping = on.assertMapping("Reference workflow on value");
|
|
51
|
+
for (const pair of eventMapping) {
|
|
52
|
+
const event = pair.key.assertString(`Reference workflow on value ${pair.key}`).value;
|
|
53
|
+
if (event !== "workflow_call") {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (pair.value.templateTokenType === TokenType.Null) {
|
|
57
|
+
handleTemplateTokenErrors(tokenForErrors, context, undefined, () => convertWorkflowJobInputs(context, job));
|
|
58
|
+
handleTemplateTokenErrors(tokenForErrors, context, undefined, () => convertWorkflowJobSecrets(context, job));
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const definitions = pair.value.assertMapping(`Reference workflow on value ${pair.key}`);
|
|
62
|
+
for (const definition of definitions) {
|
|
63
|
+
const definitionKey = definition.key.assertString(`on-workflow_call-${definition.key}`).value;
|
|
64
|
+
switch (definitionKey) {
|
|
65
|
+
case "inputs":
|
|
66
|
+
job["input-definitions"] = definition.value.assertMapping(`on-workflow_call-${definition.key}`);
|
|
67
|
+
break;
|
|
68
|
+
case "outputs":
|
|
69
|
+
job.outputs = definition.value.assertMapping(`on-workflow_call-${definition.key}`);
|
|
70
|
+
break;
|
|
71
|
+
case "secrets":
|
|
72
|
+
job["secret-definitions"] = definition.value.assertMapping(`on-workflow_call-${definition.key}`);
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
handleTemplateTokenErrors(tokenForErrors, context, undefined, () => convertWorkflowJobInputs(context, job));
|
|
77
|
+
handleTemplateTokenErrors(tokenForErrors, context, undefined, () => convertWorkflowJobSecrets(context, job));
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
context.error(tokenForErrors, "workflow_call key is not defined in the referenced workflow.");
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=referencedWorkflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referencedWorkflow.js","sourceRoot":"","sources":["../../../src/model/converter/referencedWorkflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TemplateContext } from "../../templates/template-context";
|
|
2
|
+
import { TemplateToken } from "../../templates/tokens";
|
|
3
|
+
import { Step } from "../workflow-template";
|
|
4
|
+
export declare function convertSteps(context: TemplateContext, steps: TemplateToken): Step[];
|
|
5
|
+
//# sourceMappingURL=steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../../src/model/converter/steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAA+D,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAGnH,OAAO,EAAa,IAAI,EAAC,MAAM,sBAAsB,CAAC;AAItD,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,EAAE,CAmCnF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { BasicExpressionToken } from "../../templates/tokens";
|
|
2
|
+
import { isSequence } from "../../templates/tokens/type-guards";
|
|
3
|
+
import { isActionStep } from "../type-guards";
|
|
4
|
+
import { handleTemplateTokenErrors } from "./handle-errors";
|
|
5
|
+
import { IdBuilder } from "./id-builder";
|
|
6
|
+
export function convertSteps(context, steps) {
|
|
7
|
+
if (!isSequence(steps)) {
|
|
8
|
+
context.error(steps, "Invalid format for steps");
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
const idBuilder = new IdBuilder();
|
|
12
|
+
const result = [];
|
|
13
|
+
for (const item of steps) {
|
|
14
|
+
const step = handleTemplateTokenErrors(steps, context, undefined, () => convertStep(context, idBuilder, item));
|
|
15
|
+
if (step) {
|
|
16
|
+
result.push(step);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
for (const step of result) {
|
|
20
|
+
if (step.id) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
let id = "";
|
|
24
|
+
if (isActionStep(step)) {
|
|
25
|
+
id = createActionStepId(step);
|
|
26
|
+
}
|
|
27
|
+
if (!id) {
|
|
28
|
+
id = "run";
|
|
29
|
+
}
|
|
30
|
+
idBuilder.appendSegment(`__${id}`);
|
|
31
|
+
step.id = idBuilder.build();
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
function convertStep(context, idBuilder, step) {
|
|
36
|
+
const mapping = step.assertMapping("steps item");
|
|
37
|
+
let run;
|
|
38
|
+
let id;
|
|
39
|
+
let name;
|
|
40
|
+
let uses;
|
|
41
|
+
let continueOnError;
|
|
42
|
+
let env;
|
|
43
|
+
const ifCondition = new BasicExpressionToken(undefined, undefined, "success()", undefined, undefined, undefined);
|
|
44
|
+
for (const item of mapping) {
|
|
45
|
+
const key = item.key.assertString("steps item key");
|
|
46
|
+
switch (key.value) {
|
|
47
|
+
case "id":
|
|
48
|
+
id = item.value.assertString("steps item id");
|
|
49
|
+
if (id) {
|
|
50
|
+
const error = idBuilder.tryAddKnownId(id.value);
|
|
51
|
+
if (error) {
|
|
52
|
+
context.error(id, error);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
break;
|
|
56
|
+
case "name":
|
|
57
|
+
name = item.value.assertScalar("steps item name");
|
|
58
|
+
break;
|
|
59
|
+
case "run":
|
|
60
|
+
run = item.value.assertScalar("steps item run");
|
|
61
|
+
break;
|
|
62
|
+
case "uses":
|
|
63
|
+
uses = item.value.assertString("steps item uses");
|
|
64
|
+
break;
|
|
65
|
+
case "env":
|
|
66
|
+
env = item.value.assertMapping("step env");
|
|
67
|
+
break;
|
|
68
|
+
case "continue-on-error":
|
|
69
|
+
continueOnError = item.value.assertBoolean("steps item continue-on-error").value;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (run) {
|
|
73
|
+
return {
|
|
74
|
+
id: id?.value || "",
|
|
75
|
+
name,
|
|
76
|
+
if: ifCondition,
|
|
77
|
+
"continue-on-error": continueOnError,
|
|
78
|
+
env,
|
|
79
|
+
run
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (uses) {
|
|
83
|
+
return {
|
|
84
|
+
id: id?.value || "",
|
|
85
|
+
name,
|
|
86
|
+
if: ifCondition,
|
|
87
|
+
"continue-on-error": continueOnError,
|
|
88
|
+
env,
|
|
89
|
+
uses
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
context.error(step, "Expected uses or run to be defined");
|
|
93
|
+
}
|
|
94
|
+
function createActionStepId(step) {
|
|
95
|
+
const uses = step.uses.value;
|
|
96
|
+
if (uses.startsWith("docker://")) {
|
|
97
|
+
return uses.substring("docker://".length);
|
|
98
|
+
}
|
|
99
|
+
if (uses.startsWith("./") || uses.startsWith(".\\")) {
|
|
100
|
+
return "self";
|
|
101
|
+
}
|
|
102
|
+
const segments = uses.split("@");
|
|
103
|
+
if (segments.length != 2) {
|
|
104
|
+
return "";
|
|
105
|
+
}
|
|
106
|
+
const pathSegments = segments[0].split(/[\\/]/).filter(s => s.length > 0);
|
|
107
|
+
const gitRef = segments[1];
|
|
108
|
+
if (pathSegments.length >= 2 && pathSegments[0] && pathSegments[1] && gitRef) {
|
|
109
|
+
return `${pathSegments[0]}/${pathSegments[1]}`;
|
|
110
|
+
}
|
|
111
|
+
return "";
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../../src/model/converter/steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-list.d.ts","sourceRoot":"","sources":["../../../src/model/converter/string-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,uCAAuC,CAAC;AAEpE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAQ9E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-list.js","sourceRoot":"","sources":["../../../src/model/converter/string-list.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,KAAoB;IAClE,MAAM,MAAM,GAAG,EAAc,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;KACtD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TemplateContext } from "../../templates/template-context";
|
|
2
|
+
import { MappingToken } from "../../templates/tokens";
|
|
3
|
+
import { WorkflowCallConfig } from "../workflow-template";
|
|
4
|
+
export declare function convertEventWorkflowCall(context: TemplateContext, token: MappingToken): WorkflowCallConfig;
|
|
5
|
+
//# sourceMappingURL=workflow-call.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-call.d.ts","sourceRoot":"","sources":["../../../src/model/converter/workflow-call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAC,YAAY,EAAgB,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAe,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAEtE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,GAAG,kBAAkB,CAsB1G"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { isMapping } from "../../templates/tokens/type-guards";
|
|
2
|
+
export function convertEventWorkflowCall(context, token) {
|
|
3
|
+
const result = {};
|
|
4
|
+
for (const item of token) {
|
|
5
|
+
const key = item.key.assertString("workflow dispatch input key");
|
|
6
|
+
switch (key.value) {
|
|
7
|
+
case "inputs":
|
|
8
|
+
// Ignore, these are handled by convertEventWorkflowDispatchInputs
|
|
9
|
+
break;
|
|
10
|
+
case "secrets":
|
|
11
|
+
result.secrets = convertWorkflowCallSecrets(context, item.value.assertMapping("workflow dispatch inputs"));
|
|
12
|
+
break;
|
|
13
|
+
case "outputs":
|
|
14
|
+
// TODO - outputs
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
function convertWorkflowCallSecrets(context, token) {
|
|
21
|
+
const result = {};
|
|
22
|
+
for (const item of token) {
|
|
23
|
+
const secretName = item.key.assertString("secret name");
|
|
24
|
+
result[secretName.value] = convertWorkflowCallSecret(context, item.value);
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
function convertWorkflowCallSecret(context, token) {
|
|
29
|
+
const result = {};
|
|
30
|
+
if (isMapping(token)) {
|
|
31
|
+
for (const item of token) {
|
|
32
|
+
const key = item.key.assertString("workflow call secret key");
|
|
33
|
+
switch (key.value) {
|
|
34
|
+
case "description":
|
|
35
|
+
result.description = item.value.assertString("secret description").value;
|
|
36
|
+
break;
|
|
37
|
+
case "required":
|
|
38
|
+
result.required = item.value.assertBoolean("secret required").value;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=workflow-call.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-call.js","sourceRoot":"","sources":["../../../src/model/converter/workflow-call.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,oCAAoC,CAAC;AAG7D,MAAM,UAAU,wBAAwB,CAAC,OAAwB,EAAE,KAAmB;IACpF,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;QAEjE,QAAQ,GAAG,CAAC,KAAK,EAAE;YACjB,KAAK,QAAQ;gBACX,kEAAkE;gBAClE,MAAM;YAER,KAAK,SAAS;gBACZ,MAAM,CAAC,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBAC3G,MAAM;YAER,KAAK,SAAS;gBACZ,iBAAiB;gBACjB,MAAM;SACT;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,0BAA0B,CACjC,OAAwB,EACxB,KAAmB;IAEnB,MAAM,MAAM,GAAyC,EAAE,CAAC;IAExD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAExD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3E;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAwB,EAAE,KAAoB;IAC/E,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;YAE9D,QAAQ,GAAG,CAAC,KAAK,EAAE;gBACjB,KAAK,aAAa;oBAChB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC;oBACzE,MAAM;gBAER,KAAK,UAAU;oBACb,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;oBACpE,MAAM;aACT;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TemplateContext } from "../../templates/template-context";
|
|
2
|
+
import { MappingToken } from "../../templates/tokens/mapping-token";
|
|
3
|
+
import { InputConfig, WorkflowDispatchConfig } from "../workflow-template";
|
|
4
|
+
export declare function convertEventWorkflowDispatchInputs(context: TemplateContext, token: MappingToken): WorkflowDispatchConfig;
|
|
5
|
+
export declare function convertWorkflowDispatchInputs(context: TemplateContext, token: MappingToken): {
|
|
6
|
+
[inputName: string]: InputConfig;
|
|
7
|
+
};
|
|
8
|
+
export declare function convertWorkflowDispatchInput(context: TemplateContext, token: MappingToken): InputConfig;
|
|
9
|
+
//# sourceMappingURL=workflow-dispatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-dispatch.d.ts","sourceRoot":"","sources":["../../../src/model/converter/workflow-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,sCAAsC,CAAC;AAElE,OAAO,EAAC,WAAW,EAAa,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAGpF,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,YAAY,GAClB,sBAAsB,CAcxB;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,YAAY,GAClB;IACD,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC;CAClC,CAWA;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,GAAG,WAAW,CAoEvG"}
|