@cypress/github-action 6.10.8 → 6.10.9
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/README.md +9 -9
- package/dist/index.js +39 -7
- package/package.json +11 -11
package/README.md
CHANGED
|
@@ -566,8 +566,8 @@ jobs:
|
|
|
566
566
|
node: [20, 22, 24, 25]
|
|
567
567
|
name: E2E on Node v${{ matrix.node }}
|
|
568
568
|
steps:
|
|
569
|
-
- name:
|
|
570
|
-
uses: actions/setup-node@
|
|
569
|
+
- name: Install Node.js
|
|
570
|
+
uses: actions/setup-node@v6
|
|
571
571
|
with:
|
|
572
572
|
node-version: ${{ matrix.node }}
|
|
573
573
|
- run: node -v
|
|
@@ -1185,9 +1185,9 @@ jobs:
|
|
|
1185
1185
|
with:
|
|
1186
1186
|
version: 10
|
|
1187
1187
|
- name: Install Node.js
|
|
1188
|
-
uses: actions/setup-node@
|
|
1188
|
+
uses: actions/setup-node@v6
|
|
1189
1189
|
with:
|
|
1190
|
-
node-version:
|
|
1190
|
+
node-version: 24
|
|
1191
1191
|
cache: 'pnpm'
|
|
1192
1192
|
cache-dependency-path: examples/basic-pnpm/pnpm-lock.yaml
|
|
1193
1193
|
- name: Cypress run
|
|
@@ -1258,9 +1258,9 @@ jobs:
|
|
|
1258
1258
|
uses: actions/checkout@v6
|
|
1259
1259
|
- run: corepack enable # (experimental and optional)
|
|
1260
1260
|
- name: Set up Yarn cache
|
|
1261
|
-
uses: actions/setup-node@
|
|
1261
|
+
uses: actions/setup-node@v6
|
|
1262
1262
|
with:
|
|
1263
|
-
node-version:
|
|
1263
|
+
node-version: 24
|
|
1264
1264
|
cache: yarn
|
|
1265
1265
|
cache-dependency-path: examples/yarn-modern/yarn.lock
|
|
1266
1266
|
- name: Cypress run
|
|
@@ -1345,8 +1345,8 @@ jobs:
|
|
|
1345
1345
|
node: [20, 22, 24, 25]
|
|
1346
1346
|
name: E2E on Node v${{ matrix.node }}
|
|
1347
1347
|
steps:
|
|
1348
|
-
- name:
|
|
1349
|
-
uses: actions/setup-node@
|
|
1348
|
+
- name: Install Node.js
|
|
1349
|
+
uses: actions/setup-node@v6
|
|
1350
1350
|
with:
|
|
1351
1351
|
node-version: ${{ matrix.node }}
|
|
1352
1352
|
- name: Checkout
|
|
@@ -1379,7 +1379,7 @@ jobs:
|
|
|
1379
1379
|
node: [20, 22, 24, 25]
|
|
1380
1380
|
name: E2E on Node v${{ matrix.node }}
|
|
1381
1381
|
steps:
|
|
1382
|
-
- uses: actions/setup-node@
|
|
1382
|
+
- uses: actions/setup-node@v6
|
|
1383
1383
|
with:
|
|
1384
1384
|
node-version: ${{ matrix.node }}
|
|
1385
1385
|
- uses: actions/checkout@v6
|
package/dist/index.js
CHANGED
|
@@ -2398,6 +2398,18 @@ class CacheServiceClient {
|
|
|
2398
2398
|
}
|
|
2399
2399
|
errorMessage = `${errorMessage}: ${body.msg}`;
|
|
2400
2400
|
}
|
|
2401
|
+
// Handle rate limiting - don't retry, just warn and exit
|
|
2402
|
+
// For more info, see https://docs.github.com/en/actions/reference/limits
|
|
2403
|
+
if (statusCode === http_client_1.HttpCodes.TooManyRequests) {
|
|
2404
|
+
const retryAfterHeader = response.message.headers['retry-after'];
|
|
2405
|
+
if (retryAfterHeader) {
|
|
2406
|
+
const parsedSeconds = parseInt(retryAfterHeader, 10);
|
|
2407
|
+
if (!isNaN(parsedSeconds) && parsedSeconds > 0) {
|
|
2408
|
+
(0, core_1.warning)(`You've hit a rate limit, your rate limit will reset in ${parsedSeconds} seconds`);
|
|
2409
|
+
}
|
|
2410
|
+
}
|
|
2411
|
+
throw new errors_1.RateLimitError(`Rate limited: ${errorMessage}`);
|
|
2412
|
+
}
|
|
2401
2413
|
}
|
|
2402
2414
|
catch (error) {
|
|
2403
2415
|
if (error instanceof SyntaxError) {
|
|
@@ -2406,6 +2418,9 @@ class CacheServiceClient {
|
|
|
2406
2418
|
if (error instanceof errors_1.UsageError) {
|
|
2407
2419
|
throw error;
|
|
2408
2420
|
}
|
|
2421
|
+
if (error instanceof errors_1.RateLimitError) {
|
|
2422
|
+
throw error;
|
|
2423
|
+
}
|
|
2409
2424
|
if (errors_1.NetworkError.isNetworkErrorCode(error === null || error === void 0 ? void 0 : error.code)) {
|
|
2410
2425
|
throw new errors_1.NetworkError(error === null || error === void 0 ? void 0 : error.code);
|
|
2411
2426
|
}
|
|
@@ -2438,8 +2453,7 @@ class CacheServiceClient {
|
|
|
2438
2453
|
http_client_1.HttpCodes.BadGateway,
|
|
2439
2454
|
http_client_1.HttpCodes.GatewayTimeout,
|
|
2440
2455
|
http_client_1.HttpCodes.InternalServerError,
|
|
2441
|
-
http_client_1.HttpCodes.ServiceUnavailable
|
|
2442
|
-
http_client_1.HttpCodes.TooManyRequests
|
|
2456
|
+
http_client_1.HttpCodes.ServiceUnavailable
|
|
2443
2457
|
];
|
|
2444
2458
|
return retryableStatusCodes.includes(statusCode);
|
|
2445
2459
|
}
|
|
@@ -2475,7 +2489,7 @@ function internalCacheTwirpClient(options) {
|
|
|
2475
2489
|
"use strict";
|
|
2476
2490
|
|
|
2477
2491
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2478
|
-
exports.UsageError = exports.NetworkError = exports.GHESNotSupportedError = exports.CacheNotFoundError = exports.InvalidResponseError = exports.FilesNotFoundError = void 0;
|
|
2492
|
+
exports.RateLimitError = exports.UsageError = exports.NetworkError = exports.GHESNotSupportedError = exports.CacheNotFoundError = exports.InvalidResponseError = exports.FilesNotFoundError = void 0;
|
|
2479
2493
|
class FilesNotFoundError extends Error {
|
|
2480
2494
|
constructor(files = []) {
|
|
2481
2495
|
let message = 'No files were found to upload';
|
|
@@ -2542,6 +2556,13 @@ UsageError.isUsageErrorMessage = (msg) => {
|
|
|
2542
2556
|
return false;
|
|
2543
2557
|
return msg.includes('insufficient usage');
|
|
2544
2558
|
};
|
|
2559
|
+
class RateLimitError extends Error {
|
|
2560
|
+
constructor(message) {
|
|
2561
|
+
super(message);
|
|
2562
|
+
this.name = 'RateLimitError';
|
|
2563
|
+
}
|
|
2564
|
+
}
|
|
2565
|
+
exports.RateLimitError = RateLimitError;
|
|
2545
2566
|
//# sourceMappingURL=errors.js.map
|
|
2546
2567
|
|
|
2547
2568
|
/***/ }),
|
|
@@ -9902,7 +9923,7 @@ class HttpClient {
|
|
|
9902
9923
|
this._maxRetries = 1;
|
|
9903
9924
|
this._keepAlive = false;
|
|
9904
9925
|
this._disposed = false;
|
|
9905
|
-
this.userAgent = userAgent;
|
|
9926
|
+
this.userAgent = this._getUserAgentWithOrchestrationId(userAgent);
|
|
9906
9927
|
this.handlers = handlers || [];
|
|
9907
9928
|
this.requestOptions = requestOptions;
|
|
9908
9929
|
if (requestOptions) {
|
|
@@ -10382,6 +10403,17 @@ class HttpClient {
|
|
|
10382
10403
|
}
|
|
10383
10404
|
return proxyAgent;
|
|
10384
10405
|
}
|
|
10406
|
+
_getUserAgentWithOrchestrationId(userAgent) {
|
|
10407
|
+
const baseUserAgent = userAgent || 'actions/http-client';
|
|
10408
|
+
const orchId = process.env['ACTIONS_ORCHESTRATION_ID'];
|
|
10409
|
+
if (orchId) {
|
|
10410
|
+
// Sanitize the orchestration ID to ensure it contains only valid characters
|
|
10411
|
+
// Valid characters: 0-9, a-z, _, -, .
|
|
10412
|
+
const sanitizedId = orchId.replace(/[^a-z0-9_.-]/gi, '_');
|
|
10413
|
+
return `${baseUserAgent} actions_orchestration_id/${sanitizedId}`;
|
|
10414
|
+
}
|
|
10415
|
+
return baseUserAgent;
|
|
10416
|
+
}
|
|
10385
10417
|
_performExponentialBackoff(retryNumber) {
|
|
10386
10418
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10387
10419
|
retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);
|
|
@@ -20230,7 +20262,7 @@ function save(namespaces) {
|
|
|
20230
20262
|
function load() {
|
|
20231
20263
|
let r;
|
|
20232
20264
|
try {
|
|
20233
|
-
r = exports.storage.getItem('debug');
|
|
20265
|
+
r = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;
|
|
20234
20266
|
} catch (error) {
|
|
20235
20267
|
// Swallow
|
|
20236
20268
|
// XXX (@Qix-) should we be logging these?
|
|
@@ -20458,7 +20490,7 @@ function setup(env) {
|
|
|
20458
20490
|
|
|
20459
20491
|
const split = (typeof namespaces === 'string' ? namespaces : '')
|
|
20460
20492
|
.trim()
|
|
20461
|
-
.replace(
|
|
20493
|
+
.replace(/\s+/g, ',')
|
|
20462
20494
|
.split(',')
|
|
20463
20495
|
.filter(Boolean);
|
|
20464
20496
|
|
|
@@ -101693,7 +101725,7 @@ const supportsColor = {
|
|
|
101693
101725
|
/***/ ((module) => {
|
|
101694
101726
|
|
|
101695
101727
|
"use strict";
|
|
101696
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/cache","version":"5.0.
|
|
101728
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/cache","version":"5.0.3","preview":true,"description":"Actions cache lib","keywords":["github","actions","cache"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/cache","license":"MIT","main":"lib/cache.js","types":"lib/cache.d.ts","directories":{"lib":"lib","test":"__tests__"},"files":["lib","!.DS_Store"],"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/actions/toolkit.git","directory":"packages/cache"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"echo \\"Error: run tests from root\\" && exit 1","tsc":"tsc"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^2.0.0","@actions/exec":"^2.0.0","@actions/glob":"^0.5.0","@protobuf-ts/runtime-rpc":"^2.11.1","@actions/http-client":"^3.0.1","@actions/io":"^2.0.0","@azure/abort-controller":"^1.1.0","@azure/core-rest-pipeline":"^1.22.0","@azure/storage-blob":"^12.29.1","semver":"^6.3.1"},"devDependencies":{"@types/node":"^24.1.0","@types/semver":"^6.0.0","@protobuf-ts/plugin":"^2.9.4","typescript":"^5.2.2"},"overrides":{"uri-js":"npm:uri-js-replace@^1.0.1","node-fetch":"^3.3.2"}}');
|
|
101697
101729
|
|
|
101698
101730
|
/***/ })
|
|
101699
101731
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cypress/github-action",
|
|
3
|
-
"version": "6.10.
|
|
3
|
+
"version": "6.10.9",
|
|
4
4
|
"description": "GitHub Action for running Cypress end-to-end and component tests",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -39,13 +39,13 @@
|
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://github.com/cypress-io/github-action#readme",
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@actions/cache": "5.0.
|
|
43
|
-
"@actions/core": "2.0.
|
|
42
|
+
"@actions/cache": "5.0.3",
|
|
43
|
+
"@actions/core": "2.0.2",
|
|
44
44
|
"@actions/exec": "2.0.0",
|
|
45
45
|
"@actions/io": "2.0.0",
|
|
46
46
|
"@octokit/core": "7.0.6",
|
|
47
47
|
"argument-vector": "1.0.2",
|
|
48
|
-
"debug": "4.4.
|
|
48
|
+
"debug": "4.4.3",
|
|
49
49
|
"find-yarn-workspace-root": "2.0.0",
|
|
50
50
|
"got": "11.8.6",
|
|
51
51
|
"hasha": "5.2.2",
|
|
@@ -53,16 +53,16 @@
|
|
|
53
53
|
"supports-color": "9.3.1"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@eslint/js": "9.
|
|
57
|
-
"@stylistic/eslint-plugin": "5.
|
|
58
|
-
"@types/node": "
|
|
56
|
+
"@eslint/js": "9.39.2",
|
|
57
|
+
"@stylistic/eslint-plugin": "5.7.0",
|
|
58
|
+
"@types/node": "25.0.8",
|
|
59
59
|
"@vercel/ncc": "0.38.4",
|
|
60
|
-
"eslint": "9.
|
|
61
|
-
"eslint-plugin-cypress": "5.2.
|
|
62
|
-
"globals": "
|
|
60
|
+
"eslint": "9.39.2",
|
|
61
|
+
"eslint-plugin-cypress": "5.2.1",
|
|
62
|
+
"globals": "17.0.0",
|
|
63
63
|
"husky": "9.1.7",
|
|
64
64
|
"markdown-link-check": "3.14.2",
|
|
65
|
-
"prettier": "3.
|
|
65
|
+
"prettier": "3.8.0"
|
|
66
66
|
},
|
|
67
67
|
"publishConfig": {
|
|
68
68
|
"access": "public"
|