@alwaysmeticulous/remote-replay-launcher 2.296.0 → 2.297.1
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/__tests__/upload-asset-chunk.spec.d.ts +1 -0
- package/dist/__tests__/upload-asset-chunk.spec.js +46 -0
- package/dist/__tests__/upload-asset-chunk.spec.js.map +1 -0
- package/dist/asset-upload-utils.js +5 -3
- package/dist/asset-upload-utils.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/run-with-uploaded-asset-chunks.d.ts +26 -0
- package/dist/run-with-uploaded-asset-chunks.js +123 -0
- package/dist/run-with-uploaded-asset-chunks.js.map +1 -0
- package/dist/upload-asset-chunk.d.ts +40 -0
- package/dist/upload-asset-chunk.js +176 -0
- package/dist/upload-asset-chunk.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b8a436f7-ab35-5fe9-bbaf-247900de378a")}catch(e){}}();
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
const promises_1 = require("fs/promises");
|
|
6
|
+
const os_1 = require("os");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const zlib_1 = require("zlib");
|
|
9
|
+
const tar_1 = require("tar");
|
|
10
|
+
const vitest_1 = require("vitest");
|
|
11
|
+
const upload_asset_chunk_1 = require("../upload-asset-chunk");
|
|
12
|
+
(0, vitest_1.describe)("writeCompressedTar", () => {
|
|
13
|
+
let baseDir;
|
|
14
|
+
let sourceDir;
|
|
15
|
+
let extractDir;
|
|
16
|
+
(0, vitest_1.beforeEach)(async () => {
|
|
17
|
+
baseDir = await (0, promises_1.mkdtemp)((0, path_1.join)((0, os_1.tmpdir)(), "upload-asset-chunk-test-"));
|
|
18
|
+
sourceDir = (0, path_1.join)(baseDir, "source");
|
|
19
|
+
extractDir = (0, path_1.join)(baseDir, "extract");
|
|
20
|
+
await (0, promises_1.mkdir)(sourceDir, { recursive: true });
|
|
21
|
+
await (0, promises_1.mkdir)(extractDir, { recursive: true });
|
|
22
|
+
});
|
|
23
|
+
(0, vitest_1.afterEach)(async () => {
|
|
24
|
+
await (0, promises_1.rm)(baseDir, { recursive: true, force: true });
|
|
25
|
+
});
|
|
26
|
+
(0, vitest_1.it)("follows symlinks, storing them as regular files and indexing them", async () => {
|
|
27
|
+
await (0, promises_1.writeFile)((0, path_1.join)(sourceDir, "real.txt"), "Hello World");
|
|
28
|
+
await (0, promises_1.symlink)("real.txt", (0, path_1.join)(sourceDir, "link.txt"));
|
|
29
|
+
const tarballPath = (0, path_1.join)(baseDir, "chunk.tar.d");
|
|
30
|
+
const { filePaths } = await (0, upload_asset_chunk_1.writeCompressedTar)({
|
|
31
|
+
cwd: sourceDir,
|
|
32
|
+
destination: tarballPath,
|
|
33
|
+
});
|
|
34
|
+
const normalizedPaths = filePaths.map((p) => p.replace(/^\.\//, ""));
|
|
35
|
+
(0, vitest_1.expect)(normalizedPaths).toEqual(vitest_1.expect.arrayContaining(["real.txt", "link.txt"]));
|
|
36
|
+
const tarPath = (0, path_1.join)(baseDir, "chunk.tar");
|
|
37
|
+
await (0, promises_1.writeFile)(tarPath, (0, zlib_1.inflateRawSync)(await (0, promises_1.readFile)(tarballPath)));
|
|
38
|
+
await (0, tar_1.x)({ file: tarPath, cwd: extractDir });
|
|
39
|
+
const extractedLinkStat = await (0, promises_1.lstat)((0, path_1.join)(extractDir, "link.txt"));
|
|
40
|
+
(0, vitest_1.expect)(extractedLinkStat.isSymbolicLink()).toBe(false);
|
|
41
|
+
(0, vitest_1.expect)(extractedLinkStat.isFile()).toBe(true);
|
|
42
|
+
(0, vitest_1.expect)(await (0, promises_1.readFile)((0, path_1.join)(extractDir, "link.txt"), "utf8")).toBe("Hello World");
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=upload-asset-chunk.spec.js.map
|
|
46
|
+
//# debugId=b8a436f7-ab35-5fe9-bbaf-247900de378a
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-asset-chunk.spec.js","sources":["../../src/__tests__/upload-asset-chunk.spec.ts"],"sourceRoot":"","names":[],"mappings":";;;;AAAA,0CAAsF;AACtF,2BAA4B;AAC5B,+BAA4B;AAC5B,+BAAsC;AACtC,6BAAsC;AACtC,mCAAqE;AACrE,8DAA2D;AAE3D,IAAA,iBAAQ,EAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,OAAe,CAAC;IACpB,IAAI,SAAiB,CAAC;IACtB,IAAI,UAAkB,CAAC;IAEvB,IAAA,mBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,OAAO,GAAG,MAAM,IAAA,kBAAO,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;QACpE,SAAS,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpC,UAAU,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACtC,MAAM,IAAA,gBAAK,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,IAAA,gBAAK,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,KAAK,IAAI,EAAE;QACnB,MAAM,IAAA,aAAE,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;QAC5D,MAAM,IAAA,kBAAO,EAAC,UAAU,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACjD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,uCAAkB,EAAC;YAC7C,GAAG,EAAE,SAAS;YACd,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACrE,IAAA,eAAM,EAAC,eAAe,CAAC,CAAC,OAAO,CAC7B,eAAM,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CACjD,CAAC;QAEF,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC3C,MAAM,IAAA,oBAAS,EAAC,OAAO,EAAE,IAAA,qBAAc,EAAC,MAAM,IAAA,mBAAQ,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,IAAA,OAAU,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;QAErD,MAAM,iBAAiB,GAAG,MAAM,IAAA,gBAAK,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QACpE,IAAA,eAAM,EAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,IAAA,eAAM,EAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAA,eAAM,EAAC,MAAM,IAAA,mBAAQ,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAC/D,aAAa,CACd,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","debugId":"b8a436f7-ab35-5fe9-bbaf-247900de378a"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f199d201-4b13-5b53-a483-a53fba90f319")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
5
|
if (k2 === undefined) k2 = k;
|
|
@@ -38,6 +38,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
38
38
|
exports.uploadAssetsFromZip = exports.uploadGitDiffToS3 = exports.uploadAssets = void 0;
|
|
39
39
|
const fs_1 = require("fs");
|
|
40
40
|
const promises_1 = require("fs/promises");
|
|
41
|
+
const http_1 = require("http");
|
|
41
42
|
const https_1 = require("https");
|
|
42
43
|
const path_1 = require("path");
|
|
43
44
|
const client_1 = require("@alwaysmeticulous/client");
|
|
@@ -189,7 +190,8 @@ const putBufferToSignedUrl = async (signedUrl, buffer, options) => {
|
|
|
189
190
|
if (options?.contentType) {
|
|
190
191
|
headers["Content-Type"] = options.contentType;
|
|
191
192
|
}
|
|
192
|
-
const
|
|
193
|
+
const requestFn = signedUrl.startsWith("https:") ? https_1.request : http_1.request;
|
|
194
|
+
const req = requestFn(signedUrl, {
|
|
193
195
|
agent: (0, client_1.getProxyAgent)(),
|
|
194
196
|
method: "PUT",
|
|
195
197
|
headers,
|
|
@@ -304,4 +306,4 @@ const uploadFileToSignedUrl = async (filePath, signedUrl, expectedFileSize) => {
|
|
|
304
306
|
logger.info("Successfully uploaded deployment assets");
|
|
305
307
|
};
|
|
306
308
|
//# sourceMappingURL=asset-upload-utils.js.map
|
|
307
|
-
//# debugId=
|
|
309
|
+
//# debugId=f199d201-4b13-5b53-a483-a53fba90f319
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-upload-utils.js","sources":["../src/asset-upload-utils.ts"],"sourceRoot":"","names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAAgC;AAChC,0CAA2C;
|
|
1
|
+
{"version":3,"file":"asset-upload-utils.js","sources":["../src/asset-upload-utils.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"f199d201-4b13-5b53-a483-a53fba90f319"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,4 +3,6 @@ export { uploadAssetsAndTriggerTestRun } from "./upload-assets-and-trigger-test-
|
|
|
3
3
|
export { uploadAssets, uploadAssetsFromZip } from "./asset-upload-utils";
|
|
4
4
|
export { uploadContainerAndTriggerTestRun } from "./upload-container-and-trigger-test-run";
|
|
5
5
|
export { uploadContainer } from "./upload-container";
|
|
6
|
+
export { uploadAssetChunk, UploadAssetChunkOptions } from "./upload-asset-chunk";
|
|
7
|
+
export { runWithUploadedAssetChunks, RunWithUploadedAssetChunksOptions, RunWithUploadedAssetChunksResult, } from "./run-with-uploaded-asset-chunks";
|
|
6
8
|
export { TunnelData } from "./types";
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f03bb35e-984d-50e7-8b01-64ba402ee008")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.uploadContainer = exports.uploadContainerAndTriggerTestRun = exports.uploadAssetsFromZip = exports.uploadAssets = exports.uploadAssetsAndTriggerTestRun = exports.executeRemoteTestRun = void 0;
|
|
5
|
+
exports.runWithUploadedAssetChunks = exports.uploadAssetChunk = exports.uploadContainer = exports.uploadContainerAndTriggerTestRun = exports.uploadAssetsFromZip = exports.uploadAssets = exports.uploadAssetsAndTriggerTestRun = exports.executeRemoteTestRun = void 0;
|
|
6
6
|
var execute_remote_test_run_1 = require("./execute-remote-test-run");
|
|
7
7
|
Object.defineProperty(exports, "executeRemoteTestRun", { enumerable: true, get: function () { return execute_remote_test_run_1.executeRemoteTestRun; } });
|
|
8
8
|
var upload_assets_and_trigger_test_run_1 = require("./upload-assets-and-trigger-test-run");
|
|
@@ -14,5 +14,9 @@ var upload_container_and_trigger_test_run_1 = require("./upload-container-and-tr
|
|
|
14
14
|
Object.defineProperty(exports, "uploadContainerAndTriggerTestRun", { enumerable: true, get: function () { return upload_container_and_trigger_test_run_1.uploadContainerAndTriggerTestRun; } });
|
|
15
15
|
var upload_container_1 = require("./upload-container");
|
|
16
16
|
Object.defineProperty(exports, "uploadContainer", { enumerable: true, get: function () { return upload_container_1.uploadContainer; } });
|
|
17
|
+
var upload_asset_chunk_1 = require("./upload-asset-chunk");
|
|
18
|
+
Object.defineProperty(exports, "uploadAssetChunk", { enumerable: true, get: function () { return upload_asset_chunk_1.uploadAssetChunk; } });
|
|
19
|
+
var run_with_uploaded_asset_chunks_1 = require("./run-with-uploaded-asset-chunks");
|
|
20
|
+
Object.defineProperty(exports, "runWithUploadedAssetChunks", { enumerable: true, get: function () { return run_with_uploaded_asset_chunks_1.runWithUploadedAssetChunks; } });
|
|
17
21
|
//# sourceMappingURL=index.js.map
|
|
18
|
-
//# debugId=
|
|
22
|
+
//# debugId=f03bb35e-984d-50e7-8b01-64ba402ee008
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA;AAC7B,2FAAqF;AAA5E,mJAAA,6BAA6B,OAAA;AACtC,2DAAyE;AAAhE,kHAAA,YAAY,OAAA;AAAE,yHAAA,mBAAmB,OAAA;AAC1C,iGAA2F;AAAlF,yJAAA,gCAAgC,OAAA;AACzC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA","debugId":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA;AAC7B,2FAAqF;AAA5E,mJAAA,6BAA6B,OAAA;AACtC,2DAAyE;AAAhE,kHAAA,YAAY,OAAA;AAAE,yHAAA,mBAAmB,OAAA;AAC1C,iGAA2F;AAAlF,yJAAA,gCAAgC,OAAA;AACzC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,2DAAiF;AAAxE,sHAAA,gBAAgB,OAAA;AACzB,mFAI0C;AAHxC,4IAAA,0BAA0B,OAAA","debugId":"f03bb35e-984d-50e7-8b01-64ba402ee008"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AssetUploadMetadata, TestRun } from "@alwaysmeticulous/api";
|
|
2
|
+
import { ChunkPathOverlap, createClient, ProjectAssetChunkReference, ProjectIdentifier } from "@alwaysmeticulous/client";
|
|
3
|
+
export interface RunWithUploadedAssetChunksOptions extends ProjectIdentifier {
|
|
4
|
+
client: ReturnType<typeof createClient>;
|
|
5
|
+
commitSha: string;
|
|
6
|
+
baseSha?: string | undefined;
|
|
7
|
+
gitDiffOutput?: string | undefined;
|
|
8
|
+
withUncommittedChanges?: boolean | undefined;
|
|
9
|
+
waitForBase: boolean;
|
|
10
|
+
rewrites: AssetUploadMetadata["rewrites"];
|
|
11
|
+
createDeployment?: boolean;
|
|
12
|
+
assetReferencesManifest: ProjectAssetChunkReference[];
|
|
13
|
+
}
|
|
14
|
+
export interface RunWithUploadedAssetChunksResult {
|
|
15
|
+
testRun: TestRun | null;
|
|
16
|
+
message?: string;
|
|
17
|
+
overlaps?: ChunkPathOverlap[];
|
|
18
|
+
overlapsTruncated?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Two-phase chunked-asset-upload run: (1) create the deployment row and obtain
|
|
22
|
+
* the server-generated id, (2) upload the git diff to S3 keyed by that id, then
|
|
23
|
+
* trigger the run, polling for the base test run with the same retry/fallback
|
|
24
|
+
* shape as `completeUploadAndWaitForBase` in `asset-upload-utils`.
|
|
25
|
+
*/
|
|
26
|
+
export declare const runWithUploadedAssetChunks: ({ client, commitSha, baseSha, gitDiffOutput, withUncommittedChanges, waitForBase, rewrites, createDeployment, assetReferencesManifest, projectId, }: RunWithUploadedAssetChunksOptions) => Promise<RunWithUploadedAssetChunksResult>;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0e89a3af-3f2c-5083-ac6c-7d95df1709b9")}catch(e){}}();
|
|
3
|
+
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
21
|
+
var ownKeys = function(o) {
|
|
22
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
23
|
+
var ar = [];
|
|
24
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
25
|
+
return ar;
|
|
26
|
+
};
|
|
27
|
+
return ownKeys(o);
|
|
28
|
+
};
|
|
29
|
+
return function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
})();
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.runWithUploadedAssetChunks = void 0;
|
|
39
|
+
const client_1 = require("@alwaysmeticulous/client");
|
|
40
|
+
const common_1 = require("@alwaysmeticulous/common");
|
|
41
|
+
const Sentry = __importStar(require("@sentry/node"));
|
|
42
|
+
const asset_upload_utils_1 = require("./asset-upload-utils");
|
|
43
|
+
const poll_for_base_test_run_1 = require("./poll-for-base-test-run");
|
|
44
|
+
/**
|
|
45
|
+
* Two-phase chunked-asset-upload run: (1) create the deployment row and obtain
|
|
46
|
+
* the server-generated id, (2) upload the git diff to S3 keyed by that id, then
|
|
47
|
+
* trigger the run, polling for the base test run with the same retry/fallback
|
|
48
|
+
* shape as `completeUploadAndWaitForBase` in `asset-upload-utils`.
|
|
49
|
+
*/
|
|
50
|
+
const runWithUploadedAssetChunks = async ({ client, commitSha, baseSha, gitDiffOutput, withUncommittedChanges, waitForBase, rewrites, createDeployment = true, assetReferencesManifest, projectId, }) => {
|
|
51
|
+
const logger = (0, common_1.initLogger)();
|
|
52
|
+
// Phase 1: create the deployment row and get back the server-generated id.
|
|
53
|
+
// No replay is triggered yet — that happens in phase 2, after the git diff
|
|
54
|
+
// (if any) has been uploaded to S3 keyed by this id.
|
|
55
|
+
const { sourceDeploymentId, overlaps, overlapsTruncated } = await (0, client_1.createRunWithUploadedAssetChunks)({
|
|
56
|
+
client,
|
|
57
|
+
commitSha,
|
|
58
|
+
createDeployment,
|
|
59
|
+
assetReferencesManifest,
|
|
60
|
+
rewrites,
|
|
61
|
+
...(projectId ? { projectId } : {}),
|
|
62
|
+
});
|
|
63
|
+
// Overlaps are computed on the phase-1 response only; they describe the
|
|
64
|
+
// manifest itself, which doesn't change when triggering the run.
|
|
65
|
+
const overlapsResult = overlaps && overlaps.length > 0
|
|
66
|
+
? { overlaps, ...(overlapsTruncated ? { overlapsTruncated: true } : {}) }
|
|
67
|
+
: {};
|
|
68
|
+
// Dry run (createDeployment: false) creates no deployment, so there is no
|
|
69
|
+
// diff to upload and no run to trigger — just surface the overlaps.
|
|
70
|
+
if (createDeployment === false || !sourceDeploymentId) {
|
|
71
|
+
return { testRun: null, ...overlapsResult };
|
|
72
|
+
}
|
|
73
|
+
// Upload the git diff to S3, keyed by the deployment id, so the replay can
|
|
74
|
+
// read it. Mirrors uploadAssetsStreaming / uploadContainerAndTriggerTestRun.
|
|
75
|
+
if (gitDiffOutput) {
|
|
76
|
+
await (0, asset_upload_utils_1.uploadGitDiffToS3)({
|
|
77
|
+
client,
|
|
78
|
+
uploadId: sourceDeploymentId,
|
|
79
|
+
gitDiffOutput,
|
|
80
|
+
...(projectId ? { projectId } : {}),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// Phase 2: trigger the run against the created deployment, polling for the
|
|
84
|
+
// base test run with the same retry/fallback shape as the asset upload flow.
|
|
85
|
+
const args = {
|
|
86
|
+
client,
|
|
87
|
+
sourceDeploymentId,
|
|
88
|
+
commitSha,
|
|
89
|
+
...(baseSha ? { baseSha } : {}),
|
|
90
|
+
...(gitDiffOutput ? { hasGitDiff: true } : {}),
|
|
91
|
+
...(withUncommittedChanges ? { withUncommittedChanges } : {}),
|
|
92
|
+
mustHaveBase: waitForBase,
|
|
93
|
+
...(projectId ? { projectId } : {}),
|
|
94
|
+
};
|
|
95
|
+
const initialResult = await (0, client_1.triggerRunWithUploadedAssetChunks)(args);
|
|
96
|
+
const { testRun, baseNotFound, message } = await (0, poll_for_base_test_run_1.pollWhileBaseNotFound)({
|
|
97
|
+
initialResult: {
|
|
98
|
+
testRun: initialResult?.testRun ?? null,
|
|
99
|
+
baseNotFound: initialResult?.baseNotFound,
|
|
100
|
+
message: initialResult?.message,
|
|
101
|
+
},
|
|
102
|
+
retryFn: () => (0, client_1.triggerRunWithUploadedAssetChunks)(args),
|
|
103
|
+
fallbackFn: () => (0, client_1.triggerRunWithUploadedAssetChunks)({ ...args, mustHaveBase: false }),
|
|
104
|
+
});
|
|
105
|
+
Sentry.captureMessage("Test run triggered against uploaded asset chunks", {
|
|
106
|
+
level: "debug",
|
|
107
|
+
extra: {
|
|
108
|
+
commitSha,
|
|
109
|
+
testRunId: testRun?.id,
|
|
110
|
+
baseNotFound,
|
|
111
|
+
chunkCount: assetReferencesManifest.length,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
logger.info(`Test run triggered against ${assetReferencesManifest.length} uploaded asset chunk(s)`);
|
|
115
|
+
return {
|
|
116
|
+
testRun: testRun ?? null,
|
|
117
|
+
...(message ? { message } : {}),
|
|
118
|
+
...overlapsResult,
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
exports.runWithUploadedAssetChunks = runWithUploadedAssetChunks;
|
|
122
|
+
//# sourceMappingURL=run-with-uploaded-asset-chunks.js.map
|
|
123
|
+
//# debugId=0e89a3af-3f2c-5083-ac6c-7d95df1709b9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-with-uploaded-asset-chunks.js","sources":["../src/run-with-uploaded-asset-chunks.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"0e89a3af-3f2c-5083-ac6c-7d95df1709b9"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ProjectIdentifier } from "@alwaysmeticulous/client";
|
|
2
|
+
export interface UploadAssetChunkOptions extends ProjectIdentifier {
|
|
3
|
+
apiToken: string | null | undefined;
|
|
4
|
+
chunkName: string;
|
|
5
|
+
chunkVersionId: string;
|
|
6
|
+
chunkAssetsDirectory: string;
|
|
7
|
+
chunkAssetsDirectoryPrefix?: string | undefined;
|
|
8
|
+
commitSha?: string | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* When true, the server re-issues a presigned URL even if the chunk is
|
|
11
|
+
* already `uploaded`. Use for recovery from corrupted S3 objects.
|
|
12
|
+
*/
|
|
13
|
+
force?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Tars `chunkAssetsDirectory` (prepending `chunkAssetsDirectoryPrefix` to
|
|
17
|
+
* each entry's path inside the tar), compresses it with raw deflate (the
|
|
18
|
+
* same encoding the non-chunked tar.d path uses), uploads to S3 via a
|
|
19
|
+
* presigned URL, then marks the chunk as uploaded. The asset server
|
|
20
|
+
* inflates each chunk on demand and serves files through a tar-aware
|
|
21
|
+
* facade. A `files.json` index listing the paths inside the tar is uploaded
|
|
22
|
+
* alongside the tarball so the server can serve individual files by name.
|
|
23
|
+
*/
|
|
24
|
+
export declare const uploadAssetChunk: ({ apiToken: apiToken_, chunkName, chunkVersionId, chunkAssetsDirectory, chunkAssetsDirectoryPrefix, commitSha, force, projectId, }: UploadAssetChunkOptions) => Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Streams a tar of `cwd` through `DeflateRaw` and writes the compressed
|
|
27
|
+
* bytes to `destination`. Produces the same on-disk format as the
|
|
28
|
+
* non-chunked `tar.d` archives (raw deflate, no zlib header) so the asset
|
|
29
|
+
* server can decompress chunks with the existing
|
|
30
|
+
* `streamDownloadAndInflateTar` helper.
|
|
31
|
+
*
|
|
32
|
+
* Exported for tests.
|
|
33
|
+
*/
|
|
34
|
+
export declare const writeCompressedTar: ({ cwd, destination, prefix, }: {
|
|
35
|
+
cwd: string;
|
|
36
|
+
destination: string;
|
|
37
|
+
prefix?: string;
|
|
38
|
+
}) => Promise<{
|
|
39
|
+
filePaths: string[];
|
|
40
|
+
}>;
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="78d197d5-eb3a-590a-9062-9924a73ea63e")}catch(e){}}();
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.writeCompressedTar = exports.uploadAssetChunk = void 0;
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const promises_1 = require("fs/promises");
|
|
8
|
+
const os_1 = require("os");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const zlib_1 = require("zlib");
|
|
11
|
+
const client_1 = require("@alwaysmeticulous/client");
|
|
12
|
+
const common_1 = require("@alwaysmeticulous/common");
|
|
13
|
+
const fast_zlib_1 = require("fast-zlib");
|
|
14
|
+
const tar_1 = require("tar");
|
|
15
|
+
/**
|
|
16
|
+
* Matches the deflate level used by the non-chunked tar.d uploader so the
|
|
17
|
+
* two encoding paths produce comparable artifacts (see
|
|
18
|
+
* `MultipartCompressingUploader`).
|
|
19
|
+
*/
|
|
20
|
+
const COMPRESSION_LEVEL = 3;
|
|
21
|
+
/**
|
|
22
|
+
* Tars `chunkAssetsDirectory` (prepending `chunkAssetsDirectoryPrefix` to
|
|
23
|
+
* each entry's path inside the tar), compresses it with raw deflate (the
|
|
24
|
+
* same encoding the non-chunked tar.d path uses), uploads to S3 via a
|
|
25
|
+
* presigned URL, then marks the chunk as uploaded. The asset server
|
|
26
|
+
* inflates each chunk on demand and serves files through a tar-aware
|
|
27
|
+
* facade. A `files.json` index listing the paths inside the tar is uploaded
|
|
28
|
+
* alongside the tarball so the server can serve individual files by name.
|
|
29
|
+
*/
|
|
30
|
+
const uploadAssetChunk = async ({ apiToken: apiToken_, chunkName, chunkVersionId, chunkAssetsDirectory, chunkAssetsDirectoryPrefix, commitSha, force, projectId, }) => {
|
|
31
|
+
const logger = (0, common_1.initLogger)();
|
|
32
|
+
const resolvedDir = (0, path_1.resolve)(chunkAssetsDirectory);
|
|
33
|
+
const dirStat = await (0, promises_1.stat)(resolvedDir).catch(() => null);
|
|
34
|
+
if (!dirStat?.isDirectory()) {
|
|
35
|
+
throw new Error(`chunkAssetsDirectory does not exist or is not a directory: ${resolvedDir}`);
|
|
36
|
+
}
|
|
37
|
+
const apiToken = (0, client_1.getApiToken)(apiToken_);
|
|
38
|
+
if (!apiToken) {
|
|
39
|
+
throw new Error("You must provide an API token by using the --apiToken parameter");
|
|
40
|
+
}
|
|
41
|
+
const client = (0, client_1.createClient)({ apiToken });
|
|
42
|
+
const tempDir = await (0, promises_1.mkdtemp)((0, path_1.join)((0, os_1.tmpdir)(), "asset-chunk-"));
|
|
43
|
+
const tarballPath = (0, path_1.join)(tempDir, "chunk.tar.d");
|
|
44
|
+
try {
|
|
45
|
+
logger.info(`Building asset chunk tarball for ${chunkName}@${chunkVersionId}...`);
|
|
46
|
+
const { filePaths } = await (0, exports.writeCompressedTar)({
|
|
47
|
+
cwd: resolvedDir,
|
|
48
|
+
destination: tarballPath,
|
|
49
|
+
...(chunkAssetsDirectoryPrefix
|
|
50
|
+
? { prefix: chunkAssetsDirectoryPrefix }
|
|
51
|
+
: {}),
|
|
52
|
+
});
|
|
53
|
+
const { size: tarballSize } = await (0, promises_1.stat)(tarballPath);
|
|
54
|
+
logger.info(`Tarball built (${tarballSize} bytes). Requesting upload URL...`);
|
|
55
|
+
const response = await (0, client_1.requestAssetChunkUpload)({
|
|
56
|
+
client,
|
|
57
|
+
chunkName,
|
|
58
|
+
chunkVersionId,
|
|
59
|
+
tarballSize,
|
|
60
|
+
...(commitSha ? { commitSha } : {}),
|
|
61
|
+
...(force ? { force: true } : {}),
|
|
62
|
+
...(projectId ? { projectId } : {}),
|
|
63
|
+
});
|
|
64
|
+
if (response.alreadyUploaded) {
|
|
65
|
+
logger.info(`Asset chunk ${chunkName}@${chunkVersionId} already uploaded; skipping upload.`);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const { tarballUploadUrl, filesIndexUploadUrl, previousStatus } = response;
|
|
69
|
+
switch (previousStatus) {
|
|
70
|
+
case null:
|
|
71
|
+
break;
|
|
72
|
+
case "deleted":
|
|
73
|
+
logger.info(`Asset chunk ${chunkName}@${chunkVersionId} was previously deleted by retention policy; re-uploading.`);
|
|
74
|
+
break;
|
|
75
|
+
case "failed_uploading":
|
|
76
|
+
logger.info(`Asset chunk ${chunkName}@${chunkVersionId} had a prior failed upload attempt; re-uploading.`);
|
|
77
|
+
break;
|
|
78
|
+
case "pending_upload":
|
|
79
|
+
logger.warn(`Asset chunk ${chunkName}@${chunkVersionId} appears to have a concurrent upload in progress; this upload will race.`);
|
|
80
|
+
break;
|
|
81
|
+
case "uploaded":
|
|
82
|
+
logger.warn(`Force-overwriting existing asset chunk ${chunkName}@${chunkVersionId}.`);
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
const filesIndexPath = (0, path_1.join)(tempDir, "files.json");
|
|
86
|
+
await (0, promises_1.writeFile)(filesIndexPath, JSON.stringify(filePaths));
|
|
87
|
+
const { size: filesIndexSize } = await (0, promises_1.stat)(filesIndexPath);
|
|
88
|
+
logger.info(`Uploading tarball and files index (${filePaths.length} files)...`);
|
|
89
|
+
const onRetry = (attempt, error) => {
|
|
90
|
+
const reason = error instanceof client_1.UploadError
|
|
91
|
+
? `HTTP ${error.statusCode}`
|
|
92
|
+
: error instanceof Error
|
|
93
|
+
? error.message
|
|
94
|
+
: String(error);
|
|
95
|
+
logger.warn(`Transient upload error on attempt ${attempt} (${reason}); will retry...`);
|
|
96
|
+
};
|
|
97
|
+
await Promise.all([
|
|
98
|
+
(0, client_1.retryTransientUploadErrors)(() => (0, client_1.putFileToSignedUrl)({
|
|
99
|
+
filePath: tarballPath,
|
|
100
|
+
signedUrl: tarballUploadUrl,
|
|
101
|
+
size: tarballSize,
|
|
102
|
+
contentType: "application/octet-stream",
|
|
103
|
+
}), { onRetry }),
|
|
104
|
+
(0, client_1.retryTransientUploadErrors)(() => (0, client_1.putFileToSignedUrl)({
|
|
105
|
+
filePath: filesIndexPath,
|
|
106
|
+
signedUrl: filesIndexUploadUrl,
|
|
107
|
+
size: filesIndexSize,
|
|
108
|
+
contentType: "application/json",
|
|
109
|
+
}), { onRetry }),
|
|
110
|
+
]);
|
|
111
|
+
logger.info("Finalizing chunk upload...");
|
|
112
|
+
await (0, client_1.completeAssetChunkUpload)({
|
|
113
|
+
client,
|
|
114
|
+
chunkName,
|
|
115
|
+
chunkVersionId,
|
|
116
|
+
...(commitSha ? { commitSha } : {}),
|
|
117
|
+
...(projectId ? { projectId } : {}),
|
|
118
|
+
});
|
|
119
|
+
logger.info(`Asset chunk ${chunkName}@${chunkVersionId} uploaded.`);
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
await (0, promises_1.rm)(tempDir, { recursive: true, force: true });
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
exports.uploadAssetChunk = uploadAssetChunk;
|
|
126
|
+
/**
|
|
127
|
+
* Streams a tar of `cwd` through `DeflateRaw` and writes the compressed
|
|
128
|
+
* bytes to `destination`. Produces the same on-disk format as the
|
|
129
|
+
* non-chunked `tar.d` archives (raw deflate, no zlib header) so the asset
|
|
130
|
+
* server can decompress chunks with the existing
|
|
131
|
+
* `streamDownloadAndInflateTar` helper.
|
|
132
|
+
*
|
|
133
|
+
* Exported for tests.
|
|
134
|
+
*/
|
|
135
|
+
const writeCompressedTar = ({ cwd, destination, prefix, }) => {
|
|
136
|
+
return new Promise((resolvePromise, reject) => {
|
|
137
|
+
const deflate = new fast_zlib_1.DeflateRaw({ level: COMPRESSION_LEVEL });
|
|
138
|
+
const outStream = (0, fs_1.createWriteStream)(destination);
|
|
139
|
+
const filePaths = [];
|
|
140
|
+
const tarStream = (0, tar_1.c)({
|
|
141
|
+
cwd,
|
|
142
|
+
follow: true,
|
|
143
|
+
portable: true,
|
|
144
|
+
...(prefix ? { prefix } : {}),
|
|
145
|
+
onWriteEntry(entry) {
|
|
146
|
+
if (entry.type === "File") {
|
|
147
|
+
filePaths.push(entry.path);
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
}, ["."]);
|
|
151
|
+
const onError = (err) => {
|
|
152
|
+
tarStream.removeAllListeners();
|
|
153
|
+
outStream.removeAllListeners();
|
|
154
|
+
outStream.destroy();
|
|
155
|
+
reject(err);
|
|
156
|
+
};
|
|
157
|
+
tarStream.on("data", (chunk) => {
|
|
158
|
+
const compressed = deflate.process(chunk);
|
|
159
|
+
if (compressed.length > 0) {
|
|
160
|
+
outStream.write(compressed);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
tarStream.on("error", onError);
|
|
164
|
+
outStream.on("error", onError);
|
|
165
|
+
tarStream.on("end", () => {
|
|
166
|
+
const finalChunk = deflate.process(Buffer.alloc(0), zlib_1.constants.Z_FINISH);
|
|
167
|
+
if (finalChunk.length > 0) {
|
|
168
|
+
outStream.write(finalChunk);
|
|
169
|
+
}
|
|
170
|
+
outStream.end(() => resolvePromise({ filePaths }));
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
};
|
|
174
|
+
exports.writeCompressedTar = writeCompressedTar;
|
|
175
|
+
//# sourceMappingURL=upload-asset-chunk.js.map
|
|
176
|
+
//# debugId=78d197d5-eb3a-590a-9062-9924a73ea63e
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-asset-chunk.js","sources":["../src/upload-asset-chunk.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"78d197d5-eb3a-590a-9062-9924a73ea63e"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwaysmeticulous/remote-replay-launcher",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.297.1",
|
|
4
4
|
"description": "Executes a remote replay on Meticulous' infrastructure",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"p-limit": "^3.1.0",
|
|
17
17
|
"systeminformation": "^5.25.11",
|
|
18
18
|
"tar": "^7.5.8",
|
|
19
|
-
"@alwaysmeticulous/
|
|
19
|
+
"@alwaysmeticulous/api": "2.297.0",
|
|
20
|
+
"@alwaysmeticulous/client": "2.297.1",
|
|
20
21
|
"@alwaysmeticulous/common": "2.293.0",
|
|
21
|
-
"@alwaysmeticulous/tunnels-client": "2.293.0"
|
|
22
|
-
"@alwaysmeticulous/api": "2.295.0"
|
|
22
|
+
"@alwaysmeticulous/tunnels-client": "2.293.0"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/dockerode": "^4.0.1",
|