@alwaysmeticulous/remote-replay-launcher 2.128.0 → 2.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/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ const tunnels_client_1 = require("@alwaysmeticulous/tunnels-client");
|
|
|
10
10
|
const loglevel_1 = __importDefault(require("loglevel"));
|
|
11
11
|
const url_utils_1 = require("./url.utils");
|
|
12
12
|
const PROGRESS_UPDATE_INTERVAL_MS = 5000; // 5 seconds
|
|
13
|
+
const MS_TO_WAIT_FOR_RETRY = 5 * 60 * 1000; // 5 minutes
|
|
13
14
|
const executeRemoteTestRun = async ({ apiToken: apiToken_, appUrl, commitSha, secureTunnelHost, onTunnelCreated, onTestRunCreated, onProgressUpdate, keepTunnelOpenPromise, environment, }) => {
|
|
14
15
|
const logger = loglevel_1.default.getLogger(common_1.METICULOUS_LOGGER_NAME);
|
|
15
16
|
const apiToken = (0, client_1.getApiToken)(apiToken_);
|
|
@@ -61,7 +62,20 @@ const executeRemoteTestRun = async ({ apiToken: apiToken_, appUrl, commitSha, se
|
|
|
61
62
|
onTestRunCreated === null || onTestRunCreated === void 0 ? void 0 : onTestRunCreated(testRun);
|
|
62
63
|
const testRunCompleted = (0, common_1.defer)();
|
|
63
64
|
let progressUpdateInterval = undefined;
|
|
65
|
+
let startedWaitingForRetryAt = undefined;
|
|
64
66
|
const onTestRunCompleted = (completedTestRun) => {
|
|
67
|
+
if (completedTestRun.status === "ExecutionError" &&
|
|
68
|
+
(startedWaitingForRetryAt === undefined ||
|
|
69
|
+
Date.now() - startedWaitingForRetryAt < MS_TO_WAIT_FOR_RETRY)) {
|
|
70
|
+
// It may get re-triggered: let's wait to see if it does: we keep progressUpdateInterval
|
|
71
|
+
// so it'll keep polling for updates. Eventually it'll either hit the timeout or the test run
|
|
72
|
+
// will move to the Running state again and we'll wait a while more.
|
|
73
|
+
if (startedWaitingForRetryAt === undefined) {
|
|
74
|
+
startedWaitingForRetryAt = Date.now();
|
|
75
|
+
logger.info(`Test run failed with execution error. Waiting for ${MS_TO_WAIT_FOR_RETRY / 1000} seconds to see if it gets automatically retried...`);
|
|
76
|
+
}
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
65
79
|
if (progressUpdateInterval) {
|
|
66
80
|
clearInterval(progressUpdateInterval);
|
|
67
81
|
}
|
|
@@ -84,6 +98,10 @@ const executeRemoteTestRun = async ({ apiToken: apiToken_, appUrl, commitSha, se
|
|
|
84
98
|
onTestRunCompleted(updatedTestRun);
|
|
85
99
|
return;
|
|
86
100
|
}
|
|
101
|
+
else if (startedWaitingForRetryAt !== undefined) {
|
|
102
|
+
logger.info(`Retrying test run... (status is now ${updatedTestRun.status})`);
|
|
103
|
+
startedWaitingForRetryAt = undefined;
|
|
104
|
+
}
|
|
87
105
|
}, PROGRESS_UPDATE_INTERVAL_MS);
|
|
88
106
|
const completedTestRun = await testRunCompleted.promise;
|
|
89
107
|
return {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,qDAOkC;AAClC,qDAAyE;AACzE,qEAA+D;AAC/D,wDAA2B;AAK3B,2CAAsC;AAItC,MAAM,2BAA2B,GAAG,IAAK,CAAC,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwaysmeticulous/remote-replay-launcher",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.131.0",
|
|
4
4
|
"description": "Executes a remote replay on Meticulous' infrastructure",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
"test": "jest --passWithNoTests"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@alwaysmeticulous/client": "^2.
|
|
23
|
+
"@alwaysmeticulous/client": "^2.131.0",
|
|
24
24
|
"@alwaysmeticulous/common": "^2.127.0",
|
|
25
|
-
"@alwaysmeticulous/tunnels-client": "^2.
|
|
25
|
+
"@alwaysmeticulous/tunnels-client": "^2.129.0",
|
|
26
26
|
"loglevel": "^1.8.0"
|
|
27
27
|
},
|
|
28
28
|
"author": {
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"coverageDirectory": "../coverage",
|
|
60
60
|
"testEnvironment": "node"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "d03b9b272d1b54d891ac4c0d132d368721791872"
|
|
63
63
|
}
|