build-raptor 0.131.0 → 0.133.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/dist/deps/brand/brand.d.ts +5 -0
- package/dist/deps/brand/brand.js +3 -0
- package/dist/deps/brand/index.d.ts +1 -0
- package/dist/deps/brand/index.js +18 -0
- package/dist/deps/build-failed-error/build-failed-error.d.ts +14 -0
- package/dist/deps/build-failed-error/build-failed-error.js +13 -0
- package/dist/deps/build-failed-error/index.d.ts +1 -0
- package/dist/deps/build-failed-error/index.js +18 -0
- package/dist/deps/build-raptor-api/build-raptor-api.d.ts +351 -0
- package/dist/deps/build-raptor-api/build-raptor-api.js +132 -0
- package/dist/deps/build-raptor-api/index.d.ts +2 -0
- package/dist/deps/build-raptor-api/index.js +19 -0
- package/dist/deps/build-raptor-api/step-by-step-processor.d.ts +35 -0
- package/dist/deps/build-raptor-api/step-by-step-processor.js +3 -0
- package/dist/deps/build-raptor-core/breakdown.d.ts +18 -0
- package/dist/deps/build-raptor-core/breakdown.js +99 -0
- package/dist/deps/build-raptor-core/build-raptor-config.d.ts +21 -0
- package/dist/deps/build-raptor-core/build-raptor-config.js +25 -0
- package/dist/deps/build-raptor-core/default-asset-publisher.d.ts +10 -0
- package/dist/deps/build-raptor-core/default-asset-publisher.js +16 -0
- package/dist/deps/build-raptor-core/engine-bootstrapper.d.ts +50 -0
- package/dist/deps/build-raptor-core/engine-bootstrapper.js +200 -0
- package/dist/deps/build-raptor-core/engine-event-scheme.d.ts +20 -0
- package/dist/deps/build-raptor-core/engine-event-scheme.js +3 -0
- package/dist/deps/build-raptor-core/engine.d.ts +66 -0
- package/dist/deps/build-raptor-core/engine.js +285 -0
- package/dist/deps/build-raptor-core/examplify-zod.d.ts +93 -0
- package/dist/deps/build-raptor-core/examplify-zod.js +257 -0
- package/dist/deps/build-raptor-core/execution-plan.d.ts +20 -0
- package/dist/deps/build-raptor-core/execution-plan.js +66 -0
- package/dist/deps/build-raptor-core/execution-record.d.ts +17 -0
- package/dist/deps/build-raptor-core/execution-record.js +3 -0
- package/dist/deps/build-raptor-core/execution-type.d.ts +2 -0
- package/dist/deps/build-raptor-core/execution-type.js +3 -0
- package/dist/deps/build-raptor-core/find-repo-dir.d.ts +1 -0
- package/dist/deps/build-raptor-core/find-repo-dir.js +27 -0
- package/dist/deps/build-raptor-core/fingerprint-ledger.d.ts +33 -0
- package/dist/deps/build-raptor-core/fingerprint-ledger.js +164 -0
- package/dist/deps/build-raptor-core/fingerprint.d.ts +3 -0
- package/dist/deps/build-raptor-core/fingerprint.js +13 -0
- package/dist/deps/build-raptor-core/fingerprinter.d.ts +15 -0
- package/dist/deps/build-raptor-core/fingerprinter.js +122 -0
- package/dist/deps/build-raptor-core/hasher.d.ts +21 -0
- package/dist/deps/build-raptor-core/hasher.js +93 -0
- package/dist/deps/build-raptor-core/index.d.ts +9 -0
- package/dist/deps/build-raptor-core/index.js +26 -0
- package/dist/deps/build-raptor-core/model.d.ts +17 -0
- package/dist/deps/build-raptor-core/model.js +40 -0
- package/dist/deps/build-raptor-core/nop-asset-publisher.d.ts +6 -0
- package/dist/deps/build-raptor-core/nop-asset-publisher.js +12 -0
- package/dist/deps/build-raptor-core/performance-report.d.ts +5 -0
- package/dist/deps/build-raptor-core/performance-report.js +3 -0
- package/dist/deps/build-raptor-core/phase.d.ts +1 -0
- package/dist/deps/build-raptor-core/phase.js +3 -0
- package/dist/deps/build-raptor-core/planner.d.ts +12 -0
- package/dist/deps/build-raptor-core/planner.js +43 -0
- package/dist/deps/build-raptor-core/purger.d.ts +11 -0
- package/dist/deps/build-raptor-core/purger.js +65 -0
- package/dist/deps/build-raptor-core/slot-index.d.ts +6 -0
- package/dist/deps/build-raptor-core/slot-index.js +17 -0
- package/dist/deps/build-raptor-core/step-by-step-transmitter.d.ts +15 -0
- package/dist/deps/build-raptor-core/step-by-step-transmitter.js +94 -0
- package/dist/deps/build-raptor-core/tar-stream.d.ts +20 -0
- package/dist/deps/build-raptor-core/tar-stream.js +194 -0
- package/dist/deps/build-raptor-core/task-executor.d.ts +32 -0
- package/dist/deps/build-raptor-core/task-executor.js +321 -0
- package/dist/deps/build-raptor-core/task-store-cli.d.ts +1 -0
- package/dist/deps/build-raptor-core/task-store-cli.js +61 -0
- package/dist/deps/build-raptor-core/task-store-event.d.ts +17 -0
- package/dist/deps/build-raptor-core/task-store-event.js +3 -0
- package/dist/deps/build-raptor-core/task-store.d.ts +41 -0
- package/dist/deps/build-raptor-core/task-store.js +302 -0
- package/dist/deps/build-raptor-core/task-summary.d.ts +12 -0
- package/dist/deps/build-raptor-core/task-summary.js +3 -0
- package/dist/deps/build-raptor-core/task-tracker.d.ts +23 -0
- package/dist/deps/build-raptor-core/task-tracker.js +97 -0
- package/dist/deps/build-raptor-core/task.d.ts +30 -0
- package/dist/deps/build-raptor-core/task.js +90 -0
- package/dist/deps/build-raptor-core/updatable-task-output-registry.d.ts +13 -0
- package/dist/deps/build-raptor-core/updatable-task-output-registry.js +75 -0
- package/dist/deps/build-raptor-core/validate-task-infos.d.ts +3 -0
- package/dist/deps/build-raptor-core/validate-task-infos.js +53 -0
- package/dist/deps/build-raptor-core-testkit/build-raptor-core-testkit.d.ts +1 -0
- package/dist/deps/build-raptor-core-testkit/build-raptor-core-testkit.js +18 -0
- package/dist/deps/build-raptor-core-testkit/driver.d.ts +119 -0
- package/dist/deps/build-raptor-core-testkit/driver.js +305 -0
- package/dist/deps/build-raptor-core-testkit/index.d.ts +3 -0
- package/dist/deps/build-raptor-core-testkit/index.js +20 -0
- package/dist/deps/build-raptor-core-testkit/repo-protocol-testkit.d.ts +35 -0
- package/dist/deps/build-raptor-core-testkit/repo-protocol-testkit.js +226 -0
- package/dist/deps/build-raptor-core-testkit/simple-node-repo-protocol.d.ts +27 -0
- package/dist/deps/build-raptor-core-testkit/simple-node-repo-protocol.js +140 -0
- package/dist/deps/build-run-id/build-run-id.d.ts +3 -0
- package/dist/deps/build-run-id/build-run-id.js +13 -0
- package/dist/deps/build-run-id/index.d.ts +1 -0
- package/dist/deps/build-run-id/index.js +18 -0
- package/dist/deps/core-types/core-types.d.ts +29 -0
- package/dist/deps/core-types/core-types.js +81 -0
- package/dist/deps/core-types/index.d.ts +1 -0
- package/dist/deps/core-types/index.js +18 -0
- package/dist/deps/logger/index.d.ts +1 -0
- package/dist/deps/logger/index.js +18 -0
- package/dist/deps/logger/logger.d.ts +26 -0
- package/dist/deps/logger/logger.js +152 -0
- package/dist/deps/misc/arrays.d.ts +7 -0
- package/dist/deps/misc/arrays.js +67 -0
- package/dist/deps/misc/camelize-record.d.ts +6 -0
- package/dist/deps/misc/camelize-record.js +16 -0
- package/dist/deps/misc/clean-directory.d.ts +4 -0
- package/dist/deps/misc/clean-directory.js +80 -0
- package/dist/deps/misc/constructs.d.ts +106 -0
- package/dist/deps/misc/constructs.js +131 -0
- package/dist/deps/misc/directory-scanner.d.ts +49 -0
- package/dist/deps/misc/directory-scanner.js +165 -0
- package/dist/deps/misc/executor.d.ts +39 -0
- package/dist/deps/misc/executor.js +59 -0
- package/dist/deps/misc/file-system-storage-client.d.ts +23 -0
- package/dist/deps/misc/file-system-storage-client.js +93 -0
- package/dist/deps/misc/folderify.d.ts +8 -0
- package/dist/deps/misc/folderify.js +86 -0
- package/dist/deps/misc/graph.d.ts +29 -0
- package/dist/deps/misc/graph.js +200 -0
- package/dist/deps/misc/in-memory-storage-client.d.ts +21 -0
- package/dist/deps/misc/in-memory-storage-client.js +75 -0
- package/dist/deps/misc/index.d.ts +20 -0
- package/dist/deps/misc/index.js +37 -0
- package/dist/deps/misc/int.d.ts +10 -0
- package/dist/deps/misc/int.js +29 -0
- package/dist/deps/misc/internal/graph-executor.d.ts +15 -0
- package/dist/deps/misc/internal/graph-executor.js +93 -0
- package/dist/deps/misc/maps.d.ts +29 -0
- package/dist/deps/misc/maps.js +47 -0
- package/dist/deps/misc/misc.d.ts +23 -0
- package/dist/deps/misc/misc.js +94 -0
- package/dist/deps/misc/object-map.d.ts +10 -0
- package/dist/deps/misc/object-map.js +26 -0
- package/dist/deps/misc/promises.d.ts +39 -0
- package/dist/deps/misc/promises.js +78 -0
- package/dist/deps/misc/records.d.ts +11 -0
- package/dist/deps/misc/records.js +40 -0
- package/dist/deps/misc/slurp-dir.d.ts +1 -0
- package/dist/deps/misc/slurp-dir.js +14 -0
- package/dist/deps/misc/storage-client.d.ts +12 -0
- package/dist/deps/misc/storage-client.js +3 -0
- package/dist/deps/misc/stream-to-buffer.d.ts +2 -0
- package/dist/deps/misc/stream-to-buffer.js +26 -0
- package/dist/deps/misc/strings.d.ts +12 -0
- package/dist/deps/misc/strings.js +68 -0
- package/dist/deps/misc/typed-publisher.d.ts +17 -0
- package/dist/deps/misc/typed-publisher.js +65 -0
- package/dist/deps/repo-protocol/index.d.ts +3 -0
- package/dist/deps/repo-protocol/index.js +20 -0
- package/dist/deps/repo-protocol/repo-protocol.d.ts +49 -0
- package/dist/deps/repo-protocol/repo-protocol.js +3 -0
- package/dist/deps/repo-protocol/task-info.d.ts +18 -0
- package/dist/deps/repo-protocol/task-info.js +3 -0
- package/dist/deps/repo-protocol/test-run-summary.d.ts +54 -0
- package/dist/deps/repo-protocol/test-run-summary.js +32 -0
- package/dist/deps/repo-protocol-toolbox/generate-task-infos.d.ts +5 -0
- package/dist/deps/repo-protocol-toolbox/generate-task-infos.js +26 -0
- package/dist/deps/repo-protocol-toolbox/index.d.ts +3 -0
- package/dist/deps/repo-protocol-toolbox/index.js +20 -0
- package/dist/deps/repo-protocol-toolbox/repo-protocol-toolbox.d.ts +10 -0
- package/dist/deps/repo-protocol-toolbox/repo-protocol-toolbox.js +90 -0
- package/dist/deps/repo-protocol-toolbox/task-definition.d.ts +14 -0
- package/dist/deps/repo-protocol-toolbox/task-definition.js +3 -0
- package/dist/deps/reporter-output/index.d.ts +1 -0
- package/dist/deps/reporter-output/index.js +18 -0
- package/dist/deps/reporter-output/reporter-output.d.ts +49 -0
- package/dist/deps/reporter-output/reporter-output.js +25 -0
- package/dist/deps/s3-storage-client/creds.d.ts +4 -0
- package/dist/deps/s3-storage-client/creds.js +3 -0
- package/dist/deps/s3-storage-client/get-s3-storage-client-factory.d.ts +3 -0
- package/dist/deps/s3-storage-client/get-s3-storage-client-factory.js +45 -0
- package/dist/deps/s3-storage-client/index.d.ts +2 -0
- package/dist/deps/s3-storage-client/index.js +19 -0
- package/dist/deps/s3-storage-client/main.d.ts +1 -0
- package/dist/deps/s3-storage-client/main.js +20 -0
- package/dist/deps/s3-storage-client/s3-storage-client.d.ts +25 -0
- package/dist/deps/s3-storage-client/s3-storage-client.js +134 -0
- package/dist/deps/task-name/index.d.ts +1 -0
- package/dist/deps/task-name/index.js +18 -0
- package/dist/deps/task-name/task-name.d.ts +17 -0
- package/dist/deps/task-name/task-name.js +44 -0
- package/dist/deps/unit-metadata/index.d.ts +1 -0
- package/dist/deps/unit-metadata/index.js +18 -0
- package/dist/deps/unit-metadata/unit-metadata.d.ts +14 -0
- package/dist/deps/unit-metadata/unit-metadata.js +32 -0
- package/dist/deps/yarn-repo-protocol/build-task-record.d.ts +61 -0
- package/dist/deps/yarn-repo-protocol/build-task-record.js +29 -0
- package/dist/deps/yarn-repo-protocol/generate-test-run-summary.d.ts +4 -0
- package/dist/deps/yarn-repo-protocol/generate-test-run-summary.js +26 -0
- package/dist/deps/yarn-repo-protocol/index.d.ts +2 -0
- package/dist/deps/yarn-repo-protocol/index.js +19 -0
- package/dist/deps/yarn-repo-protocol/rerun-list.d.ts +12 -0
- package/dist/deps/yarn-repo-protocol/rerun-list.js +6 -0
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol-config.d.ts +24 -0
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol-config.js +34 -0
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol.d.ts +82 -0
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol.js +1036 -0
- package/dist/src/build-raptor-cli.d.ts +60 -0
- package/dist/src/build-raptor-cli.js +514 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +20 -0
- package/dist/src/main.d.ts +2 -0
- package/dist/src/main.js +23 -0
- package/dist/src/register-asset-request.d.ts +18 -0
- package/dist/src/register-asset-request.js +11 -0
- package/dist/src/task-execution-visualizer.d.ts +17 -0
- package/dist/src/task-execution-visualizer.js +116 -0
- package/package.json +17 -14
- package/build-raptor.js +0 -7259
- package/index.d.ts +0 -22
- package/index.js +0 -7231
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.UpdateableTaskOutputRegistry = void 0;
|
|
37
|
+
const core_types_1 = require("core-types");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
class UpdateableTaskOutputRegistry {
|
|
40
|
+
constructor() {
|
|
41
|
+
this.map = new Map();
|
|
42
|
+
}
|
|
43
|
+
add(taskName, outputLoc) {
|
|
44
|
+
this.map.set(outputLoc.val, taskName);
|
|
45
|
+
}
|
|
46
|
+
lookup(outputLoc) {
|
|
47
|
+
let normed = outputLoc.val;
|
|
48
|
+
while (true) {
|
|
49
|
+
if (normed === '.') {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
const tn = this.map.get(normed);
|
|
53
|
+
if (tn) {
|
|
54
|
+
return tn;
|
|
55
|
+
}
|
|
56
|
+
normed = path.dirname(normed);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
wideLookup(outputLoc) {
|
|
60
|
+
const temp = this.lookup(outputLoc);
|
|
61
|
+
if (temp) {
|
|
62
|
+
return [temp];
|
|
63
|
+
}
|
|
64
|
+
const ret = [];
|
|
65
|
+
for (const [loc, tn] of this.map.entries()) {
|
|
66
|
+
const pir = (0, core_types_1.PathInRepo)(loc);
|
|
67
|
+
if (outputLoc.isPrefixOf(pir)) {
|
|
68
|
+
ret.push(tn);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return ret.sort();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.UpdateableTaskOutputRegistry = UpdateableTaskOutputRegistry;
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRhYmxlLXRhc2stb3V0cHV0LXJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VwZGF0YWJsZS10YXNrLW91dHB1dC1yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBdUM7QUFDdkMsMkNBQTRCO0FBUTVCLE1BQWEsNEJBQTRCO0lBRXZDO1FBRGlCLFFBQUcsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQTtJQUNuQyxDQUFDO0lBRWhCLEdBQUcsQ0FBQyxRQUFrQixFQUFFLFNBQXFCO1FBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFxQjtRQUMxQixJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFBO1FBQzFCLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxTQUFTLENBQUE7WUFDbEIsQ0FBQztZQUNELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQy9CLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ1AsT0FBTyxFQUFFLENBQUE7WUFDWCxDQUFDO1lBQ0QsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsU0FBcUI7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNuQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2YsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFlLEVBQUUsQ0FBQTtRQUMxQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzNDLE1BQU0sR0FBRyxHQUFHLElBQUEsdUJBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQTtZQUMzQixJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNkLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDbkIsQ0FBQztDQUNGO0FBdENELG9FQXNDQyJ9
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateTaskInfos = validateTaskInfos;
|
|
4
|
+
const build_failed_error_1 = require("build-failed-error");
|
|
5
|
+
const misc_1 = require("misc");
|
|
6
|
+
const updatable_task_output_registry_1 = require("./updatable-task-output-registry");
|
|
7
|
+
function validateTaskInfos(infos) {
|
|
8
|
+
checkNameCollision(infos);
|
|
9
|
+
const ret = new updatable_task_output_registry_1.UpdateableTaskOutputRegistry();
|
|
10
|
+
checkOutputCollisions(infos, ret);
|
|
11
|
+
return ret;
|
|
12
|
+
}
|
|
13
|
+
function checkNameCollision(infos) {
|
|
14
|
+
const dups = (0, misc_1.findDups)(infos, at => at.taskName);
|
|
15
|
+
if (!dups.length) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const pairs = (0, misc_1.recordToPairs)((0, misc_1.groupBy)(dups, at => at.taskName));
|
|
19
|
+
const sorted = (0, misc_1.sortBy)(pairs, ([_, infos]) => -infos.length);
|
|
20
|
+
const highest = sorted[0] || (0, misc_1.failMe)(`list of sorted task infos is unexplainably empty`);
|
|
21
|
+
throw new build_failed_error_1.BuildFailedError(`Task name collison: ${highest[0]} (${highest[1].length} occurrences)`);
|
|
22
|
+
}
|
|
23
|
+
function checkOutputCollisions(infos, reg) {
|
|
24
|
+
const sorted = (0, misc_1.sortBy)(infos, at => at.taskName);
|
|
25
|
+
const taskNameByOutput = new Map();
|
|
26
|
+
for (const info of sorted) {
|
|
27
|
+
for (const loc of info.outputLocations ?? []) {
|
|
28
|
+
taskNameByOutput.set(loc.pathInRepo.val, info.taskName);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const allLocations = sorted.flatMap(x => (x.outputLocations ?? []).map(x => x.pathInRepo));
|
|
32
|
+
(0, misc_1.sortBy)(allLocations, at => at.val);
|
|
33
|
+
for (let ia = 0; ia < allLocations.length; ++ia) {
|
|
34
|
+
const a = allLocations[ia];
|
|
35
|
+
for (let ib = 0; ib < allLocations.length; ++ib) {
|
|
36
|
+
if (ia === ib) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const b = allLocations[ib];
|
|
40
|
+
if (a.isPrefixOf(b)) {
|
|
41
|
+
const ta = (0, misc_1.hardGet)(taskNameByOutput, a.val);
|
|
42
|
+
const tb = (0, misc_1.hardGet)(taskNameByOutput, b.val);
|
|
43
|
+
throw new build_failed_error_1.BuildFailedError(`Output collision in tasks ${ta}, ${tb}: ${a === b ? a : `${a}, ${b} (respectively)`}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
for (const i of sorted) {
|
|
48
|
+
for (const loc of i.outputLocations ?? []) {
|
|
49
|
+
reg.add(i.taskName, loc.pathInRepo);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtdGFzay1pbmZvcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0ZS10YXNrLWluZm9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsOENBTUM7QUFiRCwyREFBcUQ7QUFDckQsK0JBQWdGO0FBSWhGLHFGQUFtRztBQUVuRyxTQUFnQixpQkFBaUIsQ0FBQyxLQUFpQjtJQUNqRCxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUV6QixNQUFNLEdBQUcsR0FBRyxJQUFJLDZEQUE0QixFQUFFLENBQUE7SUFDOUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ2pDLE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsS0FBaUI7SUFDM0MsTUFBTSxJQUFJLEdBQUcsSUFBQSxlQUFRLEVBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakIsT0FBTTtJQUNSLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFhLEVBQUMsSUFBQSxjQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDN0QsTUFBTSxNQUFNLEdBQUcsSUFBQSxhQUFNLEVBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFBLGFBQU0sRUFBQyxrREFBa0QsQ0FBQyxDQUFBO0lBRXZGLE1BQU0sSUFBSSxxQ0FBZ0IsQ0FBQyx1QkFBdUIsT0FBTyxDQUFDLENB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './driver';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./driver"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcmFwdG9yLWNvcmUtdGVzdGtpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZC1yYXB0b3ItY29yZS10ZXN0a2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBd0IifQ==
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { StepByName, StepByStep, StepName } from 'build-raptor-api';
|
|
2
|
+
import { Breakdown } from 'build-raptor-core';
|
|
3
|
+
import { ExecutionType } from 'build-raptor-core';
|
|
4
|
+
import * as fs from 'fs';
|
|
5
|
+
import { FolderifyRecipe, StorageClient } from 'misc';
|
|
6
|
+
import { RepoProtocol } from 'repo-protocol';
|
|
7
|
+
import { TaskName } from 'task-name';
|
|
8
|
+
import { PackageJson } from 'type-fest';
|
|
9
|
+
interface LinesOptions {
|
|
10
|
+
trimEach?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare class Run {
|
|
13
|
+
private readonly breakdown;
|
|
14
|
+
constructor(breakdown: Breakdown);
|
|
15
|
+
outputOf(taskKind: string, unitId: string): Promise<string[]>;
|
|
16
|
+
getSummary(unitId: string, taskKind: string): import("build-raptor-core").TaskSummary;
|
|
17
|
+
taskNames(which?: ExecutionType): TaskName[];
|
|
18
|
+
happened(unitIdA: string, taskKindA: string, unitIdB: string, taskKindB: string): 'BEFORE' | 'CONCURRENTLY' | 'AFTER';
|
|
19
|
+
executionTypeOf(unitId: string, taskKind: string): ExecutionType;
|
|
20
|
+
get buildRunId(): import("modules/build-run-id/dist/src").BuildRunId;
|
|
21
|
+
/**
|
|
22
|
+
* returns the numerical exit code of the build process.
|
|
23
|
+
*/
|
|
24
|
+
get exitCode(): number;
|
|
25
|
+
get performanceReport(): import("modules/build-raptor-core/dist/src/performance-report").PerformanceReport | undefined;
|
|
26
|
+
get message(): string | undefined;
|
|
27
|
+
toString(): string;
|
|
28
|
+
}
|
|
29
|
+
declare class File {
|
|
30
|
+
private readonly rootDir;
|
|
31
|
+
private readonly pathInRepo;
|
|
32
|
+
constructor(rootDir: string, pathInRepo: string);
|
|
33
|
+
resolve(): string;
|
|
34
|
+
to(relativePath: string): File;
|
|
35
|
+
/**
|
|
36
|
+
* @returns the content of the file as an array of lines or undefined if the file does not exist.
|
|
37
|
+
*/
|
|
38
|
+
lines(options?: LinesOptions): Promise<string[] | undefined>;
|
|
39
|
+
readJson(): any;
|
|
40
|
+
write(content: string | object): Promise<void>;
|
|
41
|
+
exists(): Promise<boolean>;
|
|
42
|
+
rm(): Promise<void>;
|
|
43
|
+
chmod(mode: fs.Mode): void;
|
|
44
|
+
getMode(): number;
|
|
45
|
+
lastChanged(): Promise<number>;
|
|
46
|
+
}
|
|
47
|
+
interface RunOptions {
|
|
48
|
+
units?: string[];
|
|
49
|
+
taskKind?: string | string[];
|
|
50
|
+
subKind?: string;
|
|
51
|
+
goals?: string[];
|
|
52
|
+
labels?: string[];
|
|
53
|
+
/**
|
|
54
|
+
* The directory that build-ratpor was invoked at. If relative it is relative to the repo root. If absolute it must
|
|
55
|
+
* point to a dir somewhere under the repo root.
|
|
56
|
+
*/
|
|
57
|
+
userDir?: string;
|
|
58
|
+
concurrencyLevel?: number;
|
|
59
|
+
checkGitIgnore?: boolean;
|
|
60
|
+
testCaching?: boolean;
|
|
61
|
+
toRun?: {
|
|
62
|
+
/**
|
|
63
|
+
* Relative path from userDir
|
|
64
|
+
*/
|
|
65
|
+
program: string;
|
|
66
|
+
args: string[];
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
declare class Fork {
|
|
70
|
+
private readonly dir;
|
|
71
|
+
private readonly storageClient;
|
|
72
|
+
private readonly repoProtocol;
|
|
73
|
+
private readonly testName?;
|
|
74
|
+
private readonly buildRaptorDir;
|
|
75
|
+
constructor(dir: string, storageClient: StorageClient, repoProtocol: RepoProtocol, testName?: string | undefined);
|
|
76
|
+
run(expectedStatus: 'OK' | 'FAIL' | 'CRASH', options?: RunOptions): Promise<Run>;
|
|
77
|
+
file(pathInRepo: string): File;
|
|
78
|
+
getBuildRaptorDir(): File;
|
|
79
|
+
readStepByStepFile(): StepByStep;
|
|
80
|
+
getSteps<N extends StepName>(stepName: N): StepByName<N>[];
|
|
81
|
+
getPublicOutput(pathInRepo: string): Promise<string>;
|
|
82
|
+
private static filterSteps;
|
|
83
|
+
}
|
|
84
|
+
declare class Repo {
|
|
85
|
+
private readonly recipe;
|
|
86
|
+
private readonly driver;
|
|
87
|
+
constructor(recipe: FolderifyRecipe, driver: Driver);
|
|
88
|
+
fork(): Promise<Fork>;
|
|
89
|
+
}
|
|
90
|
+
interface DriverOptions {
|
|
91
|
+
storageClient?: StorageClient;
|
|
92
|
+
repoProtocol?: RepoProtocol;
|
|
93
|
+
}
|
|
94
|
+
export declare class Driver {
|
|
95
|
+
readonly testName?: string | undefined;
|
|
96
|
+
readonly storageClient: StorageClient;
|
|
97
|
+
readonly repoProtocol: RepoProtocol;
|
|
98
|
+
constructor(testName?: string | undefined, options?: DriverOptions);
|
|
99
|
+
repo(recipe: FolderifyRecipe): Repo;
|
|
100
|
+
packageJson(packageName: string, dependencies?: string[], scripts?: Record<string, string>, mutator?: (obj: PackageJson) => void): {
|
|
101
|
+
name: string;
|
|
102
|
+
license: string;
|
|
103
|
+
version: string;
|
|
104
|
+
scripts: {
|
|
105
|
+
build: string;
|
|
106
|
+
test: string;
|
|
107
|
+
};
|
|
108
|
+
files: string[];
|
|
109
|
+
main: string;
|
|
110
|
+
jest: {
|
|
111
|
+
roots: string[];
|
|
112
|
+
};
|
|
113
|
+
dependencies: {
|
|
114
|
+
[k: string]: string;
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
slurpBlob(blobId?: string): Promise<Record<string, string>>;
|
|
118
|
+
}
|
|
119
|
+
export {};
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.Driver = exports.Run = void 0;
|
|
37
|
+
const build_raptor_api_1 = require("build-raptor-api");
|
|
38
|
+
const build_raptor_core_1 = require("build-raptor-core");
|
|
39
|
+
const core_types_1 = require("core-types");
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const fse = __importStar(require("fs-extra"));
|
|
42
|
+
const logger_1 = require("logger");
|
|
43
|
+
const misc_1 = require("misc");
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const task_name_1 = require("task-name");
|
|
46
|
+
const unit_metadata_1 = require("unit-metadata");
|
|
47
|
+
const simple_node_repo_protocol_1 = require("./simple-node-repo-protocol");
|
|
48
|
+
class Run {
|
|
49
|
+
constructor(breakdown) {
|
|
50
|
+
this.breakdown = breakdown;
|
|
51
|
+
}
|
|
52
|
+
async outputOf(taskKind, unitId) {
|
|
53
|
+
return await this.breakdown.outputOf(taskKind, unitId, 'lines');
|
|
54
|
+
}
|
|
55
|
+
getSummary(unitId, taskKind) {
|
|
56
|
+
const tn = (0, task_name_1.TaskName)((0, unit_metadata_1.UnitId)(unitId), (0, task_name_1.TaskKind)(taskKind));
|
|
57
|
+
const ret = this.breakdown.getSummaries().find(s => s.taskName === tn);
|
|
58
|
+
if (!ret) {
|
|
59
|
+
throw new Error(`Task ${unitId}/${taskKind} not found`);
|
|
60
|
+
}
|
|
61
|
+
return ret;
|
|
62
|
+
}
|
|
63
|
+
taskNames(which) {
|
|
64
|
+
const filtered = this.breakdown.getSummaries().filter(t => (which === undefined ? true : t.execution === which));
|
|
65
|
+
return (0, misc_1.sortBy)(filtered.map(s => s.taskName), x => x);
|
|
66
|
+
}
|
|
67
|
+
// TODO(imaman): use timing information gathered by the protocol testkit (instead of relying on summaries which are
|
|
68
|
+
// SUT-generated)
|
|
69
|
+
happened(unitIdA, taskKindA, unitIdB, taskKindB) {
|
|
70
|
+
const a = this.getSummary(unitIdA, taskKindA);
|
|
71
|
+
const b = this.getSummary(unitIdB, taskKindB);
|
|
72
|
+
if (a.endedAt <= b.startedAt) {
|
|
73
|
+
return 'BEFORE';
|
|
74
|
+
}
|
|
75
|
+
if (a.startedAt >= b.endedAt) {
|
|
76
|
+
return 'AFTER';
|
|
77
|
+
}
|
|
78
|
+
return 'CONCURRENTLY';
|
|
79
|
+
}
|
|
80
|
+
executionTypeOf(unitId, taskKind) {
|
|
81
|
+
const s = this.getSummary(unitId, taskKind);
|
|
82
|
+
return s.execution;
|
|
83
|
+
}
|
|
84
|
+
get buildRunId() {
|
|
85
|
+
return this.breakdown.buildRunId;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* returns the numerical exit code of the build process.
|
|
89
|
+
*/
|
|
90
|
+
get exitCode() {
|
|
91
|
+
return this.breakdown.exitCode;
|
|
92
|
+
}
|
|
93
|
+
get performanceReport() {
|
|
94
|
+
return this.breakdown.performanceReport;
|
|
95
|
+
}
|
|
96
|
+
get message() {
|
|
97
|
+
return this.breakdown.message;
|
|
98
|
+
}
|
|
99
|
+
toString() {
|
|
100
|
+
return `message=${this.message} exitCode=${this.exitCode}, summaries=${JSON.stringify(this.breakdown.getSummaries())}`;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.Run = Run;
|
|
104
|
+
class File {
|
|
105
|
+
constructor(rootDir, pathInRepo) {
|
|
106
|
+
this.rootDir = rootDir;
|
|
107
|
+
this.pathInRepo = pathInRepo;
|
|
108
|
+
}
|
|
109
|
+
resolve() {
|
|
110
|
+
return path.join(this.rootDir, this.pathInRepo);
|
|
111
|
+
}
|
|
112
|
+
to(relativePath) {
|
|
113
|
+
if (path.isAbsolute(relativePath)) {
|
|
114
|
+
throw new Error(`Absolute path not allowed`);
|
|
115
|
+
}
|
|
116
|
+
return new File(this.rootDir, path.join(this.pathInRepo, relativePath));
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* @returns the content of the file as an array of lines or undefined if the file does not exist.
|
|
120
|
+
*/
|
|
121
|
+
async lines(options = {}) {
|
|
122
|
+
const trimEach = options.trimEach ?? false;
|
|
123
|
+
const resolved = this.resolve();
|
|
124
|
+
if (!(await fse.pathExists(resolved))) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
const content = await fse.readFile(resolved, 'utf-8');
|
|
128
|
+
return content
|
|
129
|
+
.trim()
|
|
130
|
+
.split('\n')
|
|
131
|
+
.map(at => (trimEach ? at.trim() : at));
|
|
132
|
+
}
|
|
133
|
+
readJson() {
|
|
134
|
+
const resolved = this.resolve();
|
|
135
|
+
if (!fs.existsSync(resolved)) {
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
return JSON.parse(fs.readFileSync(resolved, 'utf-8'));
|
|
139
|
+
}
|
|
140
|
+
async write(content) {
|
|
141
|
+
const resolved = this.resolve();
|
|
142
|
+
await fse.mkdirp(path.dirname(resolved));
|
|
143
|
+
const c = typeof content === 'string'
|
|
144
|
+
? content
|
|
145
|
+
: typeof content === 'object'
|
|
146
|
+
? JSON.stringify(content)
|
|
147
|
+
: (0, misc_1.shouldNeverHappen)(content);
|
|
148
|
+
await fse.writeFile(resolved, c);
|
|
149
|
+
}
|
|
150
|
+
async exists() {
|
|
151
|
+
return await fse.pathExists(this.resolve());
|
|
152
|
+
}
|
|
153
|
+
async rm() {
|
|
154
|
+
await fse.remove(this.resolve());
|
|
155
|
+
}
|
|
156
|
+
chmod(mode) {
|
|
157
|
+
fs.chmodSync(this.resolve(), mode);
|
|
158
|
+
}
|
|
159
|
+
getMode() {
|
|
160
|
+
return fs.statSync(this.resolve()).mode & 0o777;
|
|
161
|
+
}
|
|
162
|
+
async lastChanged() {
|
|
163
|
+
const st = await fse.stat(this.resolve());
|
|
164
|
+
return st.mtime.getTime();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const BUILD_RAPTOR_DIR_NAME = '.build-raptor';
|
|
168
|
+
class Fork {
|
|
169
|
+
constructor(dir, storageClient, repoProtocol, testName) {
|
|
170
|
+
this.dir = dir;
|
|
171
|
+
this.storageClient = storageClient;
|
|
172
|
+
this.repoProtocol = repoProtocol;
|
|
173
|
+
this.testName = testName;
|
|
174
|
+
this.buildRaptorDir = path.join(this.dir, BUILD_RAPTOR_DIR_NAME);
|
|
175
|
+
}
|
|
176
|
+
async run(expectedStatus, options = {}) {
|
|
177
|
+
const kinds = !options.taskKind ? [] : Array.isArray(options.taskKind) ? options.taskKind : [options.taskKind];
|
|
178
|
+
const units = options.units ?? [];
|
|
179
|
+
const goals = options.goals ?? [];
|
|
180
|
+
const labels = [...kinds, ...(options.labels ?? [])];
|
|
181
|
+
const concurrencyLevel = (0, misc_1.Int)(options.concurrencyLevel ?? 10);
|
|
182
|
+
const rp = this.repoProtocol;
|
|
183
|
+
const bootstrapper = await build_raptor_core_1.EngineBootstrapper.create(this.dir, this.storageClient, rp, Date.now(), 'moderate', this.testName);
|
|
184
|
+
await fse.mkdirp(this.buildRaptorDir);
|
|
185
|
+
const runner = await bootstrapper.makeRunner({ units, goals, labels }, undefined, {
|
|
186
|
+
checkGitIgnore: options.checkGitIgnore ?? false,
|
|
187
|
+
concurrency: concurrencyLevel,
|
|
188
|
+
buildRaptorDir: this.buildRaptorDir,
|
|
189
|
+
testCaching: options.testCaching,
|
|
190
|
+
commitHash: 'COMMIT-HASH-FOR-TESTING',
|
|
191
|
+
userDir: options.userDir ?? '',
|
|
192
|
+
toRun: options.toRun,
|
|
193
|
+
});
|
|
194
|
+
const output = await runner();
|
|
195
|
+
if (expectedStatus === output.overallVerdict) {
|
|
196
|
+
return new Run(output);
|
|
197
|
+
}
|
|
198
|
+
if (output.crashCause) {
|
|
199
|
+
throw output.crashCause;
|
|
200
|
+
}
|
|
201
|
+
const m = output
|
|
202
|
+
.getSummaries()
|
|
203
|
+
.map(s => `${s.taskName} -> ${s.verdict}`)
|
|
204
|
+
.join('\n');
|
|
205
|
+
throw new Error(`Expected ${expectedStatus}, but got ${output.overallVerdict} ${output.message ?? ''}\n${m}`);
|
|
206
|
+
}
|
|
207
|
+
file(pathInRepo) {
|
|
208
|
+
return new File(this.dir, pathInRepo);
|
|
209
|
+
}
|
|
210
|
+
getBuildRaptorDir() {
|
|
211
|
+
return this.file(BUILD_RAPTOR_DIR_NAME);
|
|
212
|
+
}
|
|
213
|
+
readStepByStepFile() {
|
|
214
|
+
const unparsed = this.getBuildRaptorDir().to('step-by-step.json').readJson();
|
|
215
|
+
return build_raptor_api_1.StepByStep.parse(unparsed);
|
|
216
|
+
}
|
|
217
|
+
getSteps(stepName) {
|
|
218
|
+
const parsed = this.readStepByStepFile();
|
|
219
|
+
const ret = Fork.filterSteps(parsed, stepName);
|
|
220
|
+
return ret;
|
|
221
|
+
}
|
|
222
|
+
async getPublicOutput(pathInRepo) {
|
|
223
|
+
const steps = this.getSteps('PUBLIC_FILES');
|
|
224
|
+
const filtered = steps.filter(s => Boolean(s.publicFiles[pathInRepo]));
|
|
225
|
+
if (filtered.length === 0) {
|
|
226
|
+
throw new Error(`public output not found "${pathInRepo}"`);
|
|
227
|
+
}
|
|
228
|
+
if (filtered.length > 1) {
|
|
229
|
+
throw new Error(`more than one task generated "${pathInRepo}"`);
|
|
230
|
+
}
|
|
231
|
+
const hash = filtered[0].publicFiles[pathInRepo];
|
|
232
|
+
const buf = await this.storageClient.getContentAddressable(hash);
|
|
233
|
+
return buf.toString('utf-8').trim();
|
|
234
|
+
}
|
|
235
|
+
static filterSteps(input, stepName) {
|
|
236
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
237
|
+
return input.flatMap(at => (at.step === stepName ? [at] : []));
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
class Repo {
|
|
241
|
+
constructor(recipe, driver) {
|
|
242
|
+
this.recipe = recipe;
|
|
243
|
+
this.driver = driver;
|
|
244
|
+
}
|
|
245
|
+
async fork() {
|
|
246
|
+
// Creates this strcutrue:
|
|
247
|
+
//
|
|
248
|
+
// [outerDir]
|
|
249
|
+
// node_modules
|
|
250
|
+
// [ROOT_NAME]
|
|
251
|
+
// <content of the repo goes here>
|
|
252
|
+
// node_modules
|
|
253
|
+
//
|
|
254
|
+
// The upper node_modules is symlinked to the node_modules dir of the build-raptor repo. This allows us to run
|
|
255
|
+
// tests which use "tsc", "jest" and other tools without having to run "yarn install". The inner node_modules
|
|
256
|
+
// directory is used mostly for storing symlinks to the repo packages to allow inter-repo dependencies.
|
|
257
|
+
const outerDir = await (0, misc_1.folderify)(ROOT_NAME, this.recipe);
|
|
258
|
+
const rootDir = path.join(outerDir, ROOT_NAME);
|
|
259
|
+
const ret = new Fork(rootDir, this.driver.storageClient, this.driver.repoProtocol, this.driver.testName);
|
|
260
|
+
await fse.symlink(path.resolve(__dirname, '../../../../node_modules'), path.join(outerDir, 'node_modules'));
|
|
261
|
+
return ret;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
const ROOT_NAME = 'repo-root';
|
|
265
|
+
class Driver {
|
|
266
|
+
constructor(testName, options = {}) {
|
|
267
|
+
this.testName = testName;
|
|
268
|
+
this.storageClient = options.storageClient ?? new misc_1.InMemoryStorageClient();
|
|
269
|
+
this.repoProtocol = options.repoProtocol ?? new simple_node_repo_protocol_1.SimpleNodeRepoProtocol((0, core_types_1.PathInRepo)('modules'));
|
|
270
|
+
}
|
|
271
|
+
repo(recipe) {
|
|
272
|
+
return new Repo(recipe, this);
|
|
273
|
+
}
|
|
274
|
+
packageJson(packageName, dependencies = [], scripts = {}, mutator = () => { }) {
|
|
275
|
+
const ret = {
|
|
276
|
+
name: packageName,
|
|
277
|
+
license: 'UNLICENSED',
|
|
278
|
+
version: '1.0.0',
|
|
279
|
+
scripts: {
|
|
280
|
+
build: 'tsc -b',
|
|
281
|
+
test: 'jest',
|
|
282
|
+
...scripts,
|
|
283
|
+
},
|
|
284
|
+
files: ['dist/src'],
|
|
285
|
+
main: 'dist/src/index.js',
|
|
286
|
+
jest: {
|
|
287
|
+
roots: ['<rootDir>/dist'],
|
|
288
|
+
},
|
|
289
|
+
dependencies: Object.fromEntries(dependencies.map(d => [d, '1.0.0'])),
|
|
290
|
+
};
|
|
291
|
+
mutator(ret);
|
|
292
|
+
return ret;
|
|
293
|
+
}
|
|
294
|
+
async slurpBlob(blobId) {
|
|
295
|
+
if (!blobId) {
|
|
296
|
+
throw new Error(`bad blobId: <${blobId}>`);
|
|
297
|
+
}
|
|
298
|
+
const tempDir = await (0, misc_1.folderify)({});
|
|
299
|
+
const taskStore = new build_raptor_core_1.TaskStore((0, core_types_1.RepoRoot)(tempDir), this.storageClient, (0, logger_1.createNopLogger)());
|
|
300
|
+
await taskStore.restoreBlob((0, build_raptor_core_1.BlobId)(blobId));
|
|
301
|
+
return await (0, misc_1.slurpDir)(tempDir);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
exports.Driver = Driver;
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1REFBeUU7QUFDekUseURBQW9GO0FBRXBGLDJDQUFpRDtBQUNqRCx1Q0FBd0I7QUFDeEIsOENBQStCO0FBQy9CLG1DQUF3QztBQUN4QywrQkFTYTtBQUNiLDJDQUE0QjtBQUU1Qix5Q0FBOEM7QUFFOUMsaURBQXNDO0FBRXRDLDJFQUFvRTtBQUtwRSxNQUFhLEdBQUc7SUFDZCxZQUE2QixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUcsQ0FBQztJQUVyRCxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQWdCLEVBQUUsTUFBYztRQUM3QyxPQUFPLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUN6QyxNQUFNLEVBQUUsR0FBRyxJQUFBLG9CQUFRLEVBQUMsSUFBQSxzQkFBTSxFQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUEsb0JBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUN0RSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsTUFBTSxJQUFJLFFBQVEsWUFBWSxDQUFDLENBQUE7UUFDekQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFxQjtRQUM3QixN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
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./build-raptor-core-testkit"), exports);
|
|
18
|
+
__exportStar(require("./repo-protocol-testkit"), exports);
|
|
19
|
+
__exportStar(require("./simple-node-repo-protocol"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhEQUEyQztBQUMzQywwREFBdUM7QUFDdkMsOERBQTJDIn0=
|