mirror of
https://github.com/Swatinem/rust-cache
synced 2025-08-14 17:05:29 +00:00
Update build artifacts
This commit is contained in:
parent
e7d31ca62b
commit
6978315cd7
2 changed files with 1095 additions and 1001 deletions
49
dist/restore/index.js
vendored
49
dist/restore/index.js
vendored
|
@ -64390,6 +64390,40 @@ async function getCmdOutput(cmd, args = [], options = {}) {
|
||||||
}
|
}
|
||||||
return stdout;
|
return stdout;
|
||||||
}
|
}
|
||||||
|
async function withRetries(operation, maxRetryAttempts, isRetriable) {
|
||||||
|
let attemptsLeft = maxRetryAttempts;
|
||||||
|
while (true) {
|
||||||
|
try {
|
||||||
|
return await operation();
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
attemptsLeft -= 1;
|
||||||
|
if (attemptsLeft <= 0) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
if (!isRetriable(e)) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
lib_core.info(`[warning] Retrying after an error, ${attemptsLeft} attempts left, error: ${e}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class TimeoutError extends Error {
|
||||||
|
}
|
||||||
|
async function withTimeout(operation, timeoutMs) {
|
||||||
|
const timeout = timeoutMs
|
||||||
|
? new Promise((resolve) => {
|
||||||
|
setTimeout(resolve, timeoutMs);
|
||||||
|
})
|
||||||
|
: new Promise(() => { });
|
||||||
|
const timeoutSym = Symbol("timeout");
|
||||||
|
const racingTimeout = timeout.then(() => timeoutSym);
|
||||||
|
const result = await Promise.race([racingTimeout, operation(timeout)]);
|
||||||
|
if (result === timeoutSym) {
|
||||||
|
throw new TimeoutError("operation timeout");
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./src/workspace.ts
|
;// CONCATENATED MODULE: ./src/workspace.ts
|
||||||
|
|
||||||
|
@ -64444,6 +64478,10 @@ class CacheConfig {
|
||||||
this.restoreKey = "";
|
this.restoreKey = "";
|
||||||
/** The workspace configurations */
|
/** The workspace configurations */
|
||||||
this.workspaces = [];
|
this.workspaces = [];
|
||||||
|
/** The max timeout for the networking operations */
|
||||||
|
this.timeout = null;
|
||||||
|
/** The max retry attemtps for the networking operations */
|
||||||
|
this.maxRetryAttempts = 0;
|
||||||
/** The prefix portion of the cache key */
|
/** The prefix portion of the cache key */
|
||||||
this.keyPrefix = "";
|
this.keyPrefix = "";
|
||||||
/** The rust version considered for the cache key */
|
/** The rust version considered for the cache key */
|
||||||
|
@ -64549,6 +64587,10 @@ class CacheConfig {
|
||||||
}
|
}
|
||||||
self.workspaces = workspaces;
|
self.workspaces = workspaces;
|
||||||
self.cachePaths = [config_CARGO_HOME, ...workspaces.map((ws) => ws.target)];
|
self.cachePaths = [config_CARGO_HOME, ...workspaces.map((ws) => ws.target)];
|
||||||
|
const timeoutInput = lib_core.getInput("timeout");
|
||||||
|
self.timeout = timeoutInput ? parseFloat(timeoutInput) : null;
|
||||||
|
const maxRetryAttemptsInput = lib_core.getInput("maxRetryAttempts");
|
||||||
|
self.maxRetryAttempts = maxRetryAttemptsInput ? parseFloat(maxRetryAttemptsInput) : 0;
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
printInfo() {
|
printInfo() {
|
||||||
|
@ -64576,6 +64618,10 @@ class CacheConfig {
|
||||||
for (const file of this.keyFiles) {
|
for (const file of this.keyFiles) {
|
||||||
lib_core.info(` - ${file}`);
|
lib_core.info(` - ${file}`);
|
||||||
}
|
}
|
||||||
|
lib_core.info(`Network operations timeout:`);
|
||||||
|
lib_core.info(` ${this.timeout}`);
|
||||||
|
lib_core.info(`Max retry attempts for the network operations:`);
|
||||||
|
lib_core.info(` ${this.maxRetryAttempts}`);
|
||||||
lib_core.endGroup();
|
lib_core.endGroup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64810,6 +64856,7 @@ async function exists(path) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
process.on("uncaughtException", (e) => {
|
process.on("uncaughtException", (e) => {
|
||||||
lib_core.info(`[warning] ${e.message}`);
|
lib_core.info(`[warning] ${e.message}`);
|
||||||
if (e.stack) {
|
if (e.stack) {
|
||||||
|
@ -64835,7 +64882,7 @@ async function run() {
|
||||||
lib_core.saveState(config_STATE_BINS, JSON.stringify([...bins]));
|
lib_core.saveState(config_STATE_BINS, JSON.stringify([...bins]));
|
||||||
lib_core.info(`... Restoring cache ...`);
|
lib_core.info(`... Restoring cache ...`);
|
||||||
const key = config.cacheKey;
|
const key = config.cacheKey;
|
||||||
const restoreKey = await cache.restoreCache(config.cachePaths, key, [config.restoreKey]);
|
const restoreKey = await withRetries(() => withTimeout(() => cache.restoreCache(config.cachePaths, key, [config.restoreKey]), config.timeout), config.maxRetryAttempts, () => true);
|
||||||
if (restoreKey) {
|
if (restoreKey) {
|
||||||
lib_core.info(`Restored from cache key "${restoreKey}".`);
|
lib_core.info(`Restored from cache key "${restoreKey}".`);
|
||||||
lib_core.saveState(STATE_KEY, restoreKey);
|
lib_core.saveState(STATE_KEY, restoreKey);
|
||||||
|
|
49
dist/save/index.js
vendored
49
dist/save/index.js
vendored
|
@ -64390,6 +64390,40 @@ async function getCmdOutput(cmd, args = [], options = {}) {
|
||||||
}
|
}
|
||||||
return stdout;
|
return stdout;
|
||||||
}
|
}
|
||||||
|
async function withRetries(operation, maxRetryAttempts, isRetriable) {
|
||||||
|
let attemptsLeft = maxRetryAttempts;
|
||||||
|
while (true) {
|
||||||
|
try {
|
||||||
|
return await operation();
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
attemptsLeft -= 1;
|
||||||
|
if (attemptsLeft <= 0) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
if (!isRetriable(e)) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
core.info(`[warning] Retrying after an error, ${attemptsLeft} attempts left, error: ${e}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class TimeoutError extends Error {
|
||||||
|
}
|
||||||
|
async function withTimeout(operation, timeoutMs) {
|
||||||
|
const timeout = timeoutMs
|
||||||
|
? new Promise((resolve) => {
|
||||||
|
setTimeout(resolve, timeoutMs);
|
||||||
|
})
|
||||||
|
: new Promise(() => { });
|
||||||
|
const timeoutSym = Symbol("timeout");
|
||||||
|
const racingTimeout = timeout.then(() => timeoutSym);
|
||||||
|
const result = await Promise.race([racingTimeout, operation(timeout)]);
|
||||||
|
if (result === timeoutSym) {
|
||||||
|
throw new TimeoutError("operation timeout");
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./src/workspace.ts
|
;// CONCATENATED MODULE: ./src/workspace.ts
|
||||||
|
|
||||||
|
@ -64444,6 +64478,10 @@ class CacheConfig {
|
||||||
this.restoreKey = "";
|
this.restoreKey = "";
|
||||||
/** The workspace configurations */
|
/** The workspace configurations */
|
||||||
this.workspaces = [];
|
this.workspaces = [];
|
||||||
|
/** The max timeout for the networking operations */
|
||||||
|
this.timeout = null;
|
||||||
|
/** The max retry attemtps for the networking operations */
|
||||||
|
this.maxRetryAttempts = 0;
|
||||||
/** The prefix portion of the cache key */
|
/** The prefix portion of the cache key */
|
||||||
this.keyPrefix = "";
|
this.keyPrefix = "";
|
||||||
/** The rust version considered for the cache key */
|
/** The rust version considered for the cache key */
|
||||||
|
@ -64549,6 +64587,10 @@ class CacheConfig {
|
||||||
}
|
}
|
||||||
self.workspaces = workspaces;
|
self.workspaces = workspaces;
|
||||||
self.cachePaths = [CARGO_HOME, ...workspaces.map((ws) => ws.target)];
|
self.cachePaths = [CARGO_HOME, ...workspaces.map((ws) => ws.target)];
|
||||||
|
const timeoutInput = core.getInput("timeout");
|
||||||
|
self.timeout = timeoutInput ? parseFloat(timeoutInput) : null;
|
||||||
|
const maxRetryAttemptsInput = core.getInput("maxRetryAttempts");
|
||||||
|
self.maxRetryAttempts = maxRetryAttemptsInput ? parseFloat(maxRetryAttemptsInput) : 0;
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
printInfo() {
|
printInfo() {
|
||||||
|
@ -64576,6 +64618,10 @@ class CacheConfig {
|
||||||
for (const file of this.keyFiles) {
|
for (const file of this.keyFiles) {
|
||||||
core.info(` - ${file}`);
|
core.info(` - ${file}`);
|
||||||
}
|
}
|
||||||
|
core.info(`Network operations timeout:`);
|
||||||
|
core.info(` ${this.timeout}`);
|
||||||
|
core.info(`Max retry attempts for the network operations:`);
|
||||||
|
core.info(` ${this.maxRetryAttempts}`);
|
||||||
core.endGroup();
|
core.endGroup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64811,6 +64857,7 @@ async function exists(path) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
process.on("uncaughtException", (e) => {
|
process.on("uncaughtException", (e) => {
|
||||||
core.info(`[warning] ${e.message}`);
|
core.info(`[warning] ${e.message}`);
|
||||||
if (e.stack) {
|
if (e.stack) {
|
||||||
|
@ -64865,7 +64912,7 @@ async function run() {
|
||||||
core.info(`[warning] ${e.stack}`);
|
core.info(`[warning] ${e.stack}`);
|
||||||
}
|
}
|
||||||
core.info(`... Saving cache ...`);
|
core.info(`... Saving cache ...`);
|
||||||
await cache.saveCache(config.cachePaths, config.cacheKey);
|
await withRetries(() => withTimeout(() => cache.saveCache(config.cachePaths, config.cacheKey), config.timeout), config.maxRetryAttempts, () => true);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
core.info(`[warning] ${e.stack}`);
|
core.info(`[warning] ${e.stack}`);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue