@overkill-dev/run 0.0.48 → 0.0.50
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/engine/case-execution.d.ts +1 -0
- package/engine/case-execution.d.ts.map +1 -1
- package/engine/case-execution.js +19 -13
- package/engine/case-execution.js.map +1 -1
- package/engine/execution-async-leak-policy.d.ts.map +1 -1
- package/engine/execution-async-leak-policy.js +2 -1
- package/engine/execution-async-leak-policy.js.map +1 -1
- package/engine/execution-options.d.ts +4 -1
- package/engine/execution-options.d.ts.map +1 -1
- package/engine/execution-options.js +18 -10
- package/engine/execution-options.js.map +1 -1
- package/engine/execution-resource-tracked-cases.js +17 -12
- package/engine/execution-resource-tracked-cases.js.map +1 -1
- package/engine/execution-result.js +7 -2
- package/engine/execution-result.js.map +1 -1
- package/engine/execution-supervision.d.ts.map +1 -1
- package/engine/execution-supervision.js +18 -13
- package/engine/execution-supervision.js.map +1 -1
- package/engine/execution-test-plan-cases.js +214 -0
- package/engine/execution-test-plan-cases.js.map +1 -0
- package/engine/execution-test-plan-resource-usage.js +14 -0
- package/engine/execution-test-plan-resource-usage.js.map +1 -0
- package/engine/execution.d.ts.map +1 -1
- package/engine/execution.js +14 -218
- package/engine/execution.js.map +1 -1
- package/engine/identity.d.ts +3 -2
- package/engine/identity.d.ts.map +1 -1
- package/engine/identity.js +9 -6
- package/engine/identity.js.map +1 -1
- package/engine/reporter-dispatcher.d.ts +1 -0
- package/engine/reporter-dispatcher.d.ts.map +1 -1
- package/engine/reporter-dispatcher.js +53 -19
- package/engine/reporter-dispatcher.js.map +1 -1
- package/engine/reporter-error-delivery-tracking.js +12 -1
- package/engine/reporter-error-delivery-tracking.js.map +1 -1
- package/engine/reporter-managed-output.js +24 -3
- package/engine/reporter-managed-output.js.map +1 -1
- package/engine/reporter-output-scope.js +60 -0
- package/engine/reporter-output-scope.js.map +1 -0
- package/engine/run-result.d.ts +5 -0
- package/engine/run-result.d.ts.map +1 -1
- package/engine/run-result.js +16 -0
- package/engine/run-result.js.map +1 -1
- package/engine/runner-error-reporting.js +29 -0
- package/engine/runner-error-reporting.js.map +1 -0
- package/package.json +4 -2
- package/packages/engine/engine.entry-point.d.ts +1 -0
- package/packages/engine/engine.entry-point.d.ts.map +1 -1
- package/packages/engine/engine.entry-point.js.map +1 -1
- package/reporters/line-reporter.js +2 -1
- package/reporters/line-reporter.js.map +1 -1
- package/resources/resources.d.ts +22 -12
- package/resources/resources.d.ts.map +1 -1
- package/resources/resources.js +5 -1
- package/resources/resources.js.map +1 -1
- package/resources/runtime-matrix-definition.d.ts +15 -1
- package/resources/runtime-matrix-definition.d.ts.map +1 -1
- package/resources/runtime-matrix-definition.js +5 -0
- package/resources/runtime-matrix-definition.js.map +1 -1
- package/run/capability-policy.js +9 -0
- package/run/capability-policy.js.map +1 -1
- package/run/collected-run-plan.js +4 -1
- package/run/collected-run-plan.js.map +1 -1
- package/run/command-line-command.d.ts +0 -1
- package/run/command-line-command.d.ts.map +1 -1
- package/run/command-line-command.js +40 -20
- package/run/command-line-command.js.map +1 -1
- package/run/command-line-runner.d.ts.map +1 -1
- package/run/command-line-runner.js +2 -2
- package/run/command-line-runner.js.map +1 -1
- package/run/duration-history.d.ts +26 -0
- package/run/duration-history.d.ts.map +1 -0
- package/run/duration-history.js +344 -0
- package/run/duration-history.js.map +1 -0
- package/run/node-worker-pool-factory.js +31 -0
- package/run/node-worker-pool-factory.js.map +1 -1
- package/run/resource-lifecycle-composition.d.ts +1 -1
- package/run/resource-lifecycle-composition.d.ts.map +1 -1
- package/run/resource-lifecycle-composition.js +38 -12
- package/run/resource-lifecycle-composition.js.map +1 -1
- package/run/resource-lifecycle-state.d.ts +1 -0
- package/run/resource-lifecycle-state.d.ts.map +1 -1
- package/run/resource-lifecycle-state.js.map +1 -1
- package/run/resource-lifecycle.js +11 -0
- package/run/resource-lifecycle.js.map +1 -1
- package/run/run-collected-resolution.js +38 -21
- package/run/run-collected-resolution.js.map +1 -1
- package/run/run-collection-error-result.js +39 -20
- package/run/run-collection-error-result.js.map +1 -1
- package/run/run-config-schema.d.ts +3 -3
- package/run/run-config-schema.d.ts.map +1 -1
- package/run/run-config-schema.js +1 -0
- package/run/run-config-schema.js.map +1 -1
- package/run/run-facts.js +1 -0
- package/run/run-facts.js.map +1 -1
- package/run/run-if-main-facts.js +1 -0
- package/run/run-if-main-facts.js.map +1 -1
- package/run/run-local-resolution.js +1 -0
- package/run/run-local-resolution.js.map +1 -1
- package/run/run-orchestrator-dependencies.d.ts +2 -0
- package/run/run-orchestrator-dependencies.d.ts.map +1 -1
- package/run/run-orchestrator.d.ts.map +1 -1
- package/run/run-orchestrator.js +2 -1
- package/run/run-orchestrator.js.map +1 -1
- package/run/run-support.js +13 -0
- package/run/run-support.js.map +1 -1
- package/run/run-types.d.ts +27 -2
- package/run/run-types.d.ts.map +1 -1
- package/run/run-types.js.map +1 -1
- package/run/run.js +41 -5
- package/run/run.js.map +1 -1
- package/run/runtime-matrix-expansion.js +62 -34
- package/run/runtime-matrix-expansion.js.map +1 -1
- package/run/supervised-run-runtime.js +24 -18
- package/run/supervised-run-runtime.js.map +1 -1
- package/run/supervised-run-state.d.ts +7 -3
- package/run/supervised-run-state.d.ts.map +1 -1
- package/run/supervised-run-state.js +8 -7
- package/run/supervised-run-state.js.map +1 -1
- package/run/supervised-run.js +18 -8
- package/run/supervised-run.js.map +1 -1
- package/run/work-unit-identity.js +8 -5
- package/run/work-unit-identity.js.map +1 -1
- package/run/work-unit-planning.js +0 -31
- package/run/work-unit-planning.js.map +1 -1
- package/run/work-unit-resource-constraints.js +37 -11
- package/run/work-unit-resource-constraints.js.map +1 -1
- package/run/worker-pool-execution.js +6 -6
- package/run/worker-pool-execution.js.map +1 -1
- package/run/worker-pool-lanes.js +21 -16
- package/run/worker-pool-lanes.js.map +1 -1
- package/run/worker-pool-lifecycle-lanes.js +9 -9
- package/run/worker-pool-lifecycle-lanes.js.map +1 -1
- package/run/worker-pool-placement-planning.js +44 -0
- package/run/worker-pool-placement-planning.js.map +1 -0
- package/run/worker-pool-results.js +6 -17
- package/run/worker-pool-results.js.map +1 -1
- package/run/worker-pool-run.js +19 -8
- package/run/worker-pool-run.js.map +1 -1
- package/run/worker-pool-runtime.js +2 -1
- package/run/worker-pool-runtime.js.map +1 -1
- package/sbom.cdx.json +4 -4
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { RunResult } from '../engine/run-result.ts';
|
|
2
|
+
import type { DurationHistoryInput, DurationHistoryObservation, ResolvedRun, WorkId, WorkUnit } from './run-types.ts';
|
|
3
|
+
declare const indexVersion = 1;
|
|
4
|
+
export type DurationHistoryIndex = {
|
|
5
|
+
readonly entries: readonly DurationHistoryEntry[];
|
|
6
|
+
readonly updatedAt: string;
|
|
7
|
+
readonly version: typeof indexVersion;
|
|
8
|
+
};
|
|
9
|
+
type DurationHistoryEntry = {
|
|
10
|
+
readonly observations: readonly DurationHistoryObservation[];
|
|
11
|
+
readonly work: WorkId;
|
|
12
|
+
};
|
|
13
|
+
export type DurationHistoryPlacement = {
|
|
14
|
+
readonly facts: DurationHistoryInput | null;
|
|
15
|
+
readonly unitDuration: ((unit: WorkUnit) => number) | null;
|
|
16
|
+
};
|
|
17
|
+
export type DurationHistoryStore = {
|
|
18
|
+
readonly read: (filePath: string) => Promise<string | null>;
|
|
19
|
+
readonly write: (filePath: string, content: string) => Promise<void>;
|
|
20
|
+
};
|
|
21
|
+
export declare function readDurationHistoryIndex(store: DurationHistoryStore, projectRoot: string, runtimeStateDir: string): Promise<DurationHistoryIndex | null>;
|
|
22
|
+
export declare function selectDurationHistoryPlacement(units: readonly WorkUnit[], index: DurationHistoryIndex | null, nowMilliseconds: number): DurationHistoryPlacement;
|
|
23
|
+
export declare function mergeDurationHistoryIndex(index: DurationHistoryIndex | null, observations: readonly DurationHistoryEntry[], updatedAt: string): DurationHistoryIndex;
|
|
24
|
+
export declare function resultWithUpdatedDurationHistory(store: DurationHistoryStore, resolvedRun: ResolvedRun, result: RunResult, completedAtMilliseconds: number): Promise<RunResult>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=duration-history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration-history.d.ts","sourceRoot":"","sources":["../../../../source/run/duration-history.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA8B,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAErF,OAAO,KAAK,EACR,oBAAoB,EACpB,0BAA0B,EAE1B,WAAW,EACX,MAAM,EACN,QAAQ,EACX,MAAM,gBAAgB,CAAC;AAExB,QAAA,MAAM,YAAY,IAAI,CAAC;AAgBvB,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,YAAY,CAAC;CACzC,CAAC;AAEF,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,YAAY,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB,CAAC;AAIF,MAAM,MAAM,wBAAwB,GAAG;IACnC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE,CAAC;AAkIF,wBAAsB,wBAAwB,CAC1C,KAAK,EAAE,oBAAoB,EAC3B,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,GACxB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAKtC;AAwJD,wBAAgB,8BAA8B,CAC1C,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAClC,eAAe,EAAE,MAAM,GACxB,wBAAwB,CAkC1B;AA6CD,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAClC,YAAY,EAAE,SAAS,oBAAoB,EAAE,EAC7C,SAAS,EAAE,MAAM,GAClB,oBAAoB,CAuBtB;AAoBD,wBAAsB,gCAAgC,CAClD,KAAK,EAAE,oBAAoB,EAC3B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,SAAS,EACjB,uBAAuB,EAAE,MAAM,GAChC,OAAO,CAAC,SAAS,CAAC,CAyBpB"}
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { RunCollectionError } from "./run-errors.js";
|
|
4
|
+
const indexVersion = 1;
|
|
5
|
+
const maximumObservationCount = 8;
|
|
6
|
+
const freshnessDays = 30;
|
|
7
|
+
const hoursPerDay = 24;
|
|
8
|
+
const minutesPerHour = 60;
|
|
9
|
+
const secondsPerMinute = 60;
|
|
10
|
+
const millisecondsPerSecond = 1000;
|
|
11
|
+
const freshnessMilliseconds = freshnessDays *
|
|
12
|
+
hoursPerDay *
|
|
13
|
+
minutesPerHour *
|
|
14
|
+
secondsPerMinute *
|
|
15
|
+
millisecondsPerSecond;
|
|
16
|
+
const minimumCoverageRatio = 0.5;
|
|
17
|
+
const evenSampleDivisor = 2;
|
|
18
|
+
const durationHistoryPathParts = ['duration-history', 'work-durations.json'];
|
|
19
|
+
const stringRecordSchema = z.record(z.string(), z.string()).readonly();
|
|
20
|
+
const caseIdSchema = z
|
|
21
|
+
.strictObject({
|
|
22
|
+
file: z.string().nullable(),
|
|
23
|
+
params: z.string().nullable(),
|
|
24
|
+
suite: z.array(z.string()).readonly(),
|
|
25
|
+
title: z.string()
|
|
26
|
+
})
|
|
27
|
+
.readonly();
|
|
28
|
+
const runtimeIdSchema = z
|
|
29
|
+
.strictObject({
|
|
30
|
+
dimensions: stringRecordSchema,
|
|
31
|
+
name: z.string(),
|
|
32
|
+
variantId: z.string().nullable()
|
|
33
|
+
})
|
|
34
|
+
.readonly();
|
|
35
|
+
const workloadIdSchema = z
|
|
36
|
+
.strictObject({
|
|
37
|
+
name: z.string(),
|
|
38
|
+
params: stringRecordSchema
|
|
39
|
+
})
|
|
40
|
+
.readonly();
|
|
41
|
+
const workIdSchema = z
|
|
42
|
+
.strictObject({
|
|
43
|
+
case: caseIdSchema,
|
|
44
|
+
runtimes: z.array(runtimeIdSchema).readonly(),
|
|
45
|
+
workload: workloadIdSchema.nullable()
|
|
46
|
+
})
|
|
47
|
+
.readonly();
|
|
48
|
+
const metadataSchema = z
|
|
49
|
+
.strictObject({
|
|
50
|
+
processModel: z.union([
|
|
51
|
+
z.literal('in-process'),
|
|
52
|
+
z.literal('supervised-process'),
|
|
53
|
+
z.literal('worker-pool')
|
|
54
|
+
]),
|
|
55
|
+
profile: z.string(),
|
|
56
|
+
scheduling: z.union([z.literal('concurrent'), z.literal('serial')]),
|
|
57
|
+
testFamily: z.union([z.literal('integration'), z.literal('microtest')]),
|
|
58
|
+
workerLifecycle: z.union([z.literal('fresh-worker-per-unit'), z.literal('reuse')]).nullable()
|
|
59
|
+
})
|
|
60
|
+
.readonly();
|
|
61
|
+
const observationSchema = z
|
|
62
|
+
.strictObject({
|
|
63
|
+
durationMilliseconds: z.number().check(z.nonnegative()),
|
|
64
|
+
metadata: metadataSchema,
|
|
65
|
+
observedAt: z.iso.datetime({ offset: true })
|
|
66
|
+
})
|
|
67
|
+
.readonly();
|
|
68
|
+
const entrySchema = z
|
|
69
|
+
.strictObject({
|
|
70
|
+
observations: z.array(observationSchema).readonly(),
|
|
71
|
+
work: workIdSchema
|
|
72
|
+
})
|
|
73
|
+
.readonly();
|
|
74
|
+
const indexSchema = z
|
|
75
|
+
.strictObject({
|
|
76
|
+
entries: z.array(entrySchema).readonly(),
|
|
77
|
+
updatedAt: z.iso.datetime({ offset: true }),
|
|
78
|
+
version: z.literal(indexVersion)
|
|
79
|
+
})
|
|
80
|
+
.readonly();
|
|
81
|
+
function durationHistoryFilePath(projectRoot, runtimeStateDir) {
|
|
82
|
+
return path.join(path.isAbsolute(runtimeStateDir) ? runtimeStateDir : path.join(projectRoot, runtimeStateDir), ...durationHistoryPathParts);
|
|
83
|
+
}
|
|
84
|
+
function runtimeStateError(message, cause) {
|
|
85
|
+
const error = new RunCollectionError(message, { cause }, 'runtime-state');
|
|
86
|
+
return error;
|
|
87
|
+
}
|
|
88
|
+
function durationHistoryWriteError(cause) {
|
|
89
|
+
return {
|
|
90
|
+
attributedTo: null,
|
|
91
|
+
cause,
|
|
92
|
+
message: 'Failed to write duration history.',
|
|
93
|
+
subtype: 'runtime-state'
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function parseJson(content, filePath) {
|
|
97
|
+
try {
|
|
98
|
+
return JSON.parse(content);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
throw runtimeStateError(`Failed to parse duration history at ${filePath}.`, error);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function parseDurationHistoryIndex(content, filePath) {
|
|
105
|
+
const parsed = parseJson(content, filePath);
|
|
106
|
+
const result = indexSchema.safeParse(parsed);
|
|
107
|
+
if (!result.success) {
|
|
108
|
+
throw runtimeStateError(`Duration history at ${filePath} has an unsupported shape.`, result.error);
|
|
109
|
+
}
|
|
110
|
+
return result.data;
|
|
111
|
+
}
|
|
112
|
+
async function readDurationHistoryContent(store, filePath) {
|
|
113
|
+
try {
|
|
114
|
+
return await store.read(filePath);
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
throw runtimeStateError(`Failed to read duration history at ${filePath}.`, error);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export async function readDurationHistoryIndex(store, projectRoot, runtimeStateDir) {
|
|
121
|
+
const filePath = durationHistoryFilePath(projectRoot, runtimeStateDir);
|
|
122
|
+
const content = await readDurationHistoryContent(store, filePath);
|
|
123
|
+
return content === null ? null : parseDurationHistoryIndex(content, filePath);
|
|
124
|
+
}
|
|
125
|
+
function stableJson(value) {
|
|
126
|
+
if (value === null || typeof value !== 'object') {
|
|
127
|
+
return JSON.stringify(value);
|
|
128
|
+
}
|
|
129
|
+
if (Array.isArray(value)) {
|
|
130
|
+
return `[${value.map(stableJson).join(',')}]`;
|
|
131
|
+
}
|
|
132
|
+
return `{${Object
|
|
133
|
+
.keys(value)
|
|
134
|
+
.toSorted(function compareKey(left, right) {
|
|
135
|
+
return left.localeCompare(right);
|
|
136
|
+
})
|
|
137
|
+
.map(function toEntry(key) {
|
|
138
|
+
return `${JSON.stringify(key)}:${stableJson(Reflect.get(value, key))}`;
|
|
139
|
+
})
|
|
140
|
+
.join(',')}}`;
|
|
141
|
+
}
|
|
142
|
+
const workIdentityKey = stableJson;
|
|
143
|
+
function finiteDuration(durationMilliseconds) {
|
|
144
|
+
return Number.isFinite(durationMilliseconds) && durationMilliseconds >= 0;
|
|
145
|
+
}
|
|
146
|
+
function observedAtMilliseconds(observation) {
|
|
147
|
+
const observedAt = new Date(observation.observedAt);
|
|
148
|
+
return observedAt.getTime();
|
|
149
|
+
}
|
|
150
|
+
function isoTimestamp(milliseconds) {
|
|
151
|
+
const timestamp = new Date(milliseconds);
|
|
152
|
+
return timestamp.toISOString();
|
|
153
|
+
}
|
|
154
|
+
function freshObservation(nowMilliseconds) {
|
|
155
|
+
return function observationIsFresh(observation) {
|
|
156
|
+
const observedAt = observedAtMilliseconds(observation);
|
|
157
|
+
return Number.isFinite(observedAt) &&
|
|
158
|
+
observedAt <= nowMilliseconds &&
|
|
159
|
+
nowMilliseconds - observedAt <= freshnessMilliseconds &&
|
|
160
|
+
finiteDuration(observation.durationMilliseconds);
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
function sortedRecentObservations(observations) {
|
|
164
|
+
return observations
|
|
165
|
+
.toSorted(function compareObservedAt(left, right) {
|
|
166
|
+
const difference = observedAtMilliseconds(right) - observedAtMilliseconds(left);
|
|
167
|
+
return difference === 0
|
|
168
|
+
? left.durationMilliseconds - right.durationMilliseconds
|
|
169
|
+
: difference;
|
|
170
|
+
})
|
|
171
|
+
.slice(0, maximumObservationCount);
|
|
172
|
+
}
|
|
173
|
+
function median(values) {
|
|
174
|
+
const sorted = values.toSorted(function compareNumber(left, right) {
|
|
175
|
+
return left - right;
|
|
176
|
+
});
|
|
177
|
+
const middle = Math.floor(sorted.length / evenSampleDivisor);
|
|
178
|
+
const middleValue = sorted[middle];
|
|
179
|
+
if (middleValue === undefined) {
|
|
180
|
+
throw new Error('Median requires at least one value.');
|
|
181
|
+
}
|
|
182
|
+
if (sorted.length % evenSampleDivisor === 1) {
|
|
183
|
+
return middleValue;
|
|
184
|
+
}
|
|
185
|
+
return ((sorted[middle - 1] ?? middleValue) + middleValue) / evenSampleDivisor;
|
|
186
|
+
}
|
|
187
|
+
function sampleFromEntry(entry, nowMilliseconds) {
|
|
188
|
+
const observations = sortedRecentObservations(entry.observations.filter(freshObservation(nowMilliseconds)));
|
|
189
|
+
const latest = observations[0];
|
|
190
|
+
if (latest === undefined) {
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
durationMilliseconds: median(observations.map(function toDuration(observation) {
|
|
195
|
+
return observation.durationMilliseconds;
|
|
196
|
+
})),
|
|
197
|
+
observedAt: latest.observedAt,
|
|
198
|
+
observations,
|
|
199
|
+
sampleCount: observations.length,
|
|
200
|
+
work: entry.work
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
function sampleEntryFromEntry(entry, nowMilliseconds) {
|
|
204
|
+
const sample = sampleFromEntry(entry, nowMilliseconds);
|
|
205
|
+
return sample === null ? null : [workIdentityKey(entry.work), sample];
|
|
206
|
+
}
|
|
207
|
+
function isSampleEntry(entry) {
|
|
208
|
+
return entry !== null;
|
|
209
|
+
}
|
|
210
|
+
function samplesByWorkKey(index, nowMilliseconds) {
|
|
211
|
+
return new Map(index
|
|
212
|
+
.entries
|
|
213
|
+
.map(function toSampleEntry(entry) {
|
|
214
|
+
return sampleEntryFromEntry(entry, nowMilliseconds);
|
|
215
|
+
})
|
|
216
|
+
.filter(isSampleEntry));
|
|
217
|
+
}
|
|
218
|
+
function uniqueWork(units) {
|
|
219
|
+
const works = new Map();
|
|
220
|
+
for (const unit of units) {
|
|
221
|
+
for (const work of unit.work) {
|
|
222
|
+
works.set(workIdentityKey(work), work);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return Array.from(works.values());
|
|
226
|
+
}
|
|
227
|
+
function durationFacts(samples, nowMilliseconds) {
|
|
228
|
+
return {
|
|
229
|
+
generatedAt: isoTimestamp(nowMilliseconds),
|
|
230
|
+
samples: samples.toSorted(function compareSample(left, right) {
|
|
231
|
+
return workIdentityKey(left.work).localeCompare(workIdentityKey(right.work));
|
|
232
|
+
}),
|
|
233
|
+
source: 'runtime-state-index'
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
export function selectDurationHistoryPlacement(units, index, nowMilliseconds) {
|
|
237
|
+
if (index === null) {
|
|
238
|
+
return { facts: null, unitDuration: null };
|
|
239
|
+
}
|
|
240
|
+
const currentWork = uniqueWork(units);
|
|
241
|
+
const samples = samplesByWorkKey(index, nowMilliseconds);
|
|
242
|
+
const matchedSamples = currentWork.flatMap(function toSample(work) {
|
|
243
|
+
const sample = samples.get(workIdentityKey(work));
|
|
244
|
+
return sample === undefined ? [] : [sample];
|
|
245
|
+
});
|
|
246
|
+
if (currentWork.length === 0 || matchedSamples.length / currentWork.length < minimumCoverageRatio) {
|
|
247
|
+
return { facts: null, unitDuration: null };
|
|
248
|
+
}
|
|
249
|
+
const fallbackDuration = median(matchedSamples.map(function toDuration(sample) {
|
|
250
|
+
return sample.durationMilliseconds;
|
|
251
|
+
}));
|
|
252
|
+
const durationByWorkKey = new Map(matchedSamples.map(function toEntry(sample) {
|
|
253
|
+
return [workIdentityKey(sample.work), sample.durationMilliseconds];
|
|
254
|
+
}));
|
|
255
|
+
return {
|
|
256
|
+
facts: durationFacts(matchedSamples, nowMilliseconds),
|
|
257
|
+
unitDuration(unit) {
|
|
258
|
+
const workDuration = unit.work.reduce(function sumDuration(total, work) {
|
|
259
|
+
return total + (durationByWorkKey.get(workIdentityKey(work)) ?? fallbackDuration);
|
|
260
|
+
}, 0);
|
|
261
|
+
return workDuration * unit.resourceConstraints.capacityWeight;
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
function executionMetadata(resolvedRun) {
|
|
266
|
+
const { execution } = resolvedRun.facts;
|
|
267
|
+
return {
|
|
268
|
+
processModel: execution.processModel,
|
|
269
|
+
profile: execution.profile,
|
|
270
|
+
scheduling: execution.scheduling,
|
|
271
|
+
testFamily: execution.testFamily,
|
|
272
|
+
workerLifecycle: execution.processModel === 'worker-pool'
|
|
273
|
+
? execution.workerLifecycle
|
|
274
|
+
: null
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
function durationHistoryObservationsFromResult(resolvedRun, result, observedAt) {
|
|
278
|
+
const metadata = executionMetadata(resolvedRun);
|
|
279
|
+
return result.perTest.flatMap(function toObservation(testResult) {
|
|
280
|
+
if (!finiteDuration(testResult.wallTimeMs)) {
|
|
281
|
+
return [];
|
|
282
|
+
}
|
|
283
|
+
return [{
|
|
284
|
+
observations: [{
|
|
285
|
+
durationMilliseconds: testResult.wallTimeMs,
|
|
286
|
+
metadata,
|
|
287
|
+
observedAt
|
|
288
|
+
}],
|
|
289
|
+
work: testResult.workId
|
|
290
|
+
}];
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
function entriesByWorkKey(entries) {
|
|
294
|
+
return new Map(entries.map(function toEntry(entry) {
|
|
295
|
+
return [workIdentityKey(entry.work), entry];
|
|
296
|
+
}));
|
|
297
|
+
}
|
|
298
|
+
export function mergeDurationHistoryIndex(index, observations, updatedAt) {
|
|
299
|
+
const entries = new Map(entriesByWorkKey(index?.entries ?? []));
|
|
300
|
+
for (const observationEntry of observations) {
|
|
301
|
+
const key = workIdentityKey(observationEntry.work);
|
|
302
|
+
const existing = entries.get(key);
|
|
303
|
+
entries.set(key, {
|
|
304
|
+
observations: sortedRecentObservations([
|
|
305
|
+
...observationEntry.observations,
|
|
306
|
+
...existing?.observations ?? []
|
|
307
|
+
]),
|
|
308
|
+
work: observationEntry.work
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
return {
|
|
312
|
+
entries: Array.from(entries.values()).toSorted(function compareEntry(left, right) {
|
|
313
|
+
return workIdentityKey(left.work).localeCompare(workIdentityKey(right.work));
|
|
314
|
+
}),
|
|
315
|
+
updatedAt,
|
|
316
|
+
version: indexVersion
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
function serializeDurationHistoryIndex(index) {
|
|
320
|
+
return `${JSON.stringify(index, null, evenSampleDivisor)}\n`;
|
|
321
|
+
}
|
|
322
|
+
async function writeDurationHistoryIndex(store, resolvedRun, index) {
|
|
323
|
+
await store.write(durationHistoryFilePath(resolvedRun.facts.environment.projectRoot, resolvedRun.facts.environment.runtimeStateDir), serializeDurationHistoryIndex(index));
|
|
324
|
+
}
|
|
325
|
+
export async function resultWithUpdatedDurationHistory(store, resolvedRun, result, completedAtMilliseconds) {
|
|
326
|
+
const observedAt = isoTimestamp(completedAtMilliseconds);
|
|
327
|
+
const observations = durationHistoryObservationsFromResult(resolvedRun, result, observedAt);
|
|
328
|
+
if (observations.length === 0) {
|
|
329
|
+
return result;
|
|
330
|
+
}
|
|
331
|
+
try {
|
|
332
|
+
const currentIndex = await readDurationHistoryIndex(store, resolvedRun.facts.environment.projectRoot, resolvedRun.facts.environment.runtimeStateDir);
|
|
333
|
+
const nextIndex = mergeDurationHistoryIndex(currentIndex, observations, observedAt);
|
|
334
|
+
await writeDurationHistoryIndex(store, resolvedRun, nextIndex);
|
|
335
|
+
return result;
|
|
336
|
+
}
|
|
337
|
+
catch (error) {
|
|
338
|
+
return {
|
|
339
|
+
...result,
|
|
340
|
+
runnerErrors: [...result.runnerErrors, durationHistoryWriteError(error)]
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=duration-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration-history.js","sourceRoot":"","sources":["../../../../source/run/duration-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,36 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { mkdir, readFile, rename, writeFile } from 'node:fs/promises';
|
|
1
3
|
import { createHostedWorkerPool } from "./worker-pool-host-process.js";
|
|
2
4
|
import { createPool } from "./worker-pool-runtime.js";
|
|
5
|
+
function missingFile(error) {
|
|
6
|
+
return typeof error === 'object' &&
|
|
7
|
+
error !== null &&
|
|
8
|
+
Reflect.get(error, 'code') === 'ENOENT';
|
|
9
|
+
}
|
|
10
|
+
function temporaryFilePath(filePath) {
|
|
11
|
+
return `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
12
|
+
}
|
|
13
|
+
export function createNodeDurationHistoryStore() {
|
|
14
|
+
return {
|
|
15
|
+
async read(filePath) {
|
|
16
|
+
try {
|
|
17
|
+
return await readFile(filePath, 'utf8');
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
if (missingFile(error)) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
async write(filePath, content) {
|
|
27
|
+
await mkdir(path.dirname(filePath), { recursive: true });
|
|
28
|
+
const temporaryPath = temporaryFilePath(filePath);
|
|
29
|
+
await writeFile(temporaryPath, content);
|
|
30
|
+
await rename(temporaryPath, filePath);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
3
34
|
export function createWorkerPoolWithHostProcess(options, environmentVariables, startWorkerPoolHost) {
|
|
4
35
|
if (options.hostProcess.kind === 'direct') {
|
|
5
36
|
return createPool(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-worker-pool-factory.js","sourceRoot":"","sources":["../../../../source/run/node-worker-pool-factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-worker-pool-factory.js","sourceRoot":"","sources":["../../../../source/run/node-worker-pool-factory.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,SAAS,WAAW,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC5B,KAAK,KAAK,IAAI;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,QAAQ,CAAC;AAChD,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACvC,OAAO,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC1C,OAAO;QACH,KAAK,CAAC,IAAI,CAAC,QAAQ;YACf,IAAI,CAAC;gBACD,OAAO,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,OAAO,IAAI,CAAC;gBAChB,CAAC;gBAED,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO;YACzB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAElD,MAAM,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;KACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC3C,OAAkC,EAClC,oBAAwD,EACxD,mBAAiD;IAEjD,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,sBAAsB,CAAC;QAC1B,oBAAoB;QACpB,OAAO;QACP,mBAAmB;KACtB,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type RuntimeGraph, type RuntimeGraphContext, type AnyResourceDefinition, type ResourceContext, type RuntimeResourceMap as ResourceMap } from '../resources/resources.ts';
|
|
2
2
|
import { type WorkId } from '../engine/identity.ts';
|
|
3
3
|
import type { ResourceSession } from '../resources/resource-session.ts';
|
|
4
4
|
type DisposalContext = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-lifecycle-composition.d.ts","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"resource-lifecycle-composition.d.ts","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EAIpB,KAAK,kBAAkB,IAAI,WAAW,EACzC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAOxE,KAAK,eAAe,GAAG;IACnB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;CACnC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,GAAG,0BAA0B,CAAC;AAQ5F,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,YAAY,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;CAC1F,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;CAC5C,CAAC;AA6FF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,aAAa,EAAE,CAQrG;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,YAAY,EAAE,CAIhG;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,SAAS,aAAa,EAAE,GAAG,WAAW,CAQ7F;AA0BD,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,WAAW,EAChE,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,GACtC,eAAe,CAAC,SAAS,CAAC,CAc5B;AAsBD,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,YAAY,EAC5D,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,uBAAuB,GACjC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AA6D9B,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,MAAM,GAAE,MAAM,GAAG,IAAW,GAC7B,WAAW,CAmBb;AAqCD,wBAAgB,uBAAuB,CACnC,eAAe,EAAE,WAAW,EAC5B,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,EACrC,MAAM,GAAE,MAAM,GAAG,IAAW,GAC7B,uBAAuB,CAazB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,iBAAiB,CAc1F"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { runtimeGraphLeaves } from "../resources/resources.js";
|
|
1
2
|
import { runtimeIdentityKey } from "../engine/identity.js";
|
|
2
3
|
import { resourceWrapperLifecycleError } from "./resource-lifecycle-error.js";
|
|
3
4
|
function entries(record) {
|
|
@@ -10,21 +11,26 @@ function runtimeId(graph, runtime, variantId) {
|
|
|
10
11
|
variantId
|
|
11
12
|
};
|
|
12
13
|
}
|
|
14
|
+
function selectedRuntimeId(runtime, workId) {
|
|
15
|
+
return workId?.runtimes.find(function isSelectedRuntime(candidate) {
|
|
16
|
+
return candidate.name === runtime.name;
|
|
17
|
+
}) ?? null;
|
|
18
|
+
}
|
|
13
19
|
function assertMatrixWork(runtime, workId) {
|
|
14
|
-
const selectedRuntime =
|
|
15
|
-
if (
|
|
20
|
+
const selectedRuntime = selectedRuntimeId(runtime, workId);
|
|
21
|
+
if (selectedRuntime === null) {
|
|
16
22
|
throw resourceWrapperLifecycleError(`Runtime matrix "${runtime.name}" requires runner-managed execution.`, runtime);
|
|
17
23
|
}
|
|
18
|
-
return
|
|
24
|
+
return selectedRuntime;
|
|
19
25
|
}
|
|
20
26
|
function selectedMatrixVariant(runtime, workId) {
|
|
21
|
-
const
|
|
22
|
-
if (
|
|
23
|
-
throw resourceWrapperLifecycleError(`Runtime matrix "${runtime.name}" has no selected variant for this work item.`,
|
|
27
|
+
const selectedRuntime = assertMatrixWork(runtime, workId);
|
|
28
|
+
if (selectedRuntime.variantId === null) {
|
|
29
|
+
throw resourceWrapperLifecycleError(`Runtime matrix "${runtime.name}" has no selected variant for this work item.`, selectedRuntime);
|
|
24
30
|
}
|
|
25
|
-
const variant = runtime.variants[
|
|
31
|
+
const variant = runtime.variants[selectedRuntime.variantId];
|
|
26
32
|
if (variant === undefined) {
|
|
27
|
-
throw resourceWrapperLifecycleError(`Runtime matrix "${runtime.name}" has no variant "${
|
|
33
|
+
throw resourceWrapperLifecycleError(`Runtime matrix "${runtime.name}" has no variant "${selectedRuntime.variantId}".`, selectedRuntime);
|
|
28
34
|
}
|
|
29
35
|
return variant;
|
|
30
36
|
}
|
|
@@ -45,7 +51,11 @@ function resolveRuntimeGraph(runtime, workId) {
|
|
|
45
51
|
}
|
|
46
52
|
function resolvedRuntimeGraphs(steps, workId) {
|
|
47
53
|
return steps.flatMap(function stepRuntimeGraph(step) {
|
|
48
|
-
return step.kind === 'runtime'
|
|
54
|
+
return step.kind === 'runtime'
|
|
55
|
+
? runtimeGraphLeaves(step.runtime).map(function resolveRuntime(runtime) {
|
|
56
|
+
return resolveRuntimeGraph(runtime, workId);
|
|
57
|
+
})
|
|
58
|
+
: [];
|
|
49
59
|
});
|
|
50
60
|
}
|
|
51
61
|
export function directResourceEntries(steps) {
|
|
@@ -59,7 +69,7 @@ export function directResourceEntries(steps) {
|
|
|
59
69
|
}
|
|
60
70
|
export function stepRuntimeGraphs(steps) {
|
|
61
71
|
return steps.flatMap(function stepRuntimeGraph(step) {
|
|
62
|
-
return step.kind === 'runtime' ?
|
|
72
|
+
return step.kind === 'runtime' ? runtimeGraphLeaves(step.runtime) : [];
|
|
63
73
|
});
|
|
64
74
|
}
|
|
65
75
|
export function resourceMapFromEntries(resourceEntries) {
|
|
@@ -94,7 +104,21 @@ export function resourceContextForStep(resources, handles) {
|
|
|
94
104
|
}
|
|
95
105
|
throw resourceWrapperLifecycleError('Resource scope composition failed.', resources);
|
|
96
106
|
}
|
|
107
|
+
function composedRuntimeContextForStep(runtime, session, resolveRuntimeContext) {
|
|
108
|
+
const context = {};
|
|
109
|
+
for (const childRuntime of runtime.runtimes) {
|
|
110
|
+
context[childRuntime.name] = resolveRuntimeContext(childRuntime, session);
|
|
111
|
+
}
|
|
112
|
+
const frozenContext = Object.freeze(context);
|
|
113
|
+
if (isRuntimeContext(frozenContext, runtime)) {
|
|
114
|
+
return frozenContext;
|
|
115
|
+
}
|
|
116
|
+
throw resourceWrapperLifecycleError('Runtime scope composition failed.', runtime);
|
|
117
|
+
}
|
|
97
118
|
export function runtimeContextForStep(runtime, session) {
|
|
119
|
+
if (runtime.kind === 'composed-runtimes') {
|
|
120
|
+
return composedRuntimeContextForStep(runtime, session, runtimeContextForStep);
|
|
121
|
+
}
|
|
98
122
|
const context = session.runtimeContexts.get(runtime);
|
|
99
123
|
if (context === undefined || !isRuntimeContext(context, runtime)) {
|
|
100
124
|
throw resourceWrapperLifecycleError('Runtime scope composition failed.', runtime);
|
|
@@ -160,8 +184,10 @@ export function composedResourceSession(directResources, runtimes, session, work
|
|
|
160
184
|
return Object.freeze({
|
|
161
185
|
directResources: directResourceContext(directResources, session),
|
|
162
186
|
disposeOnce: session.disposeOnce,
|
|
163
|
-
runtimeContexts: runtimeContexts(runtimes.
|
|
164
|
-
return
|
|
187
|
+
runtimeContexts: runtimeContexts(runtimes.flatMap(function resolveRuntime(runtime) {
|
|
188
|
+
return runtimeGraphLeaves(runtime).map(function resolveLeafRuntime(leafRuntime) {
|
|
189
|
+
return resolveRuntimeGraph(leafRuntime, workId);
|
|
190
|
+
});
|
|
165
191
|
}), session)
|
|
166
192
|
});
|
|
167
193
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-lifecycle-composition.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-composition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resource-lifecycle-composition.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export type ManagedLifecycleState = {
|
|
|
6
6
|
readonly acquireComposedResources: (steps: readonly ResourceWrapperStep[], signal: AbortSignal, messages: LifecycleMessages) => Promise<ComposedResourceSession>;
|
|
7
7
|
readonly runCase: <Value>(testCase: TestPlanCase, run: () => Promise<Value>) => Promise<Value>;
|
|
8
8
|
readonly takeCaseErrors: (testCase: TestPlanCase) => readonly ManagedRunnerError[];
|
|
9
|
+
readonly takePendingRunErrors: () => readonly ManagedRunnerError[];
|
|
9
10
|
readonly takeRunErrors: () => readonly ManagedRunnerError[];
|
|
10
11
|
};
|
|
11
12
|
export declare function activeManagedLifecycle(): ManagedLifecycleState | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-lifecycle-state.d.ts","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EACR,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACtB,MAAM,qCAAqC,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,wBAAwB,EAAE,CAC/B,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,iBAAiB,KAC1B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/F,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,SAAS,kBAAkB,EAAE,CAAC;IACnF,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,kBAAkB,EAAE,CAAC;CAC/D,CAAC;AAKF,wBAAgB,sBAAsB,IAAI,qBAAqB,GAAG,IAAI,CAErE;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAC/C,SAAS,EAAE,qBAAqB,EAChC,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,KAAK,CAAC,CAEhB;AAED,wBAAgB,oBAAoB,IAAI,YAAY,GAAG,IAAI,CAE1D;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAC5C,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,KAAK,CAAC,CAEhB"}
|
|
1
|
+
{"version":3,"file":"resource-lifecycle-state.d.ts","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EACR,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACtB,MAAM,qCAAqC,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,wBAAwB,EAAE,CAC/B,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,iBAAiB,KAC1B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/F,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,SAAS,kBAAkB,EAAE,CAAC;IACnF,QAAQ,CAAC,oBAAoB,EAAE,MAAM,SAAS,kBAAkB,EAAE,CAAC;IACnE,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,kBAAkB,EAAE,CAAC;CAC/D,CAAC;AAKF,wBAAgB,sBAAsB,IAAI,qBAAqB,GAAG,IAAI,CAErE;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAC/C,SAAS,EAAE,qBAAqB,EAChC,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,KAAK,CAAC,CAEhB;AAED,wBAAgB,oBAAoB,IAAI,YAAY,GAAG,IAAI,CAE1D;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAC5C,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,KAAK,CAAC,CAEhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-lifecycle-state.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-lifecycle-state.js","sourceRoot":"","sources":["../../../../source/run/resource-lifecycle-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAuBrD,MAAM,eAAe,GAAG,IAAI,iBAAiB,EAAyB,CAAC;AACvE,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAgB,CAAC;AAE1D,MAAM,UAAU,sBAAsB;IAClC,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CACzC,SAAgC,EAChC,GAAyB;IAEzB,OAAO,MAAM,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,oBAAoB;IAChC,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,QAAsB,EACtB,GAAyB;IAEzB,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC"}
|