mirror of
https://github.com/actions/cache.git
synced 2025-09-08 18:33:39 -06:00
Add env var for socket timeout
This commit is contained in:
parent
ce9276c90e
commit
18e62e1fe0
4 changed files with 54 additions and 32 deletions
|
@ -11,7 +11,7 @@ import * as fs from "fs";
|
|||
import * as stream from "stream";
|
||||
import * as util from "util";
|
||||
|
||||
import { CompressionMethod, Inputs, SocketTimeout } from "./constants";
|
||||
import { CompressionMethod, DefaultSocketTimeout, Inputs } from "./constants";
|
||||
import {
|
||||
ArtifactCacheEntry,
|
||||
CacheOptions,
|
||||
|
@ -85,6 +85,14 @@ function createHttpClient(): HttpClient {
|
|||
);
|
||||
}
|
||||
|
||||
function parseEnvNumber(key: string): number | undefined {
|
||||
const value = Number(process.env[key]);
|
||||
if (Number.isNaN(value) || value < 0) {
|
||||
return undefined;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
export function getCacheVersion(compressionMethod?: CompressionMethod): string {
|
||||
const components = [core.getInput(Inputs.Path, { required: true })].concat(
|
||||
compressionMethod == CompressionMethod.Zstd ? [compressionMethod] : []
|
||||
|
@ -148,10 +156,12 @@ export async function downloadCache(
|
|||
const downloadResponse = await httpClient.get(archiveLocation);
|
||||
|
||||
// Abort download if no traffic received over the socket.
|
||||
downloadResponse.message.socket.setTimeout(SocketTimeout, () => {
|
||||
const socketTimeout =
|
||||
parseEnvNumber("CACHE_SOCKET_TIMEOUT") ?? DefaultSocketTimeout;
|
||||
downloadResponse.message.socket.setTimeout(socketTimeout, () => {
|
||||
downloadResponse.message.destroy();
|
||||
core.debug(
|
||||
`Aborting download, socket timed out after ${SocketTimeout} ms`
|
||||
`Aborting download, socket timed out after ${socketTimeout} ms`
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -252,14 +262,6 @@ async function uploadChunk(
|
|||
);
|
||||
}
|
||||
|
||||
function parseEnvNumber(key: string): number | undefined {
|
||||
const value = Number(process.env[key]);
|
||||
if (Number.isNaN(value) || value < 0) {
|
||||
return undefined;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
async function uploadFile(
|
||||
httpClient: HttpClient,
|
||||
cacheId: number,
|
||||
|
|
|
@ -32,4 +32,4 @@ export enum CompressionMethod {
|
|||
// Socket timeout in milliseconds during download. If no traffic is received
|
||||
// over the socket during this period, the socket is destroyed and the download
|
||||
// is aborted.
|
||||
export const SocketTimeout = 5000;
|
||||
export const DefaultSocketTimeout = 5000;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue