build-raptor 0.129.0 → 0.131.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/build-raptor.js +7259 -0
- package/index.d.ts +22 -0
- package/index.js +7231 -0
- package/package.json +13 -17
- package/dist/deps/brand/brand.d.ts +0 -5
- package/dist/deps/brand/brand.js +0 -3
- package/dist/deps/brand/index.d.ts +0 -1
- package/dist/deps/brand/index.js +0 -18
- package/dist/deps/build-failed-error/build-failed-error.d.ts +0 -14
- package/dist/deps/build-failed-error/build-failed-error.js +0 -13
- package/dist/deps/build-failed-error/index.d.ts +0 -1
- package/dist/deps/build-failed-error/index.js +0 -18
- package/dist/deps/build-raptor-api/build-raptor-api.d.ts +0 -351
- package/dist/deps/build-raptor-api/build-raptor-api.js +0 -132
- package/dist/deps/build-raptor-api/index.d.ts +0 -2
- package/dist/deps/build-raptor-api/index.js +0 -19
- package/dist/deps/build-raptor-api/step-by-step-processor.d.ts +0 -35
- package/dist/deps/build-raptor-api/step-by-step-processor.js +0 -3
- package/dist/deps/build-raptor-core/breakdown.d.ts +0 -18
- package/dist/deps/build-raptor-core/breakdown.js +0 -99
- package/dist/deps/build-raptor-core/build-raptor-config.d.ts +0 -18
- package/dist/deps/build-raptor-core/build-raptor-config.js +0 -21
- package/dist/deps/build-raptor-core/default-asset-publisher.d.ts +0 -10
- package/dist/deps/build-raptor-core/default-asset-publisher.js +0 -16
- package/dist/deps/build-raptor-core/engine-bootstrapper.d.ts +0 -50
- package/dist/deps/build-raptor-core/engine-bootstrapper.js +0 -200
- package/dist/deps/build-raptor-core/engine-event-scheme.d.ts +0 -20
- package/dist/deps/build-raptor-core/engine-event-scheme.js +0 -3
- package/dist/deps/build-raptor-core/engine.d.ts +0 -66
- package/dist/deps/build-raptor-core/engine.js +0 -285
- package/dist/deps/build-raptor-core/examplify-zod.d.ts +0 -93
- package/dist/deps/build-raptor-core/examplify-zod.js +0 -257
- package/dist/deps/build-raptor-core/execution-plan.d.ts +0 -20
- package/dist/deps/build-raptor-core/execution-plan.js +0 -66
- package/dist/deps/build-raptor-core/execution-record.d.ts +0 -17
- package/dist/deps/build-raptor-core/execution-record.js +0 -3
- package/dist/deps/build-raptor-core/execution-type.d.ts +0 -2
- package/dist/deps/build-raptor-core/execution-type.js +0 -3
- package/dist/deps/build-raptor-core/find-repo-dir.d.ts +0 -1
- package/dist/deps/build-raptor-core/find-repo-dir.js +0 -27
- package/dist/deps/build-raptor-core/fingerprint-ledger.d.ts +0 -33
- package/dist/deps/build-raptor-core/fingerprint-ledger.js +0 -164
- package/dist/deps/build-raptor-core/fingerprint.d.ts +0 -3
- package/dist/deps/build-raptor-core/fingerprint.js +0 -13
- package/dist/deps/build-raptor-core/fingerprinter.d.ts +0 -14
- package/dist/deps/build-raptor-core/fingerprinter.js +0 -121
- package/dist/deps/build-raptor-core/hasher.d.ts +0 -21
- package/dist/deps/build-raptor-core/hasher.js +0 -93
- package/dist/deps/build-raptor-core/index.d.ts +0 -9
- package/dist/deps/build-raptor-core/index.js +0 -26
- package/dist/deps/build-raptor-core/model.d.ts +0 -17
- package/dist/deps/build-raptor-core/model.js +0 -40
- package/dist/deps/build-raptor-core/nop-asset-publisher.d.ts +0 -6
- package/dist/deps/build-raptor-core/nop-asset-publisher.js +0 -12
- package/dist/deps/build-raptor-core/performance-report.d.ts +0 -5
- package/dist/deps/build-raptor-core/performance-report.js +0 -3
- package/dist/deps/build-raptor-core/phase.d.ts +0 -1
- package/dist/deps/build-raptor-core/phase.js +0 -3
- package/dist/deps/build-raptor-core/planner.d.ts +0 -12
- package/dist/deps/build-raptor-core/planner.js +0 -43
- package/dist/deps/build-raptor-core/purger.d.ts +0 -11
- package/dist/deps/build-raptor-core/purger.js +0 -65
- package/dist/deps/build-raptor-core/slot-index.d.ts +0 -6
- package/dist/deps/build-raptor-core/slot-index.js +0 -17
- package/dist/deps/build-raptor-core/step-by-step-transmitter.d.ts +0 -15
- package/dist/deps/build-raptor-core/step-by-step-transmitter.js +0 -94
- package/dist/deps/build-raptor-core/tar-stream.d.ts +0 -20
- package/dist/deps/build-raptor-core/tar-stream.js +0 -194
- package/dist/deps/build-raptor-core/task-executor.d.ts +0 -32
- package/dist/deps/build-raptor-core/task-executor.js +0 -321
- package/dist/deps/build-raptor-core/task-store-cli.d.ts +0 -1
- package/dist/deps/build-raptor-core/task-store-cli.js +0 -61
- package/dist/deps/build-raptor-core/task-store-event.d.ts +0 -17
- package/dist/deps/build-raptor-core/task-store-event.js +0 -3
- package/dist/deps/build-raptor-core/task-store.d.ts +0 -41
- package/dist/deps/build-raptor-core/task-store.js +0 -302
- package/dist/deps/build-raptor-core/task-summary.d.ts +0 -12
- package/dist/deps/build-raptor-core/task-summary.js +0 -3
- package/dist/deps/build-raptor-core/task-tracker.d.ts +0 -23
- package/dist/deps/build-raptor-core/task-tracker.js +0 -97
- package/dist/deps/build-raptor-core/task.d.ts +0 -30
- package/dist/deps/build-raptor-core/task.js +0 -90
- package/dist/deps/build-raptor-core/updatable-task-output-registry.d.ts +0 -13
- package/dist/deps/build-raptor-core/updatable-task-output-registry.js +0 -75
- package/dist/deps/build-raptor-core/validate-task-infos.d.ts +0 -3
- package/dist/deps/build-raptor-core/validate-task-infos.js +0 -53
- package/dist/deps/build-raptor-core-testkit/build-raptor-core-testkit.d.ts +0 -1
- package/dist/deps/build-raptor-core-testkit/build-raptor-core-testkit.js +0 -18
- package/dist/deps/build-raptor-core-testkit/driver.d.ts +0 -119
- package/dist/deps/build-raptor-core-testkit/driver.js +0 -305
- package/dist/deps/build-raptor-core-testkit/index.d.ts +0 -3
- package/dist/deps/build-raptor-core-testkit/index.js +0 -20
- package/dist/deps/build-raptor-core-testkit/repo-protocol-testkit.d.ts +0 -35
- package/dist/deps/build-raptor-core-testkit/repo-protocol-testkit.js +0 -226
- package/dist/deps/build-raptor-core-testkit/simple-node-repo-protocol.d.ts +0 -27
- package/dist/deps/build-raptor-core-testkit/simple-node-repo-protocol.js +0 -140
- package/dist/deps/build-raptor-jest-reporter/index.d.ts +0 -0
- package/dist/deps/build-raptor-jest-reporter/index.js +0 -33
- package/dist/deps/build-run-id/build-run-id.d.ts +0 -3
- package/dist/deps/build-run-id/build-run-id.js +0 -13
- package/dist/deps/build-run-id/index.d.ts +0 -1
- package/dist/deps/build-run-id/index.js +0 -18
- package/dist/deps/core-types/core-types.d.ts +0 -29
- package/dist/deps/core-types/core-types.js +0 -81
- package/dist/deps/core-types/index.d.ts +0 -1
- package/dist/deps/core-types/index.js +0 -18
- package/dist/deps/logger/index.d.ts +0 -1
- package/dist/deps/logger/index.js +0 -18
- package/dist/deps/logger/logger.d.ts +0 -26
- package/dist/deps/logger/logger.js +0 -152
- package/dist/deps/misc/arrays.d.ts +0 -7
- package/dist/deps/misc/arrays.js +0 -67
- package/dist/deps/misc/camelize-record.d.ts +0 -6
- package/dist/deps/misc/camelize-record.js +0 -16
- package/dist/deps/misc/clean-directory.d.ts +0 -4
- package/dist/deps/misc/clean-directory.js +0 -80
- package/dist/deps/misc/constructs.d.ts +0 -106
- package/dist/deps/misc/constructs.js +0 -131
- package/dist/deps/misc/directory-scanner.d.ts +0 -49
- package/dist/deps/misc/directory-scanner.js +0 -165
- package/dist/deps/misc/executor.d.ts +0 -39
- package/dist/deps/misc/executor.js +0 -59
- package/dist/deps/misc/file-system-storage-client.d.ts +0 -23
- package/dist/deps/misc/file-system-storage-client.js +0 -93
- package/dist/deps/misc/folderify.d.ts +0 -8
- package/dist/deps/misc/folderify.js +0 -86
- package/dist/deps/misc/graph.d.ts +0 -29
- package/dist/deps/misc/graph.js +0 -200
- package/dist/deps/misc/in-memory-storage-client.d.ts +0 -21
- package/dist/deps/misc/in-memory-storage-client.js +0 -75
- package/dist/deps/misc/index.d.ts +0 -20
- package/dist/deps/misc/index.js +0 -37
- package/dist/deps/misc/int.d.ts +0 -10
- package/dist/deps/misc/int.js +0 -29
- package/dist/deps/misc/internal/graph-executor.d.ts +0 -15
- package/dist/deps/misc/internal/graph-executor.js +0 -93
- package/dist/deps/misc/maps.d.ts +0 -29
- package/dist/deps/misc/maps.js +0 -47
- package/dist/deps/misc/misc.d.ts +0 -23
- package/dist/deps/misc/misc.js +0 -94
- package/dist/deps/misc/object-map.d.ts +0 -10
- package/dist/deps/misc/object-map.js +0 -26
- package/dist/deps/misc/promises.d.ts +0 -39
- package/dist/deps/misc/promises.js +0 -78
- package/dist/deps/misc/records.d.ts +0 -11
- package/dist/deps/misc/records.js +0 -40
- package/dist/deps/misc/slurp-dir.d.ts +0 -1
- package/dist/deps/misc/slurp-dir.js +0 -14
- package/dist/deps/misc/storage-client.d.ts +0 -12
- package/dist/deps/misc/storage-client.js +0 -3
- package/dist/deps/misc/stream-to-buffer.d.ts +0 -2
- package/dist/deps/misc/stream-to-buffer.js +0 -26
- package/dist/deps/misc/strings.d.ts +0 -12
- package/dist/deps/misc/strings.js +0 -68
- package/dist/deps/misc/typed-publisher.d.ts +0 -17
- package/dist/deps/misc/typed-publisher.js +0 -65
- package/dist/deps/repo-protocol/index.d.ts +0 -3
- package/dist/deps/repo-protocol/index.js +0 -20
- package/dist/deps/repo-protocol/repo-protocol.d.ts +0 -49
- package/dist/deps/repo-protocol/repo-protocol.js +0 -3
- package/dist/deps/repo-protocol/task-info.d.ts +0 -18
- package/dist/deps/repo-protocol/task-info.js +0 -3
- package/dist/deps/repo-protocol/test-run-summary.d.ts +0 -54
- package/dist/deps/repo-protocol/test-run-summary.js +0 -32
- package/dist/deps/repo-protocol-toolbox/generate-task-infos.d.ts +0 -5
- package/dist/deps/repo-protocol-toolbox/generate-task-infos.js +0 -26
- package/dist/deps/repo-protocol-toolbox/index.d.ts +0 -3
- package/dist/deps/repo-protocol-toolbox/index.js +0 -20
- package/dist/deps/repo-protocol-toolbox/repo-protocol-toolbox.d.ts +0 -10
- package/dist/deps/repo-protocol-toolbox/repo-protocol-toolbox.js +0 -90
- package/dist/deps/repo-protocol-toolbox/task-definition.d.ts +0 -14
- package/dist/deps/repo-protocol-toolbox/task-definition.js +0 -3
- package/dist/deps/reporter-output/index.d.ts +0 -1
- package/dist/deps/reporter-output/index.js +0 -18
- package/dist/deps/reporter-output/reporter-output.d.ts +0 -49
- package/dist/deps/reporter-output/reporter-output.js +0 -25
- package/dist/deps/s3-storage-client/creds.d.ts +0 -4
- package/dist/deps/s3-storage-client/creds.js +0 -3
- package/dist/deps/s3-storage-client/get-s3-storage-client-factory.d.ts +0 -3
- package/dist/deps/s3-storage-client/get-s3-storage-client-factory.js +0 -45
- package/dist/deps/s3-storage-client/index.d.ts +0 -2
- package/dist/deps/s3-storage-client/index.js +0 -19
- package/dist/deps/s3-storage-client/main.d.ts +0 -1
- package/dist/deps/s3-storage-client/main.js +0 -20
- package/dist/deps/s3-storage-client/s3-storage-client.d.ts +0 -25
- package/dist/deps/s3-storage-client/s3-storage-client.js +0 -134
- package/dist/deps/task-name/index.d.ts +0 -1
- package/dist/deps/task-name/index.js +0 -18
- package/dist/deps/task-name/task-name.d.ts +0 -17
- package/dist/deps/task-name/task-name.js +0 -44
- package/dist/deps/unit-metadata/index.d.ts +0 -1
- package/dist/deps/unit-metadata/index.js +0 -18
- package/dist/deps/unit-metadata/unit-metadata.d.ts +0 -14
- package/dist/deps/unit-metadata/unit-metadata.js +0 -32
- package/dist/deps/yarn-repo-protocol/build-task-record.d.ts +0 -61
- package/dist/deps/yarn-repo-protocol/build-task-record.js +0 -29
- package/dist/deps/yarn-repo-protocol/generate-test-run-summary.d.ts +0 -4
- package/dist/deps/yarn-repo-protocol/generate-test-run-summary.js +0 -26
- package/dist/deps/yarn-repo-protocol/index.d.ts +0 -2
- package/dist/deps/yarn-repo-protocol/index.js +0 -19
- package/dist/deps/yarn-repo-protocol/rerun-list.d.ts +0 -12
- package/dist/deps/yarn-repo-protocol/rerun-list.js +0 -6
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol-config.d.ts +0 -24
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol-config.js +0 -33
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol.d.ts +0 -82
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol.js +0 -1036
- package/dist/src/build-raptor-cli.d.ts +0 -60
- package/dist/src/build-raptor-cli.js +0 -514
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.js +0 -20
- package/dist/src/main.d.ts +0 -2
- package/dist/src/main.js +0 -23
- package/dist/src/register-asset-request.d.ts +0 -18
- package/dist/src/register-asset-request.js +0 -11
- package/dist/src/task-execution-visualizer.d.ts +0 -17
- package/dist/src/task-execution-visualizer.js +0 -116
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Logger } from 'logger';
|
|
2
|
-
import { TypedPublisher } from 'misc';
|
|
3
|
-
import { RepoProtocol } from 'repo-protocol';
|
|
4
|
-
import { TaskName } from 'task-name';
|
|
5
|
-
import { EngineEventScheme } from './engine-event-scheme';
|
|
6
|
-
import { FingerprintLedger } from './fingerprint-ledger';
|
|
7
|
-
import { Model } from './model';
|
|
8
|
-
import { Purger } from './purger';
|
|
9
|
-
import { TaskStore } from './task-store';
|
|
10
|
-
import { TaskTracker } from './task-tracker';
|
|
11
|
-
/**
|
|
12
|
-
* An object that is reponsible for executing a task.
|
|
13
|
-
*/
|
|
14
|
-
export declare class TaskExecutor {
|
|
15
|
-
private readonly model;
|
|
16
|
-
private readonly tracker;
|
|
17
|
-
private readonly logger;
|
|
18
|
-
private readonly repoProtocol;
|
|
19
|
-
private readonly taskStore;
|
|
20
|
-
private readonly taskOutputDir;
|
|
21
|
-
private readonly eventPublisher;
|
|
22
|
-
private readonly fingerprintLedger;
|
|
23
|
-
private readonly purger;
|
|
24
|
-
private readonly testCaching;
|
|
25
|
-
private readonly tasksToDiagnose;
|
|
26
|
-
constructor(model: Model, tracker: TaskTracker, logger: Logger, repoProtocol: RepoProtocol, taskStore: TaskStore, taskOutputDir: string, eventPublisher: TypedPublisher<EngineEventScheme>, fingerprintLedger: FingerprintLedger, purger: Purger, testCaching: boolean, tasksToDiagnose: string[]);
|
|
27
|
-
/**
|
|
28
|
-
* @param taskName
|
|
29
|
-
* @param fingerprintDeps other tasks whose fingerprint need to be part of the fingerprint of `taskName`.
|
|
30
|
-
*/
|
|
31
|
-
executeTask(taskName: TaskName, fingerprintDeps: TaskName[]): Promise<void>;
|
|
32
|
-
}
|
|
@@ -1,321 +0,0 @@
|
|
|
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.TaskExecutor = void 0;
|
|
37
|
-
const build_failed_error_1 = require("build-failed-error");
|
|
38
|
-
const fse = __importStar(require("fs-extra"));
|
|
39
|
-
const misc_1 = require("misc");
|
|
40
|
-
const path = __importStar(require("path"));
|
|
41
|
-
const task_name_1 = require("task-name");
|
|
42
|
-
/**
|
|
43
|
-
* An object that is reponsible for executing a task.
|
|
44
|
-
*/
|
|
45
|
-
class TaskExecutor {
|
|
46
|
-
constructor(model, tracker, logger, repoProtocol, taskStore, taskOutputDir, eventPublisher, fingerprintLedger, purger, testCaching, tasksToDiagnose) {
|
|
47
|
-
this.model = model;
|
|
48
|
-
this.tracker = tracker;
|
|
49
|
-
this.logger = logger;
|
|
50
|
-
this.repoProtocol = repoProtocol;
|
|
51
|
-
this.taskStore = taskStore;
|
|
52
|
-
this.taskOutputDir = taskOutputDir;
|
|
53
|
-
this.eventPublisher = eventPublisher;
|
|
54
|
-
this.fingerprintLedger = fingerprintLedger;
|
|
55
|
-
this.purger = purger;
|
|
56
|
-
this.testCaching = testCaching;
|
|
57
|
-
this.tasksToDiagnose = tasksToDiagnose;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* @param taskName
|
|
61
|
-
* @param fingerprintDeps other tasks whose fingerprint need to be part of the fingerprint of `taskName`.
|
|
62
|
-
*/
|
|
63
|
-
async executeTask(taskName, fingerprintDeps) {
|
|
64
|
-
const ste = new SingleTaskExecutor(taskName, fingerprintDeps, this.model, this.tracker, this.logger, this.repoProtocol, this.taskStore, this.taskOutputDir, this.eventPublisher, this.fingerprintLedger, this.purger, this.testCaching, this.tasksToDiagnose.includes(taskName));
|
|
65
|
-
await ste.executeTask();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
exports.TaskExecutor = TaskExecutor;
|
|
69
|
-
class SingleTaskExecutor {
|
|
70
|
-
/**
|
|
71
|
-
* @param taskName
|
|
72
|
-
* @param fingerprintDeps other tasks whose fingerprint need to be part of the fingerprint of `taskName`.
|
|
73
|
-
* @param model
|
|
74
|
-
* @param tracker
|
|
75
|
-
* @param logger
|
|
76
|
-
* @param repoProtocol
|
|
77
|
-
* @param taskStore
|
|
78
|
-
* @param taskOutputDir
|
|
79
|
-
* @param eventPublisher
|
|
80
|
-
* @param fingerprintLedger
|
|
81
|
-
* @param purger
|
|
82
|
-
* @param testCaching
|
|
83
|
-
* @param shouldDiagnose
|
|
84
|
-
*/
|
|
85
|
-
constructor(taskName, fingerprintDeps, model, tracker, logger, repoProtocol, taskStore, taskOutputDir, eventPublisher, fingerprintLedger, purger, testCaching, shouldDiagnose) {
|
|
86
|
-
this.taskName = taskName;
|
|
87
|
-
this.fingerprintDeps = fingerprintDeps;
|
|
88
|
-
this.model = model;
|
|
89
|
-
this.tracker = tracker;
|
|
90
|
-
this.logger = logger;
|
|
91
|
-
this.repoProtocol = repoProtocol;
|
|
92
|
-
this.taskStore = taskStore;
|
|
93
|
-
this.taskOutputDir = taskOutputDir;
|
|
94
|
-
this.eventPublisher = eventPublisher;
|
|
95
|
-
this.fingerprintLedger = fingerprintLedger;
|
|
96
|
-
this.purger = purger;
|
|
97
|
-
this.testCaching = testCaching;
|
|
98
|
-
this.shouldDiagnose = shouldDiagnose;
|
|
99
|
-
this.phasePublisher = new misc_1.TypedPublisher();
|
|
100
|
-
this.isTest = (0, task_name_1.TaskName)().undo(this.taskName).taskKind === 'test';
|
|
101
|
-
}
|
|
102
|
-
diagnose(message) {
|
|
103
|
-
if (!this.shouldDiagnose) {
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
this.logger.print(`[${this.taskName}] ${message}`);
|
|
107
|
-
}
|
|
108
|
-
get task() {
|
|
109
|
-
return this.tracker.getTask(this.taskName);
|
|
110
|
-
}
|
|
111
|
-
get unit() {
|
|
112
|
-
return this.model.getUnit(this.task.unitId);
|
|
113
|
-
}
|
|
114
|
-
async postProcess(status, outputFile, time) {
|
|
115
|
-
// Since outputFile's content can be big, read it only if this task is "diagnosed".
|
|
116
|
-
if (this.shouldDiagnose) {
|
|
117
|
-
const content = fse.readFileSync(outputFile, 'utf-8');
|
|
118
|
-
this.diagnose(`content of ${outputFile} is ${content}`);
|
|
119
|
-
}
|
|
120
|
-
// TODO(imaman): cover (await is dropped)
|
|
121
|
-
await this.eventPublisher.publish('executionEnded', {
|
|
122
|
-
taskName: this.taskName,
|
|
123
|
-
status,
|
|
124
|
-
outputFile,
|
|
125
|
-
time,
|
|
126
|
-
pathInRepo: this.unit.pathInRepo.val,
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
async computeFingerprint() {
|
|
130
|
-
const fps = [];
|
|
131
|
-
const t = this.task;
|
|
132
|
-
// TODO(imaman): test coverage for the sort-by
|
|
133
|
-
// TODO(imaman): concurrent loop
|
|
134
|
-
this.diagnose(`deps are ${JSON.stringify(this.fingerprintDeps)}, info.deps=${JSON.stringify(t.taskInfo.deps)}`);
|
|
135
|
-
for (const d of this.fingerprintDeps) {
|
|
136
|
-
const dep = this.tracker.getTask(d);
|
|
137
|
-
fps.push(dep.getFingerprint());
|
|
138
|
-
}
|
|
139
|
-
const parts = {};
|
|
140
|
-
this.diagnose(`inputs are: ${t.inputs}`);
|
|
141
|
-
for (const loc of t.inputs) {
|
|
142
|
-
const fingerprint = await this.model.fingerprintOfDir(loc);
|
|
143
|
-
fps.push(fingerprint);
|
|
144
|
-
parts[loc.val] = fingerprint;
|
|
145
|
-
}
|
|
146
|
-
t.computeFingerprint(fps);
|
|
147
|
-
const ret = t.getFingerprint();
|
|
148
|
-
this.fingerprintLedger.updateTask(t.name, ret, parts);
|
|
149
|
-
return ret;
|
|
150
|
-
}
|
|
151
|
-
async validateOutputs() {
|
|
152
|
-
const t = this.task;
|
|
153
|
-
const missing = await (0, misc_1.promises)(t.outputLocations)
|
|
154
|
-
.filter(async (loc) => {
|
|
155
|
-
const resolved = this.model.rootDir.resolve(loc.pathInRepo);
|
|
156
|
-
const exists = await fse.pathExists(resolved);
|
|
157
|
-
return !exists;
|
|
158
|
-
})
|
|
159
|
-
.reify(100);
|
|
160
|
-
if (!missing.length) {
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
const formatted = missing.map(at => ` - ${at.pathInRepo}`).join('\n');
|
|
164
|
-
this.logger.info(`missing outputs for task ${t.name}: ${JSON.stringify(missing)}`);
|
|
165
|
-
throw new build_failed_error_1.BuildFailedError(`Task ${this.taskName} failed to produce the following outputs:\n${formatted}`);
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Exectues the task.
|
|
169
|
-
*/
|
|
170
|
-
async executeTask() {
|
|
171
|
-
try {
|
|
172
|
-
const t = this.task;
|
|
173
|
-
if (this.tracker.hasVerdict(t.name)) {
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
await this.runPhases();
|
|
177
|
-
}
|
|
178
|
-
catch (e) {
|
|
179
|
-
this.logger.error(`Task ${this.taskName} is exiting with an error`, e);
|
|
180
|
-
throw e;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
get dir() {
|
|
184
|
-
return this.model.rootDir.resolve(this.unit.pathInRepo);
|
|
185
|
-
}
|
|
186
|
-
get fp() {
|
|
187
|
-
return this.fp_ ?? (0, misc_1.failMe)(`fingerprint was not set on task ${this.taskName}`);
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Determines whether this executor can execute its task. It is possible that several executors will try to run the
|
|
191
|
-
* same task. This method ensures that exactly one such executor will actually execute it.
|
|
192
|
-
* @returns true if the task should be executed by this executor, false otherwise.
|
|
193
|
-
*/
|
|
194
|
-
grabExecutionRights() {
|
|
195
|
-
// This method cannot be async, because it should do a compare-and-set on the task's phase in an atomic manner.
|
|
196
|
-
// This atomicity ensures that a task will only be executed once.
|
|
197
|
-
if (this.task.hasPhase()) {
|
|
198
|
-
return false;
|
|
199
|
-
}
|
|
200
|
-
this.task.setPhase('UNSTARTED');
|
|
201
|
-
return true;
|
|
202
|
-
}
|
|
203
|
-
async runPhases() {
|
|
204
|
-
const rightsGrabbed = this.grabExecutionRights();
|
|
205
|
-
if (!rightsGrabbed) {
|
|
206
|
-
await this.eventPublisher.awaitFor('taskPhaseEnded', e => e.taskName === this.taskName && e.phase === 'TERMINAL');
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
this.tracker.changeStatus(this.taskName, 'RUNNING');
|
|
210
|
-
let phase = 'RUNNING';
|
|
211
|
-
while (true) {
|
|
212
|
-
this.task.setPhase(phase);
|
|
213
|
-
await this.eventPublisher.publish('taskPhaseEnded', { taskName: this.taskName, phase });
|
|
214
|
-
if (phase === 'TERMINAL') {
|
|
215
|
-
break;
|
|
216
|
-
}
|
|
217
|
-
phase = await this.executePhase(phase);
|
|
218
|
-
await this.phasePublisher.publish('phase', phase);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
async executePhase(phase) {
|
|
222
|
-
this.logger.info(`Running ${phase} of ${this.taskName}`);
|
|
223
|
-
this.diagnose(`Running phase ${phase}`);
|
|
224
|
-
const t = this.task;
|
|
225
|
-
// TODO(imaman): some of the phases are essentially a no-op and can be eliminated.
|
|
226
|
-
if (phase === 'UNSTARTED') {
|
|
227
|
-
return 'RUNNING';
|
|
228
|
-
}
|
|
229
|
-
if (phase === 'RUNNING') {
|
|
230
|
-
return 'COMPUTE_FINGERPRINT';
|
|
231
|
-
}
|
|
232
|
-
if (phase === 'COMPUTE_FINGERPRINT') {
|
|
233
|
-
this.fp_ = await this.computeFingerprint();
|
|
234
|
-
this.diagnose(`fingerprint is ${this.fp_}`);
|
|
235
|
-
return 'POSSIBLY_RESTORE_OUTPUTS';
|
|
236
|
-
}
|
|
237
|
-
if (phase === 'POSSIBLY_RESTORE_OUTPUTS') {
|
|
238
|
-
const earlierVerdict = await this.getVerdict();
|
|
239
|
-
this.diagnose(`earlierVerdict is ${earlierVerdict}`);
|
|
240
|
-
const useCaching = this.task.taskInfo.useCaching ?? true;
|
|
241
|
-
if (earlierVerdict === 'UNKNOWN' || (this.isTest && !this.testCaching) || !useCaching) {
|
|
242
|
-
await this.purgeOutputs(false);
|
|
243
|
-
return 'RUN_IT';
|
|
244
|
-
}
|
|
245
|
-
await this.purgeOutputs(true);
|
|
246
|
-
await this.restoreOutputs();
|
|
247
|
-
if (earlierVerdict === 'FAIL') {
|
|
248
|
-
return 'RUN_IT';
|
|
249
|
-
}
|
|
250
|
-
if (earlierVerdict === 'OK' || earlierVerdict === 'FLAKY') {
|
|
251
|
-
this.tracker.registerCachedVerdict(t.name, earlierVerdict);
|
|
252
|
-
return 'SKIP';
|
|
253
|
-
}
|
|
254
|
-
(0, misc_1.shouldNeverHappen)(earlierVerdict);
|
|
255
|
-
}
|
|
256
|
-
if (phase === 'SKIP') {
|
|
257
|
-
await this.eventPublisher.publish('executionSkipped', t.name);
|
|
258
|
-
return 'TERMINAL';
|
|
259
|
-
}
|
|
260
|
-
if (phase === 'RUN_IT') {
|
|
261
|
-
this.diagnose('running it');
|
|
262
|
-
await this.runIt();
|
|
263
|
-
return 'TERMINAL';
|
|
264
|
-
}
|
|
265
|
-
if (phase === 'TERMINAL') {
|
|
266
|
-
throw new Error(`task ${t.name} is already in state ${phase}`);
|
|
267
|
-
}
|
|
268
|
-
(0, misc_1.shouldNeverHappen)(phase);
|
|
269
|
-
}
|
|
270
|
-
async restoreOutputs() {
|
|
271
|
-
this.diagnose(`restoring outputs`);
|
|
272
|
-
const t = this.task;
|
|
273
|
-
await this.taskStore.restoreTask(t.name, this.fp);
|
|
274
|
-
this.diagnose(`task restored`);
|
|
275
|
-
}
|
|
276
|
-
async getVerdict() {
|
|
277
|
-
const earlierVerdict = await this.taskStore.checkVerdict(this.task.name, this.fp);
|
|
278
|
-
return earlierVerdict;
|
|
279
|
-
}
|
|
280
|
-
async runIt() {
|
|
281
|
-
const t = this.task;
|
|
282
|
-
const t0 = Date.now();
|
|
283
|
-
await this.eventPublisher.publish('executionStarted', t.name);
|
|
284
|
-
const outputFile = path.join(this.taskOutputDir, `${t.id}.stdout`);
|
|
285
|
-
const status = await this.repoProtocol.execute(t.name, outputFile, this.model.buildRunId);
|
|
286
|
-
await this.postProcess(status, outputFile, Date.now() - t0);
|
|
287
|
-
this.diagnose(`status=${status}`);
|
|
288
|
-
if (status === 'CRASH') {
|
|
289
|
-
throw new Error(`Task ${JSON.stringify(t.name)} crashed`);
|
|
290
|
-
}
|
|
291
|
-
const outputs = t.outputLocations.map(at => ({ isPublic: false, ...at }));
|
|
292
|
-
if (status === 'OK') {
|
|
293
|
-
await this.validateOutputs();
|
|
294
|
-
this.diagnose(`registering verdict`);
|
|
295
|
-
this.tracker.registerVerdict(t.name, status, outputFile);
|
|
296
|
-
this.diagnose(`recording outputs: ${JSON.stringify(outputs)}`);
|
|
297
|
-
await this.taskStore.recordTask(t.name, this.fp, outputs, 'OK');
|
|
298
|
-
this.diagnose(`...outputs recorded`);
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
if (status === 'FAIL') {
|
|
302
|
-
this.tracker.registerVerdict(t.name, status, outputFile);
|
|
303
|
-
// TODO(imaman): should not record outputs if task has failed.
|
|
304
|
-
await this.taskStore.recordTask(t.name, this.fp, outputs, status);
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
(0, misc_1.shouldNeverHappen)(status);
|
|
308
|
-
}
|
|
309
|
-
async purgeOutputs(isRestore) {
|
|
310
|
-
if (isRestore) {
|
|
311
|
-
return;
|
|
312
|
-
}
|
|
313
|
-
this.diagnose(`purging outputs`);
|
|
314
|
-
const taskNames = [this.taskName];
|
|
315
|
-
const tasks = taskNames.map(tn => this.tracker.getTask(tn));
|
|
316
|
-
await (0, misc_1.promises)(tasks).forEach(20, async (task) => {
|
|
317
|
-
await this.purger.purgeOutputsOfTask(task);
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90YXNrLWV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUFxRDtBQUNyRCw4Q0FBK0I7QUFFL0IsK0JBQTBFO0FBQzFFLDJDQUE0QjtBQUU1Qix5Q0FBb0M7QUFXcEM7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUFDdkIsWUFDbUIsS0FBWSxFQUNaLE9BQW9CLEVBQ3BCLE1BQWMsRUFDZCxZQUEwQixFQUMxQixTQUFvQixFQUNwQixhQUFxQixFQUNyQixjQUFpRCxFQUNqRCxpQkFBb0MsRUFDcEMsTUFBYyxFQUNkLFdBQW9CLEVBQ3BCLGVBQXlCO1FBVnpCLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQztRQUNqRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxnQkFBVyxHQUFYLFdBQVcsQ0FBUztRQUNwQixvQkFBZSxHQUFmLGVBQWUsQ0FBVTtJQUN6QyxDQUFDO0lBRUo7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFrQixFQUFFLGVBQTJCO1FBQy9ELE1BQU0sR0FBRyxHQUFHLElBQUksa0JBQWtCLENBQ2hDLFFBQVEsRUFDUixlQUFlLEVBQ2YsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFNBQVMsRUFDZCxJ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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,61 +0,0 @@
|
|
|
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
|
-
const core_types_1 = require("core-types");
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const logger_1 = require("logger");
|
|
39
|
-
const misc_1 = require("misc");
|
|
40
|
-
const os = __importStar(require("os"));
|
|
41
|
-
const path = __importStar(require("path"));
|
|
42
|
-
const task_store_1 = require("./task-store");
|
|
43
|
-
function print(...args) {
|
|
44
|
-
console.log(...args); // eslint-disable-line no-console
|
|
45
|
-
}
|
|
46
|
-
async function main(args) {
|
|
47
|
-
if (args.length !== 3) {
|
|
48
|
-
print(`Usage: ${path.basename(__filename)} <blob-id>`);
|
|
49
|
-
process.exitCode = 1;
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const sc = await misc_1.FilesystemStorageClient.create(path.join(os.homedir(), '.build-raptor/storage'));
|
|
53
|
-
const blobId = (0, task_store_1.BlobId)(args[2].trim());
|
|
54
|
-
const outputDir = path.join(process.cwd(), blobId);
|
|
55
|
-
const taskStore = new task_store_1.TaskStore((0, core_types_1.RepoRoot)(outputDir), sc, (0, logger_1.createNopLogger)());
|
|
56
|
-
fs.mkdirSync(outputDir);
|
|
57
|
-
await taskStore.restoreBlob(blobId);
|
|
58
|
-
print(`Blob restored to ${outputDir}`);
|
|
59
|
-
}
|
|
60
|
-
main(process.argv);
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1zdG9yZS1jbGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFzay1zdG9yZS1jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBcUM7QUFDckMsdUNBQXdCO0FBQ3hCLG1DQUF3QztBQUN4QywrQkFBOEM7QUFDOUMsdUNBQXdCO0FBQ3hCLDJDQUE0QjtBQUU1Qiw2Q0FBZ0Q7QUFFaEQsU0FBUyxLQUFLLENBQUMsR0FBRyxJQUFlO0lBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQSxDQUFDLGlDQUFpQztBQUN4RCxDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFjO0lBQ2hDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QixLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUN0RCxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQTtRQUNwQixPQUFNO0lBQ1IsQ0FBQztJQUVELE1BQU0sRUFBRSxHQUFHLE1BQU0sOEJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQTtJQUVqRyxNQUFNLE1BQU0sR0FBRyxJQUFBLG1CQUFNLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7SUFFckMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDbEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxzQkFBUyxDQUFDLElBQUEscUJBQVEsRUFBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBQSx3QkFBZSxHQUFFLENBQUMsQ0FBQTtJQUMzRSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZCLE1BQU0sU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNuQyxLQUFLLENBQUMsb0JBQW9CLFNBQVMsRUFBRSxDQUFDLENBQUE7QUFDeEMsQ0FBQztBQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUEifQ==
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { TaskName } from 'task-name';
|
|
2
|
-
export type TaskStoreEvent = {
|
|
3
|
-
taskStore: {
|
|
4
|
-
opcode: 'RECORDED' | 'RESTORED';
|
|
5
|
-
taskName: TaskName;
|
|
6
|
-
blobId: string;
|
|
7
|
-
fingerprint: string;
|
|
8
|
-
files: string[];
|
|
9
|
-
};
|
|
10
|
-
publicFiles: {
|
|
11
|
-
taskName: TaskName;
|
|
12
|
-
/**
|
|
13
|
-
* Maps path-in-repo to the hash of the contnet of the file
|
|
14
|
-
*/
|
|
15
|
-
publicFiles: Record<string, string>;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1zdG9yZS1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90YXNrLXN0b3JlLWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Brand } from 'brand';
|
|
2
|
-
import { PathInRepo, RepoRoot } from 'core-types';
|
|
3
|
-
import { Logger } from 'logger';
|
|
4
|
-
import { StorageClient, TypedPublisher } from 'misc';
|
|
5
|
-
import { TaskName } from 'task-name';
|
|
6
|
-
import { Fingerprint } from './fingerprint';
|
|
7
|
-
import { TaskStoreEvent } from './task-store-event';
|
|
8
|
-
type OutputDescriptor = {
|
|
9
|
-
pathInRepo: PathInRepo;
|
|
10
|
-
isPublic: boolean;
|
|
11
|
-
};
|
|
12
|
-
export type BlobId = Brand<string, 'BlobId'>;
|
|
13
|
-
export declare const BlobId: (s: string) => BlobId;
|
|
14
|
-
export declare class TaskStore {
|
|
15
|
-
readonly repoRootDir: RepoRoot;
|
|
16
|
-
private readonly client;
|
|
17
|
-
private readonly logger;
|
|
18
|
-
private readonly publisher?;
|
|
19
|
-
private readonly trace?;
|
|
20
|
-
constructor(repoRootDir: RepoRoot, client: StorageClient, logger: Logger, publisher?: TypedPublisher<TaskStoreEvent> | undefined, trace?: string[] | undefined);
|
|
21
|
-
private putBlob;
|
|
22
|
-
private getBlob;
|
|
23
|
-
private getIfExists;
|
|
24
|
-
private putVerdict;
|
|
25
|
-
private getVerdict;
|
|
26
|
-
private bundle;
|
|
27
|
-
private unbundle;
|
|
28
|
-
/**
|
|
29
|
-
* Use only from tests
|
|
30
|
-
*/
|
|
31
|
-
recordTaskForTesting(taskName: TaskName, fingerprint: Fingerprint, outputs: PathInRepo[], verdict: 'OK' | 'FAIL'): Promise<void>;
|
|
32
|
-
recordTask(taskName: TaskName, fingerprint: Fingerprint, outputs: OutputDescriptor[], verdict: 'OK' | 'FAIL'): Promise<void>;
|
|
33
|
-
private recordBlob;
|
|
34
|
-
restoreTask(taskName: TaskName, fingerprint: Fingerprint): Promise<'FAIL' | 'OK' | 'FLAKY' | 'UNKNOWN'>;
|
|
35
|
-
restoreBlob(blobId: BlobId): Promise<{
|
|
36
|
-
files: PathInRepo[];
|
|
37
|
-
publicFiles: Record<string, string>;
|
|
38
|
-
}>;
|
|
39
|
-
checkVerdict(taskName: TaskName, fingerprint: Fingerprint): Promise<'FAIL' | 'OK' | 'FLAKY' | 'UNKNOWN'>;
|
|
40
|
-
}
|
|
41
|
-
export {};
|