@trebired/git-host 2.1.0 → 2.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/CHANGELOG.md +12 -0
- package/README.md +231 -2
- package/bin/git-host-actions-runner-darwin-arm64 +0 -0
- package/bin/git-host-actions-runner-darwin-x64 +0 -0
- package/bin/git-host-actions-runner-linux-arm64-gnu +0 -0
- package/bin/git-host-actions-runner-linux-x64-gnu +0 -0
- package/dist/api/forge/actions.d.ts +6 -3
- package/dist/api/forge/actions.d.ts.map +1 -1
- package/dist/api/forge/actions.js +46 -10
- package/dist/api/forge/actions.js.map +1 -1
- package/dist/api/forge/route.d.ts +10 -0
- package/dist/api/forge/route.d.ts.map +1 -1
- package/dist/api/forge/route.js +6 -0
- package/dist/api/forge/route.js.map +1 -1
- package/dist/api/forge/socket.d.ts.map +1 -1
- package/dist/api/forge/socket.js +4 -148
- package/dist/api/forge/socket.js.map +1 -1
- package/dist/api/forge/socket_subscription.d.ts +10 -0
- package/dist/api/forge/socket_subscription.d.ts.map +1 -0
- package/dist/api/forge/socket_subscription.js +202 -0
- package/dist/api/forge/socket_subscription.js.map +1 -0
- package/dist/api/handler/action.d.ts.map +1 -1
- package/dist/api/handler/action.js +24 -18
- package/dist/api/handler/action.js.map +1 -1
- package/dist/api/socket/linguist_connection.d.ts +9 -0
- package/dist/api/socket/linguist_connection.d.ts.map +1 -0
- package/dist/api/socket/linguist_connection.js +167 -0
- package/dist/api/socket/linguist_connection.js.map +1 -0
- package/dist/api/socket/server.d.ts.map +1 -1
- package/dist/api/socket/server.js +4 -119
- package/dist/api/socket/server.js.map +1 -1
- package/dist/core/actions/artifacts.d.ts +21 -0
- package/dist/core/actions/artifacts.d.ts.map +1 -0
- package/dist/core/actions/artifacts.js +121 -0
- package/dist/core/actions/artifacts.js.map +1 -0
- package/dist/core/actions/expressions.d.ts +15 -0
- package/dist/core/actions/expressions.d.ts.map +1 -0
- package/dist/core/actions/expressions.js +279 -0
- package/dist/core/actions/expressions.js.map +1 -0
- package/dist/core/actions/go_runner.d.ts +6 -0
- package/dist/core/actions/go_runner.d.ts.map +1 -0
- package/dist/core/actions/go_runner.js +106 -0
- package/dist/core/actions/go_runner.js.map +1 -0
- package/dist/core/actions/local_runner.d.ts +28 -0
- package/dist/core/actions/local_runner.d.ts.map +1 -0
- package/dist/core/actions/local_runner.js +121 -0
- package/dist/core/actions/local_runner.js.map +1 -0
- package/dist/core/actions/node_runner.d.ts +4 -0
- package/dist/core/actions/node_runner.d.ts.map +1 -0
- package/dist/core/actions/node_runner.js +175 -0
- package/dist/core/actions/node_runner.js.map +1 -0
- package/dist/core/actions/normalize.d.ts +7 -0
- package/dist/core/actions/normalize.d.ts.map +1 -0
- package/dist/core/actions/normalize.js +401 -0
- package/dist/core/actions/normalize.js.map +1 -0
- package/dist/core/actions/planner.d.ts +13 -0
- package/dist/core/actions/planner.d.ts.map +1 -0
- package/dist/core/actions/planner.js +106 -0
- package/dist/core/actions/planner.js.map +1 -0
- package/dist/core/actions/redaction.d.ts +5 -0
- package/dist/core/actions/redaction.d.ts.map +1 -0
- package/dist/core/actions/redaction.js +28 -0
- package/dist/core/actions/redaction.js.map +1 -0
- package/dist/core/actions/release_assets.d.ts +31 -0
- package/dist/core/actions/release_assets.d.ts.map +1 -0
- package/dist/core/actions/release_assets.js +114 -0
- package/dist/core/actions/release_assets.js.map +1 -0
- package/dist/core/actions/runner/launch.d.ts +5 -0
- package/dist/core/actions/runner/launch.d.ts.map +1 -0
- package/dist/core/actions/runner/launch.js +100 -0
- package/dist/core/actions/runner/launch.js.map +1 -0
- package/dist/core/actions/runner/protocol.d.ts +7 -0
- package/dist/core/actions/runner/protocol.d.ts.map +1 -0
- package/dist/core/actions/runner/protocol.js +66 -0
- package/dist/core/actions/runner/protocol.js.map +1 -0
- package/dist/core/actions/runner.d.ts +6 -0
- package/dist/core/actions/runner.d.ts.map +1 -0
- package/dist/core/actions/runner.js +13 -0
- package/dist/core/actions/runner.js.map +1 -0
- package/dist/core/{actions_runner.d.ts → actions/types.d.ts} +38 -6
- package/dist/core/actions/types.d.ts.map +1 -0
- package/dist/core/actions/types.js +2 -0
- package/dist/core/actions/types.js.map +1 -0
- package/dist/core/{actions_workflows.d.ts → actions/workflows.d.ts} +4 -4
- package/dist/core/actions/workflows.d.ts.map +1 -0
- package/dist/core/{actions_workflows.js → actions/workflows.js} +40 -100
- package/dist/core/actions/workflows.js.map +1 -0
- package/dist/core/actions/workspace.d.ts +7 -0
- package/dist/core/actions/workspace.d.ts.map +1 -0
- package/dist/core/actions/workspace.js +47 -0
- package/dist/core/actions/workspace.js.map +1 -0
- package/dist/core/activity.d.ts.map +1 -1
- package/dist/core/activity.js +57 -39
- package/dist/core/activity.js.map +1 -1
- package/dist/core/archive_cache_filesystem.d.ts.map +1 -1
- package/dist/core/archive_cache_filesystem.js +39 -33
- package/dist/core/archive_cache_filesystem.js.map +1 -1
- package/dist/core/create/git/forge.d.ts.map +1 -1
- package/dist/core/create/git/forge.js +12 -2
- package/dist/core/create/git/forge.js.map +1 -1
- package/dist/core/create_git_host/remote_methods.js.map +1 -1
- package/dist/core/forge_actions.d.ts +10 -2
- package/dist/core/forge_actions.d.ts.map +1 -1
- package/dist/core/forge_actions.js +1005 -160
- package/dist/core/forge_actions.js.map +1 -1
- package/dist/core/git_forge/storage_memory.d.ts.map +1 -1
- package/dist/core/git_forge/storage_memory.js +72 -2
- package/dist/core/git_forge/storage_memory.js.map +1 -1
- package/dist/core/repository/parsers.d.ts.map +1 -1
- package/dist/core/repository/parsers.js +45 -32
- package/dist/core/repository/parsers.js.map +1 -1
- package/dist/core/run_git/process.d.ts.map +1 -1
- package/dist/core/run_git/process.js +19 -18
- package/dist/core/run_git/process.js.map +1 -1
- package/dist/core/working_tree/read.d.ts.map +1 -1
- package/dist/core/working_tree/read.js +26 -32
- package/dist/core/working_tree/read.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/types/forge/activity.d.ts +52 -0
- package/dist/types/forge/activity.d.ts.map +1 -0
- package/dist/types/forge/activity.js +2 -0
- package/dist/types/forge/activity.js.map +1 -0
- package/dist/types/forge/api.d.ts +116 -0
- package/dist/types/forge/api.d.ts.map +1 -0
- package/dist/types/forge/api.js +2 -0
- package/dist/types/forge/api.js.map +1 -0
- package/dist/types/forge/releases.d.ts +98 -0
- package/dist/types/forge/releases.d.ts.map +1 -0
- package/dist/types/forge/releases.js +2 -0
- package/dist/types/forge/releases.js.map +1 -0
- package/dist/types/forge/social_forks.d.ts +51 -0
- package/dist/types/forge/social_forks.d.ts.map +1 -0
- package/dist/types/forge/social_forks.js +2 -0
- package/dist/types/forge/social_forks.js.map +1 -0
- package/dist/types/forge/workflows.d.ts +332 -0
- package/dist/types/forge/workflows.d.ts.map +1 -0
- package/dist/types/forge/workflows.js +2 -0
- package/dist/types/forge/workflows.js.map +1 -0
- package/dist/types/forge.d.ts +5 -475
- package/dist/types/forge.d.ts.map +1 -1
- package/dist/types/host/archive.d.ts.map +1 -1
- package/dist/types/host/options.d.ts.map +1 -1
- package/dist/types/host/service.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +37 -8
- package/dist/core/actions_runner.d.ts.map +0 -1
- package/dist/core/actions_runner.js +0 -414
- package/dist/core/actions_runner.js.map +0 -1
- package/dist/core/actions_workflows.d.ts.map +0 -1
- package/dist/core/actions_workflows.js.map +0 -1
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { GitHostError } from "../../errors.js";
|
|
2
|
+
import { text } from "../../utils/text.js";
|
|
3
|
+
const EXPRESSION_WRAPPER = /^\s*\$\{\{\s*([\s\S]*?)\s*\}\}\s*$/;
|
|
4
|
+
const SUPPORTED_FUNCTIONS = new Set(["always", "cancelled", "failure", "success"]);
|
|
5
|
+
function unwrapExpression(input) {
|
|
6
|
+
const raw = text(input);
|
|
7
|
+
const match = raw.match(EXPRESSION_WRAPPER);
|
|
8
|
+
return match ? text(match[1]) : raw;
|
|
9
|
+
}
|
|
10
|
+
function isIdentifierStart(char) {
|
|
11
|
+
return /[A-Za-z_]/.test(char);
|
|
12
|
+
}
|
|
13
|
+
function isIdentifierChar(char) {
|
|
14
|
+
return /[A-Za-z0-9_-]/.test(char);
|
|
15
|
+
}
|
|
16
|
+
function tokenizeExpression(input) {
|
|
17
|
+
const source = unwrapExpression(input);
|
|
18
|
+
const tokens = [];
|
|
19
|
+
let index = 0;
|
|
20
|
+
while (index < source.length) {
|
|
21
|
+
const char = source[index] || "";
|
|
22
|
+
if (/\s/.test(char)) {
|
|
23
|
+
index += 1;
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (char === "(") {
|
|
27
|
+
tokens.push({ type: "lparen" });
|
|
28
|
+
index += 1;
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if (char === ")") {
|
|
32
|
+
tokens.push({ type: "rparen" });
|
|
33
|
+
index += 1;
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (char === ".") {
|
|
37
|
+
tokens.push({ type: "dot" });
|
|
38
|
+
index += 1;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (char === "!" && source[index + 1] === "=") {
|
|
42
|
+
tokens.push({ type: "neq" });
|
|
43
|
+
index += 2;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (char === "=" && source[index + 1] === "=") {
|
|
47
|
+
tokens.push({ type: "eq" });
|
|
48
|
+
index += 2;
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (char === "&" && source[index + 1] === "&") {
|
|
52
|
+
tokens.push({ type: "and" });
|
|
53
|
+
index += 2;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (char === "|" && source[index + 1] === "|") {
|
|
57
|
+
tokens.push({ type: "or" });
|
|
58
|
+
index += 2;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (char === "!") {
|
|
62
|
+
tokens.push({ type: "not" });
|
|
63
|
+
index += 1;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (char === "'" || char === "\"") {
|
|
67
|
+
const quote = char;
|
|
68
|
+
let value = "";
|
|
69
|
+
index += 1;
|
|
70
|
+
while (index < source.length) {
|
|
71
|
+
const current = source[index] || "";
|
|
72
|
+
if (current === "\\") {
|
|
73
|
+
value += source[index + 1] || "";
|
|
74
|
+
index += 2;
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (current === quote)
|
|
78
|
+
break;
|
|
79
|
+
value += current;
|
|
80
|
+
index += 1;
|
|
81
|
+
}
|
|
82
|
+
if ((source[index] || "") !== quote) {
|
|
83
|
+
throw new GitHostError("forge_invalid_workflow_definition", "Unterminated workflow expression string literal.", {
|
|
84
|
+
expression: input,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
index += 1;
|
|
88
|
+
tokens.push({ type: "string", value });
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
if (isIdentifierStart(char)) {
|
|
92
|
+
let value = char;
|
|
93
|
+
index += 1;
|
|
94
|
+
while (index < source.length && isIdentifierChar(source[index] || "")) {
|
|
95
|
+
value += source[index] || "";
|
|
96
|
+
index += 1;
|
|
97
|
+
}
|
|
98
|
+
if (value === "true") {
|
|
99
|
+
tokens.push({ type: "boolean", value: true });
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
if (value === "false") {
|
|
103
|
+
tokens.push({ type: "boolean", value: false });
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
tokens.push({ type: "identifier", value });
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
throw new GitHostError("forge_invalid_workflow_definition", `Unsupported token "${char}" in workflow expression.`, {
|
|
110
|
+
expression: input,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
tokens.push({ type: "eof" });
|
|
114
|
+
return tokens;
|
|
115
|
+
}
|
|
116
|
+
function readPathValue(context, pathSegments) {
|
|
117
|
+
let current = context;
|
|
118
|
+
for (const segment of pathSegments) {
|
|
119
|
+
if (!current || typeof current !== "object")
|
|
120
|
+
return undefined;
|
|
121
|
+
current = current[segment];
|
|
122
|
+
}
|
|
123
|
+
return current;
|
|
124
|
+
}
|
|
125
|
+
function booleanValue(input) {
|
|
126
|
+
if (typeof input === "boolean")
|
|
127
|
+
return input;
|
|
128
|
+
if (typeof input === "number")
|
|
129
|
+
return input !== 0;
|
|
130
|
+
if (typeof input === "string") {
|
|
131
|
+
const value = input.trim().toLowerCase();
|
|
132
|
+
if (!value)
|
|
133
|
+
return false;
|
|
134
|
+
if (value === "false" || value === "0" || value === "null" || value === "undefined")
|
|
135
|
+
return false;
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
return Boolean(input);
|
|
139
|
+
}
|
|
140
|
+
function coerceComparisonValue(input) {
|
|
141
|
+
if (typeof input === "boolean" || typeof input === "number" || typeof input === "string")
|
|
142
|
+
return input;
|
|
143
|
+
if (input == null)
|
|
144
|
+
return "";
|
|
145
|
+
return JSON.stringify(input);
|
|
146
|
+
}
|
|
147
|
+
function createExpressionReader(tokens, context) {
|
|
148
|
+
let index = 0;
|
|
149
|
+
function current() {
|
|
150
|
+
return tokens[index] || { type: "eof" };
|
|
151
|
+
}
|
|
152
|
+
function advance() {
|
|
153
|
+
index += 1;
|
|
154
|
+
}
|
|
155
|
+
function expect(type) {
|
|
156
|
+
if (current().type !== type) {
|
|
157
|
+
throw new GitHostError("forge_invalid_workflow_definition", `Unexpected token "${current().type}" in workflow expression.`, {
|
|
158
|
+
expected: type,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
advance();
|
|
162
|
+
}
|
|
163
|
+
function parseValue() {
|
|
164
|
+
const token = current();
|
|
165
|
+
if (token.type === "boolean") {
|
|
166
|
+
advance();
|
|
167
|
+
return token.value;
|
|
168
|
+
}
|
|
169
|
+
if (token.type === "string") {
|
|
170
|
+
advance();
|
|
171
|
+
return token.value;
|
|
172
|
+
}
|
|
173
|
+
if (token.type === "identifier") {
|
|
174
|
+
const first = token.value;
|
|
175
|
+
advance();
|
|
176
|
+
if (current().type === "lparen") {
|
|
177
|
+
if (!SUPPORTED_FUNCTIONS.has(first)) {
|
|
178
|
+
throw new GitHostError("forge_invalid_workflow_definition", `Unsupported workflow expression function "${first}()".`, {
|
|
179
|
+
function: first,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
advance();
|
|
183
|
+
expect("rparen");
|
|
184
|
+
if (first === "always")
|
|
185
|
+
return true;
|
|
186
|
+
if (first === "success")
|
|
187
|
+
return !booleanValue(readPathValue(context, ["job", "cancelled"])) && text(readPathValue(context, ["job", "status"])) !== "failed";
|
|
188
|
+
if (first === "failure")
|
|
189
|
+
return text(readPathValue(context, ["job", "status"])) === "failed";
|
|
190
|
+
if (first === "cancelled")
|
|
191
|
+
return text(readPathValue(context, ["job", "status"])) === "cancelled";
|
|
192
|
+
}
|
|
193
|
+
const pathSegments = [first];
|
|
194
|
+
while (current().type === "dot") {
|
|
195
|
+
advance();
|
|
196
|
+
const nextToken = current();
|
|
197
|
+
if (nextToken.type !== "identifier") {
|
|
198
|
+
throw new GitHostError("forge_invalid_workflow_definition", "Invalid workflow expression path.", {});
|
|
199
|
+
}
|
|
200
|
+
pathSegments.push(nextToken.value);
|
|
201
|
+
advance();
|
|
202
|
+
}
|
|
203
|
+
return readPathValue(context, pathSegments);
|
|
204
|
+
}
|
|
205
|
+
if (token.type === "lparen") {
|
|
206
|
+
advance();
|
|
207
|
+
const value = parseOr();
|
|
208
|
+
expect("rparen");
|
|
209
|
+
return value;
|
|
210
|
+
}
|
|
211
|
+
throw new GitHostError("forge_invalid_workflow_definition", `Unexpected token "${token.type}" in workflow expression.`, {});
|
|
212
|
+
}
|
|
213
|
+
function parseUnary() {
|
|
214
|
+
if (current().type === "not") {
|
|
215
|
+
advance();
|
|
216
|
+
return !booleanValue(parseUnary());
|
|
217
|
+
}
|
|
218
|
+
return parseValue();
|
|
219
|
+
}
|
|
220
|
+
function parseEquality() {
|
|
221
|
+
let left = parseUnary();
|
|
222
|
+
while (current().type === "eq" || current().type === "neq") {
|
|
223
|
+
const operator = current().type;
|
|
224
|
+
advance();
|
|
225
|
+
const right = parseUnary();
|
|
226
|
+
const leftValue = coerceComparisonValue(left);
|
|
227
|
+
const rightValue = coerceComparisonValue(right);
|
|
228
|
+
left = operator === "eq" ? leftValue === rightValue : leftValue !== rightValue;
|
|
229
|
+
}
|
|
230
|
+
return left;
|
|
231
|
+
}
|
|
232
|
+
function parseAnd() {
|
|
233
|
+
let left = parseEquality();
|
|
234
|
+
while (current().type === "and") {
|
|
235
|
+
advance();
|
|
236
|
+
left = booleanValue(left) && booleanValue(parseEquality());
|
|
237
|
+
}
|
|
238
|
+
return left;
|
|
239
|
+
}
|
|
240
|
+
function parseOr() {
|
|
241
|
+
let left = parseAnd();
|
|
242
|
+
while (current().type === "or") {
|
|
243
|
+
advance();
|
|
244
|
+
left = booleanValue(left) || booleanValue(parseAnd());
|
|
245
|
+
}
|
|
246
|
+
return left;
|
|
247
|
+
}
|
|
248
|
+
return {
|
|
249
|
+
parse() {
|
|
250
|
+
const value = parseOr();
|
|
251
|
+
if (current().type !== "eof") {
|
|
252
|
+
throw new GitHostError("forge_invalid_workflow_definition", `Unexpected trailing token "${current().type}" in workflow expression.`, {});
|
|
253
|
+
}
|
|
254
|
+
return value;
|
|
255
|
+
},
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
function resolveWorkflowExpression(input, context) {
|
|
259
|
+
const tokens = tokenizeExpression(input);
|
|
260
|
+
return createExpressionReader(tokens, context).parse();
|
|
261
|
+
}
|
|
262
|
+
function resolveWorkflowString(input, context) {
|
|
263
|
+
return text(input).replace(/\$\{\{\s*([\s\S]*?)\s*\}\}/g, (_, expression) => {
|
|
264
|
+
const value = resolveWorkflowExpression(expression, context);
|
|
265
|
+
if (value == null)
|
|
266
|
+
return "";
|
|
267
|
+
if (typeof value === "boolean")
|
|
268
|
+
return value ? "true" : "false";
|
|
269
|
+
return String(value);
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
function resolveWorkflowBoolean(input, context, fallback = true) {
|
|
273
|
+
const raw = text(input);
|
|
274
|
+
if (!raw)
|
|
275
|
+
return fallback;
|
|
276
|
+
return booleanValue(resolveWorkflowExpression(raw, context));
|
|
277
|
+
}
|
|
278
|
+
export { booleanValue, resolveWorkflowBoolean, resolveWorkflowExpression, resolveWorkflowString, };
|
|
279
|
+
//# sourceMappingURL=expressions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/core/actions/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAyBrC,MAAM,kBAAkB,GAAG,oCAAoC,CAAC;AAChE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnF,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACtC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChC,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChC,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC;YACnB,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,CAAC;YACX,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjC,KAAK,IAAI,CAAC,CAAC;oBACX,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,KAAK,KAAK;oBAAE,MAAM;gBAC7B,KAAK,IAAI,OAAO,CAAC;gBACjB,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;gBACpC,MAAM,IAAI,YAAY,CAAC,mCAAmC,EAAE,kDAAkD,EAAE;oBAC9G,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAC;YACL,CAAC;YACD,KAAK,IAAI,CAAC,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACvC,SAAS;QACX,CAAC;QACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,KAAK,IAAI,CAAC,CAAC;YACX,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACtE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;YACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC/C,SAAS;YACX,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3C,SAAS;QACX,CAAC;QACD,MAAM,IAAI,YAAY,CAAC,mCAAmC,EAAE,sBAAsB,IAAI,2BAA2B,EAAE;YACjH,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,OAAkC,EAAE,YAAsB;IAC/E,IAAI,OAAO,GAAY,OAAO,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC9D,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,KAAK,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QAClG,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACvG,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAyB,EAAE,OAAkC;IAC3F,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,SAAS,OAAO;QACd,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAc,EAAE,CAAC;IACnD,CAAC;IAED,SAAS,OAAO;QACd,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,SAAS,MAAM,CAAC,IAA6B;QAC3C,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,YAAY,CAAC,mCAAmC,EAAE,qBAAqB,OAAO,EAAE,CAAC,IAAI,2BAA2B,EAAE;gBAC1H,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,SAAS,UAAU;QACjB,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,OAAO,EAAE,CAAC;YACV,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpC,MAAM,IAAI,YAAY,CAAC,mCAAmC,EAAE,6CAA6C,KAAK,MAAM,EAAE;wBACpH,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACjB,IAAI,KAAK,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBACpC,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;gBAC5J,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;gBAC7F,IAAI,KAAK,KAAK,WAAW;oBAAE,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC;YACpG,CAAC;YACD,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAChC,OAAO,EAAE,CAAC;gBACV,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC;gBAC5B,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACpC,MAAM,IAAI,YAAY,CAAC,mCAAmC,EAAE,mCAAmC,EAAE,EAAE,CAAC,CAAC;gBACvG,CAAC;gBACD,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,YAAY,CAAC,mCAAmC,EAAE,qBAAqB,KAAK,CAAC,IAAI,2BAA2B,EAAE,EAAE,CAAC,CAAC;IAC9H,CAAC;IAED,SAAS,UAAU;QACjB,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,aAAa;QACpB,IAAI,IAAI,GAAG,UAAU,EAAE,CAAC;QACxB,OAAO,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC3D,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC;QACjF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,QAAQ;QACf,IAAI,IAAI,GAAG,aAAa,EAAE,CAAC;QAC3B,OAAO,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO,EAAE,CAAC;YACV,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,OAAO;QACd,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QACtB,OAAO,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;YACV,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,KAAK;YACH,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;YACxB,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC7B,MAAM,IAAI,YAAY,CAAC,mCAAmC,EAAE,8BAA8B,OAAO,EAAE,CAAC,IAAI,2BAA2B,EAAE,EAAE,CAAC,CAAC;YAC3I,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAa,EAAE,OAAkC;IAClF,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,OAAkC;IAC9E,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAAC,EAAE,UAAkB,EAAE,EAAE;QAClF,MAAM,KAAK,GAAG,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7D,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc,EAAE,OAAkC,EAAE,QAAQ,GAAG,IAAI;IACjG,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC1B,OAAO,YAAY,CAAC,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,GACtB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ActionsRunnerExecution, ExecuteActionsRunnerInput, RunnerLaunch } from "./types.js";
|
|
2
|
+
declare function executeGoRunner(input: ExecuteActionsRunnerInput, launch: Extract<RunnerLaunch, {
|
|
3
|
+
kind: "go";
|
|
4
|
+
}>): ActionsRunnerExecution;
|
|
5
|
+
export { executeGoRunner };
|
|
6
|
+
//# sourceMappingURL=go_runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go_runner.d.ts","sourceRoot":"","sources":["../../../src/core/actions/go_runner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AAuFnH,iBAAS,eAAe,CACtB,KAAK,EAAE,yBAAyB,EAChC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,GAC5C,sBAAsB,CA0CxB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { GitHostError } from "../../errors.js";
|
|
3
|
+
import { normalizeRunnerInput, parseRunnerEvent, updateLastStep } from "./runner/protocol.js";
|
|
4
|
+
function createRunnerState() {
|
|
5
|
+
return {
|
|
6
|
+
lastStepIndex: -1,
|
|
7
|
+
lastStepName: "",
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function flushBufferedLine(input, line, state) {
|
|
11
|
+
const event = parseRunnerEvent(line);
|
|
12
|
+
updateLastStep(event, state);
|
|
13
|
+
return input.onEvent(event);
|
|
14
|
+
}
|
|
15
|
+
function createGoRunnerChild(input, launch) {
|
|
16
|
+
const child = spawn(launch.command, launch.args, {
|
|
17
|
+
cwd: launch.cwd,
|
|
18
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
19
|
+
});
|
|
20
|
+
child.stdin.write(JSON.stringify(normalizeRunnerInput(input)));
|
|
21
|
+
child.stdin.end();
|
|
22
|
+
return child;
|
|
23
|
+
}
|
|
24
|
+
function bindGoRunnerStdout(child, input, state) {
|
|
25
|
+
let stdoutBuffer = "";
|
|
26
|
+
let queue = Promise.resolve();
|
|
27
|
+
child.stdout.setEncoding("utf8");
|
|
28
|
+
child.stdout.on("data", (chunk) => {
|
|
29
|
+
stdoutBuffer = `${stdoutBuffer}${chunk}`.replace(/\r\n/g, "\n");
|
|
30
|
+
let separator = stdoutBuffer.indexOf("\n");
|
|
31
|
+
while (separator >= 0) {
|
|
32
|
+
const line = stdoutBuffer.slice(0, separator).trim();
|
|
33
|
+
stdoutBuffer = stdoutBuffer.slice(separator + 1);
|
|
34
|
+
if (line) {
|
|
35
|
+
queue = queue.then(() => flushBufferedLine(input, line, state));
|
|
36
|
+
}
|
|
37
|
+
separator = stdoutBuffer.indexOf("\n");
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
flushRemainder() {
|
|
42
|
+
const line = stdoutBuffer.trim();
|
|
43
|
+
if (line) {
|
|
44
|
+
queue = queue.then(() => flushBufferedLine(input, line, state));
|
|
45
|
+
}
|
|
46
|
+
return queue;
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function bindGoRunnerStderr(child, input) {
|
|
51
|
+
const stderrChunks = [];
|
|
52
|
+
child.stderr.setEncoding("utf8");
|
|
53
|
+
child.stderr.on("data", (chunk) => {
|
|
54
|
+
stderrChunks.push(chunk);
|
|
55
|
+
void input.onRunnerError?.(chunk);
|
|
56
|
+
});
|
|
57
|
+
return stderrChunks;
|
|
58
|
+
}
|
|
59
|
+
function resolveGoRunnerFailure(exitCode, cancelled, stderrChunks) {
|
|
60
|
+
if (exitCode === 0 || cancelled || stderrChunks.length === 0) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const message = stderrChunks.join("").trim();
|
|
64
|
+
return message
|
|
65
|
+
? new GitHostError("forge_actions_runner_failed", message, {
|
|
66
|
+
exitCode,
|
|
67
|
+
})
|
|
68
|
+
: null;
|
|
69
|
+
}
|
|
70
|
+
function executeGoRunner(input, launch) {
|
|
71
|
+
const child = createGoRunnerChild(input, launch);
|
|
72
|
+
const state = createRunnerState();
|
|
73
|
+
const stdout = bindGoRunnerStdout(child, input, state);
|
|
74
|
+
const stderrChunks = bindGoRunnerStderr(child, input);
|
|
75
|
+
const completed = new Promise((resolve, reject) => {
|
|
76
|
+
child.on("error", reject);
|
|
77
|
+
child.on("close", async (code, signal) => {
|
|
78
|
+
try {
|
|
79
|
+
await stdout.flushRemainder();
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
reject(error);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const exitCode = Number(code) || 0;
|
|
86
|
+
const cancelled = signal === "SIGTERM" || signal === "SIGINT" || exitCode === 130;
|
|
87
|
+
const failure = resolveGoRunnerFailure(exitCode, cancelled, stderrChunks);
|
|
88
|
+
if (failure) {
|
|
89
|
+
reject(failure);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
resolve({
|
|
93
|
+
cancelled,
|
|
94
|
+
exitCode,
|
|
95
|
+
lastStepIndex: state.lastStepIndex,
|
|
96
|
+
lastStepName: state.lastStepName,
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
return {
|
|
101
|
+
child,
|
|
102
|
+
completed,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
export { executeGoRunner };
|
|
106
|
+
//# sourceMappingURL=go_runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go_runner.js","sourceRoot":"","sources":["../../../src/core/actions/go_runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ChildProcess } from "node:child_process";
|
|
2
|
+
type RunShellCommandInput = {
|
|
3
|
+
command: string;
|
|
4
|
+
cwd: string;
|
|
5
|
+
env: NodeJS.ProcessEnv;
|
|
6
|
+
heartbeatIntervalMs: number;
|
|
7
|
+
onHeartbeat: () => void | Promise<void>;
|
|
8
|
+
onOutput: (stream: "stderr" | "stdout", chunk: string) => void | Promise<void>;
|
|
9
|
+
onSpawn?: (child: ChildProcess | null) => void;
|
|
10
|
+
shell: string;
|
|
11
|
+
};
|
|
12
|
+
type RunShellCommandResult = {
|
|
13
|
+
exitCode: number;
|
|
14
|
+
outputPreview: string;
|
|
15
|
+
};
|
|
16
|
+
declare function materializeJobWorkspace(input: {
|
|
17
|
+
commitHash: string;
|
|
18
|
+
repositoryPath: string;
|
|
19
|
+
workspacePath: string;
|
|
20
|
+
}): Promise<void>;
|
|
21
|
+
declare function runShellCommand(input: RunShellCommandInput): Promise<RunShellCommandResult>;
|
|
22
|
+
declare function setupRuntime(command: "bun" | "node", cwd: string): Promise<{
|
|
23
|
+
exitCode: number;
|
|
24
|
+
stderr: string;
|
|
25
|
+
stdout: string;
|
|
26
|
+
}>;
|
|
27
|
+
export { materializeJobWorkspace, runShellCommand, setupRuntime, };
|
|
28
|
+
//# sourceMappingURL=local_runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local_runner.d.ts","sourceRoot":"","sources":["../../../src/core/actions/local_runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAM9D,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AASF,iBAAe,uBAAuB,CAAC,KAAK,EAAE;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB,iBA0BA;AAED,iBAAe,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqC1F;AA4CD,iBAAe,YAAY,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM;;;;GAG/D;AAED,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,YAAY,GACb,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { spawn } from "node:child_process";
|
|
4
|
+
import { GitHostError } from "../../errors.js";
|
|
5
|
+
import { runGit } from "../run_git.js";
|
|
6
|
+
const OUTPUT_PREVIEW_LIMIT = 4000;
|
|
7
|
+
function appendPreview(current, chunk) {
|
|
8
|
+
const next = `${current}${chunk}`;
|
|
9
|
+
return next.length <= OUTPUT_PREVIEW_LIMIT ? next : next.slice(-OUTPUT_PREVIEW_LIMIT);
|
|
10
|
+
}
|
|
11
|
+
async function materializeJobWorkspace(input) {
|
|
12
|
+
fs.rmSync(input.workspacePath, { force: true, recursive: true });
|
|
13
|
+
fs.mkdirSync(path.dirname(input.workspacePath), { recursive: true });
|
|
14
|
+
const clone = await runGit(["clone", "--quiet", "--no-checkout", input.repositoryPath, input.workspacePath], {
|
|
15
|
+
cwd: path.dirname(input.workspacePath),
|
|
16
|
+
});
|
|
17
|
+
if (!clone.ok) {
|
|
18
|
+
throw new GitHostError("forge_actions_runner_failed", "Failed to clone repository snapshot for workflow job.", {
|
|
19
|
+
repositoryPath: input.repositoryPath,
|
|
20
|
+
stderr: clone.stderr,
|
|
21
|
+
stdout: clone.stdout,
|
|
22
|
+
workspacePath: input.workspacePath,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
const checkout = await runGit(["checkout", "--detach", input.commitHash], {
|
|
26
|
+
cwd: input.workspacePath,
|
|
27
|
+
});
|
|
28
|
+
if (!checkout.ok) {
|
|
29
|
+
throw new GitHostError("forge_actions_runner_failed", "Failed to checkout workflow job snapshot.", {
|
|
30
|
+
commitHash: input.commitHash,
|
|
31
|
+
repositoryPath: input.repositoryPath,
|
|
32
|
+
stderr: checkout.stderr,
|
|
33
|
+
stdout: checkout.stdout,
|
|
34
|
+
workspacePath: input.workspacePath,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async function runShellCommand(input) {
|
|
39
|
+
let outputPreview = "";
|
|
40
|
+
const exitCode = await new Promise((resolve, reject) => {
|
|
41
|
+
const child = spawn(input.shell, ["-lc", input.command], {
|
|
42
|
+
cwd: input.cwd,
|
|
43
|
+
env: input.env,
|
|
44
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
45
|
+
});
|
|
46
|
+
input.onSpawn?.(child);
|
|
47
|
+
const heartbeat = setInterval(() => {
|
|
48
|
+
void input.onHeartbeat();
|
|
49
|
+
}, Math.max(250, input.heartbeatIntervalMs));
|
|
50
|
+
child.stdout?.setEncoding("utf8");
|
|
51
|
+
child.stdout?.on("data", (chunk) => {
|
|
52
|
+
outputPreview = appendPreview(outputPreview, chunk);
|
|
53
|
+
void input.onOutput("stdout", chunk);
|
|
54
|
+
});
|
|
55
|
+
child.stderr?.setEncoding("utf8");
|
|
56
|
+
child.stderr?.on("data", (chunk) => {
|
|
57
|
+
outputPreview = appendPreview(outputPreview, chunk);
|
|
58
|
+
void input.onOutput("stderr", chunk);
|
|
59
|
+
});
|
|
60
|
+
child.on("error", (error) => {
|
|
61
|
+
clearInterval(heartbeat);
|
|
62
|
+
input.onSpawn?.(null);
|
|
63
|
+
reject(error);
|
|
64
|
+
});
|
|
65
|
+
child.on("close", (code, signal) => {
|
|
66
|
+
clearInterval(heartbeat);
|
|
67
|
+
input.onSpawn?.(null);
|
|
68
|
+
resolve(typeof code === "number" ? code : (signal === "SIGTERM" || signal === "SIGINT" ? 130 : 1));
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
return {
|
|
72
|
+
exitCode,
|
|
73
|
+
outputPreview,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
async function assertBinaryAvailable(command, cwd) {
|
|
77
|
+
const res = await runGit(["--version"], { cwd });
|
|
78
|
+
void res;
|
|
79
|
+
const shell = spawn("bash", ["-lc", `command -v ${command}`], {
|
|
80
|
+
cwd,
|
|
81
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
82
|
+
});
|
|
83
|
+
const code = await new Promise((resolve) => {
|
|
84
|
+
shell.on("close", (status) => resolve(typeof status === "number" ? status : 1));
|
|
85
|
+
});
|
|
86
|
+
if (code !== 0) {
|
|
87
|
+
throw new GitHostError("forge_actions_runner_failed", `Required runtime "${command}" is not available on the local runner.`, {
|
|
88
|
+
command,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async function readCommandOutput(command, cwd) {
|
|
93
|
+
const child = spawn("bash", ["-lc", command], {
|
|
94
|
+
cwd,
|
|
95
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
96
|
+
});
|
|
97
|
+
let stdout = "";
|
|
98
|
+
let stderr = "";
|
|
99
|
+
child.stdout?.setEncoding("utf8");
|
|
100
|
+
child.stderr?.setEncoding("utf8");
|
|
101
|
+
child.stdout?.on("data", (chunk) => {
|
|
102
|
+
stdout += chunk;
|
|
103
|
+
});
|
|
104
|
+
child.stderr?.on("data", (chunk) => {
|
|
105
|
+
stderr += chunk;
|
|
106
|
+
});
|
|
107
|
+
const exitCode = await new Promise((resolve) => {
|
|
108
|
+
child.on("close", (status) => resolve(typeof status === "number" ? status : 1));
|
|
109
|
+
});
|
|
110
|
+
return {
|
|
111
|
+
exitCode,
|
|
112
|
+
stderr,
|
|
113
|
+
stdout,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
async function setupRuntime(command, cwd) {
|
|
117
|
+
await assertBinaryAvailable(command, cwd);
|
|
118
|
+
return await readCommandOutput(`${command} --version`, cwd);
|
|
119
|
+
}
|
|
120
|
+
export { materializeJobWorkspace, runShellCommand, setupRuntime, };
|
|
121
|
+
//# sourceMappingURL=local_runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local_runner.js","sourceRoot":"","sources":["../../../src/core/actions/local_runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node_runner.d.ts","sourceRoot":"","sources":["../../../src/core/actions/node_runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,sBAAsB,EAEtB,yBAAyB,EAE1B,MAAM,YAAY,CAAC;AA6LpB,iBAAS,iBAAiB,CAAC,KAAK,EAAE,yBAAyB,GAAG,sBAAsB,CAgDnF;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|