-
Notifications
You must be signed in to change notification settings - Fork 62
Expand file tree
/
Copy pathenv.ts
More file actions
37 lines (30 loc) · 1.15 KB
/
env.ts
File metadata and controls
37 lines (30 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import {data, DescriptionDictionary} from "@actions/expressions";
import {isScalar, isString} from "@actions/workflow-parser";
import {MappingToken} from "@actions/workflow-parser/templates/tokens/mapping-token";
import {WorkflowContext} from "../context/workflow-context.js";
export function getEnvContext(workflowContext: WorkflowContext): DescriptionDictionary {
const d = new DescriptionDictionary();
//step env
if (workflowContext.step && "env" in workflowContext.step && workflowContext.step.env) {
envContext(workflowContext.step.env, d);
}
//job env
if (workflowContext.job && workflowContext.job.env) {
envContext(workflowContext.job.env, d);
}
//workflow env
if (workflowContext.template && workflowContext.template.env) {
const wfEnv = workflowContext.template.env.assertMapping("workflow env");
envContext(wfEnv, d);
}
return d;
}
function envContext(envMap: MappingToken, d: data.Dictionary) {
for (const env of envMap) {
if (!isString(env.key)) {
continue;
}
const value = isScalar(env.value) ? new data.StringData(env.value.toDisplayString()) : new data.Null();
d.add(env.key.value, value);
}
}