From 180001d5292f75c94ff930ea9336e95bac8fe29f Mon Sep 17 00:00:00 2001 From: Boris Staal Date: Sun, 9 Apr 2023 10:44:27 -0500 Subject: [PATCH] Tiny fixes --- dist/restore-only/index.js | 23 +++++------ dist/restore/index.js | 23 +++++------ dist/save-only/index.js | 23 +++++------ dist/save/index.js | 23 +++++------ src/utils/cacheUtils.ts | 8 ++-- src/utils/clientUtils.ts | 23 ++++++----- src/utils/contracts.ts | 36 ++++++++--------- src/utils/downloadUtils.ts | 2 - src/utils/options.ts | 81 +++++++++++++++++++------------------- src/utils/requestUtils.ts | 7 ++-- src/utils/tar.ts | 1 + 11 files changed, 127 insertions(+), 123 deletions(-) diff --git a/dist/restore-only/index.js b/dist/restore-only/index.js index 8271b83..5c0f0ec 100644 --- a/dist/restore-only/index.js +++ b/dist/restore-only/index.js @@ -68358,11 +68358,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.assertDefined = exports.unlinkFile = exports.getCompressionMethod = exports.isGnuTarInstalled = exports.isZstdInstalled = exports.resolvePaths = exports.createTempDirectory = exports.getCacheFileName = exports.getArchiveFileSizeInBytes = exports.SocketTimeout = exports.DefaultRetryDelay = exports.DefaultRetryAttempts = exports.CompressionMethod = exports.CacheFilename = void 0; const core = __importStar(__nccwpck_require__(42186)); const exec = __importStar(__nccwpck_require__(71514)); -const io = __importStar(__nccwpck_require__(47351)); const glob = __importStar(__nccwpck_require__(28090)); -const semver = __importStar(__nccwpck_require__(11383)); -const path = __importStar(__nccwpck_require__(71017)); +const io = __importStar(__nccwpck_require__(47351)); const fs = __importStar(__nccwpck_require__(57147)); +const path = __importStar(__nccwpck_require__(71017)); +const semver = __importStar(__nccwpck_require__(11383)); const uuid_1 = __nccwpck_require__(75840); var CacheFilename; (function (CacheFilename) { @@ -68628,7 +68628,7 @@ function getCacheEntryS3(s3Options, s3BucketName, keys, paths) { return __awaiter(this, void 0, void 0, function* () { const primaryKey = keys[0]; const s3client = new client_s3_1.S3Client(s3Options); - let contents = new Array(); + const contents = []; let s3ContinuationToken = null; let count = 0; const param = { @@ -68647,7 +68647,8 @@ function getCacheEntryS3(s3Options, s3BucketName, keys, paths) { throw new Error(`Error from S3: ${e}`); } if (!response.Contents) { - throw new Error(`Cannot found object in bucket ${s3BucketName}`); + return null; + // throw new Error(`Cannot found object in bucket ${s3BucketName}`); } core.debug(`Found objects ${response.Contents.length}`); const found = response.Contents.find((content) => content.Key === primaryKey); @@ -68693,7 +68694,7 @@ function searchRestoreKeyEntry(notPrimaryKey, entries) { } function _searchRestoreKeyEntry(notPrimaryKey, entries) { var _a; - let matchPrefix = new Array(); + const matchPrefix = []; for (const entry of entries) { if (entry.Key === notPrimaryKey) { // extractly match, Use this entry @@ -69080,10 +69081,10 @@ function getUploadOptions(copy) { uploadChunkSize: 32 * 1024 * 1024 }; if (copy) { - if (typeof copy.uploadConcurrency === 'number') { + if (typeof copy.uploadConcurrency === "number") { result.uploadConcurrency = copy.uploadConcurrency; } - if (typeof copy.uploadChunkSize === 'number') { + if (typeof copy.uploadChunkSize === "number") { result.uploadChunkSize = copy.uploadChunkSize; } } @@ -69104,13 +69105,13 @@ function getDownloadOptions(copy) { timeoutInMs: 30000 }; if (copy) { - if (typeof copy.useAzureSdk === 'boolean') { + if (typeof copy.useAzureSdk === "boolean") { result.useAzureSdk = copy.useAzureSdk; } - if (typeof copy.downloadConcurrency === 'number') { + if (typeof copy.downloadConcurrency === "number") { result.downloadConcurrency = copy.downloadConcurrency; } - if (typeof copy.timeoutInMs === 'number') { + if (typeof copy.timeoutInMs === "number") { result.timeoutInMs = copy.timeoutInMs; } } diff --git a/dist/restore/index.js b/dist/restore/index.js index f2520de..4467581 100644 --- a/dist/restore/index.js +++ b/dist/restore/index.js @@ -68358,11 +68358,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.assertDefined = exports.unlinkFile = exports.getCompressionMethod = exports.isGnuTarInstalled = exports.isZstdInstalled = exports.resolvePaths = exports.createTempDirectory = exports.getCacheFileName = exports.getArchiveFileSizeInBytes = exports.SocketTimeout = exports.DefaultRetryDelay = exports.DefaultRetryAttempts = exports.CompressionMethod = exports.CacheFilename = void 0; const core = __importStar(__nccwpck_require__(42186)); const exec = __importStar(__nccwpck_require__(71514)); -const io = __importStar(__nccwpck_require__(47351)); const glob = __importStar(__nccwpck_require__(28090)); -const semver = __importStar(__nccwpck_require__(11383)); -const path = __importStar(__nccwpck_require__(71017)); +const io = __importStar(__nccwpck_require__(47351)); const fs = __importStar(__nccwpck_require__(57147)); +const path = __importStar(__nccwpck_require__(71017)); +const semver = __importStar(__nccwpck_require__(11383)); const uuid_1 = __nccwpck_require__(75840); var CacheFilename; (function (CacheFilename) { @@ -68628,7 +68628,7 @@ function getCacheEntryS3(s3Options, s3BucketName, keys, paths) { return __awaiter(this, void 0, void 0, function* () { const primaryKey = keys[0]; const s3client = new client_s3_1.S3Client(s3Options); - let contents = new Array(); + const contents = []; let s3ContinuationToken = null; let count = 0; const param = { @@ -68647,7 +68647,8 @@ function getCacheEntryS3(s3Options, s3BucketName, keys, paths) { throw new Error(`Error from S3: ${e}`); } if (!response.Contents) { - throw new Error(`Cannot found object in bucket ${s3BucketName}`); + return null; + // throw new Error(`Cannot found object in bucket ${s3BucketName}`); } core.debug(`Found objects ${response.Contents.length}`); const found = response.Contents.find((content) => content.Key === primaryKey); @@ -68693,7 +68694,7 @@ function searchRestoreKeyEntry(notPrimaryKey, entries) { } function _searchRestoreKeyEntry(notPrimaryKey, entries) { var _a; - let matchPrefix = new Array(); + const matchPrefix = []; for (const entry of entries) { if (entry.Key === notPrimaryKey) { // extractly match, Use this entry @@ -69080,10 +69081,10 @@ function getUploadOptions(copy) { uploadChunkSize: 32 * 1024 * 1024 }; if (copy) { - if (typeof copy.uploadConcurrency === 'number') { + if (typeof copy.uploadConcurrency === "number") { result.uploadConcurrency = copy.uploadConcurrency; } - if (typeof copy.uploadChunkSize === 'number') { + if (typeof copy.uploadChunkSize === "number") { result.uploadChunkSize = copy.uploadChunkSize; } } @@ -69104,13 +69105,13 @@ function getDownloadOptions(copy) { timeoutInMs: 30000 }; if (copy) { - if (typeof copy.useAzureSdk === 'boolean') { + if (typeof copy.useAzureSdk === "boolean") { result.useAzureSdk = copy.useAzureSdk; } - if (typeof copy.downloadConcurrency === 'number') { + if (typeof copy.downloadConcurrency === "number") { result.downloadConcurrency = copy.downloadConcurrency; } - if (typeof copy.timeoutInMs === 'number') { + if (typeof copy.timeoutInMs === "number") { result.timeoutInMs = copy.timeoutInMs; } } diff --git a/dist/save-only/index.js b/dist/save-only/index.js index 73467d9..a2bbd7c 100644 --- a/dist/save-only/index.js +++ b/dist/save-only/index.js @@ -68381,11 +68381,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.assertDefined = exports.unlinkFile = exports.getCompressionMethod = exports.isGnuTarInstalled = exports.isZstdInstalled = exports.resolvePaths = exports.createTempDirectory = exports.getCacheFileName = exports.getArchiveFileSizeInBytes = exports.SocketTimeout = exports.DefaultRetryDelay = exports.DefaultRetryAttempts = exports.CompressionMethod = exports.CacheFilename = void 0; const core = __importStar(__nccwpck_require__(42186)); const exec = __importStar(__nccwpck_require__(71514)); -const io = __importStar(__nccwpck_require__(47351)); const glob = __importStar(__nccwpck_require__(28090)); -const semver = __importStar(__nccwpck_require__(11383)); -const path = __importStar(__nccwpck_require__(71017)); +const io = __importStar(__nccwpck_require__(47351)); const fs = __importStar(__nccwpck_require__(57147)); +const path = __importStar(__nccwpck_require__(71017)); +const semver = __importStar(__nccwpck_require__(11383)); const uuid_1 = __nccwpck_require__(75840); var CacheFilename; (function (CacheFilename) { @@ -68651,7 +68651,7 @@ function getCacheEntryS3(s3Options, s3BucketName, keys, paths) { return __awaiter(this, void 0, void 0, function* () { const primaryKey = keys[0]; const s3client = new client_s3_1.S3Client(s3Options); - let contents = new Array(); + const contents = []; let s3ContinuationToken = null; let count = 0; const param = { @@ -68670,7 +68670,8 @@ function getCacheEntryS3(s3Options, s3BucketName, keys, paths) { throw new Error(`Error from S3: ${e}`); } if (!response.Contents) { - throw new Error(`Cannot found object in bucket ${s3BucketName}`); + return null; + // throw new Error(`Cannot found object in bucket ${s3BucketName}`); } core.debug(`Found objects ${response.Contents.length}`); const found = response.Contents.find((content) => content.Key === primaryKey); @@ -68716,7 +68717,7 @@ function searchRestoreKeyEntry(notPrimaryKey, entries) { } function _searchRestoreKeyEntry(notPrimaryKey, entries) { var _a; - let matchPrefix = new Array(); + const matchPrefix = []; for (const entry of entries) { if (entry.Key === notPrimaryKey) { // extractly match, Use this entry @@ -69103,10 +69104,10 @@ function getUploadOptions(copy) { uploadChunkSize: 32 * 1024 * 1024 }; if (copy) { - if (typeof copy.uploadConcurrency === 'number') { + if (typeof copy.uploadConcurrency === "number") { result.uploadConcurrency = copy.uploadConcurrency; } - if (typeof copy.uploadChunkSize === 'number') { + if (typeof copy.uploadChunkSize === "number") { result.uploadChunkSize = copy.uploadChunkSize; } } @@ -69127,13 +69128,13 @@ function getDownloadOptions(copy) { timeoutInMs: 30000 }; if (copy) { - if (typeof copy.useAzureSdk === 'boolean') { + if (typeof copy.useAzureSdk === "boolean") { result.useAzureSdk = copy.useAzureSdk; } - if (typeof copy.downloadConcurrency === 'number') { + if (typeof copy.downloadConcurrency === "number") { result.downloadConcurrency = copy.downloadConcurrency; } - if (typeof copy.timeoutInMs === 'number') { + if (typeof copy.timeoutInMs === "number") { result.timeoutInMs = copy.timeoutInMs; } } diff --git a/dist/save/index.js b/dist/save/index.js index 1c94afa..833014c 100644 --- a/dist/save/index.js +++ b/dist/save/index.js @@ -68354,11 +68354,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.assertDefined = exports.unlinkFile = exports.getCompressionMethod = exports.isGnuTarInstalled = exports.isZstdInstalled = exports.resolvePaths = exports.createTempDirectory = exports.getCacheFileName = exports.getArchiveFileSizeInBytes = exports.SocketTimeout = exports.DefaultRetryDelay = exports.DefaultRetryAttempts = exports.CompressionMethod = exports.CacheFilename = void 0; const core = __importStar(__nccwpck_require__(42186)); const exec = __importStar(__nccwpck_require__(71514)); -const io = __importStar(__nccwpck_require__(47351)); const glob = __importStar(__nccwpck_require__(28090)); -const semver = __importStar(__nccwpck_require__(11383)); -const path = __importStar(__nccwpck_require__(71017)); +const io = __importStar(__nccwpck_require__(47351)); const fs = __importStar(__nccwpck_require__(57147)); +const path = __importStar(__nccwpck_require__(71017)); +const semver = __importStar(__nccwpck_require__(11383)); const uuid_1 = __nccwpck_require__(75840); var CacheFilename; (function (CacheFilename) { @@ -68624,7 +68624,7 @@ function getCacheEntryS3(s3Options, s3BucketName, keys, paths) { return __awaiter(this, void 0, void 0, function* () { const primaryKey = keys[0]; const s3client = new client_s3_1.S3Client(s3Options); - let contents = new Array(); + const contents = []; let s3ContinuationToken = null; let count = 0; const param = { @@ -68643,7 +68643,8 @@ function getCacheEntryS3(s3Options, s3BucketName, keys, paths) { throw new Error(`Error from S3: ${e}`); } if (!response.Contents) { - throw new Error(`Cannot found object in bucket ${s3BucketName}`); + return null; + // throw new Error(`Cannot found object in bucket ${s3BucketName}`); } core.debug(`Found objects ${response.Contents.length}`); const found = response.Contents.find((content) => content.Key === primaryKey); @@ -68689,7 +68690,7 @@ function searchRestoreKeyEntry(notPrimaryKey, entries) { } function _searchRestoreKeyEntry(notPrimaryKey, entries) { var _a; - let matchPrefix = new Array(); + const matchPrefix = []; for (const entry of entries) { if (entry.Key === notPrimaryKey) { // extractly match, Use this entry @@ -69076,10 +69077,10 @@ function getUploadOptions(copy) { uploadChunkSize: 32 * 1024 * 1024 }; if (copy) { - if (typeof copy.uploadConcurrency === 'number') { + if (typeof copy.uploadConcurrency === "number") { result.uploadConcurrency = copy.uploadConcurrency; } - if (typeof copy.uploadChunkSize === 'number') { + if (typeof copy.uploadChunkSize === "number") { result.uploadChunkSize = copy.uploadChunkSize; } } @@ -69100,13 +69101,13 @@ function getDownloadOptions(copy) { timeoutInMs: 30000 }; if (copy) { - if (typeof copy.useAzureSdk === 'boolean') { + if (typeof copy.useAzureSdk === "boolean") { result.useAzureSdk = copy.useAzureSdk; } - if (typeof copy.downloadConcurrency === 'number') { + if (typeof copy.downloadConcurrency === "number") { result.downloadConcurrency = copy.downloadConcurrency; } - if (typeof copy.timeoutInMs === 'number') { + if (typeof copy.timeoutInMs === "number") { result.timeoutInMs = copy.timeoutInMs; } } diff --git a/src/utils/cacheUtils.ts b/src/utils/cacheUtils.ts index 6ebcb91..34ea841 100644 --- a/src/utils/cacheUtils.ts +++ b/src/utils/cacheUtils.ts @@ -1,10 +1,10 @@ import * as core from "@actions/core"; import * as exec from "@actions/exec"; -import * as io from "@actions/io"; import * as glob from "@actions/glob"; -import * as semver from "semver"; -import * as path from "path"; +import * as io from "@actions/io"; import * as fs from "fs"; +import * as path from "path"; +import * as semver from "semver"; import { v4 as uuidV4 } from "uuid"; export enum CacheFilename { @@ -151,4 +151,4 @@ export function assertDefined(name: string, value?: T): T { } return value; -} \ No newline at end of file +} diff --git a/src/utils/clientUtils.ts b/src/utils/clientUtils.ts index dd75c6f..f9dceb5 100644 --- a/src/utils/clientUtils.ts +++ b/src/utils/clientUtils.ts @@ -5,14 +5,13 @@ import { RequestOptions, TypedResponse } from "@actions/http-client/lib/interfaces"; -import { DownloadOptions, UploadOptions } from "./contracts"; import { + _Object, ListObjectsV2Command, ListObjectsV2CommandInput, ListObjectsV2CommandOutput, S3Client, - S3ClientConfig, - _Object + S3ClientConfig } from "@aws-sdk/client-s3"; import { Progress, Upload } from "@aws-sdk/lib-storage"; import * as crypto from "crypto"; @@ -23,20 +22,19 @@ import * as utils from "./cacheUtils"; import { CompressionMethod } from "./cacheUtils"; import { ArtifactCacheEntry, - InternalCacheOptions, CommitCacheRequest, + DownloadOptions, + InternalCacheOptions, + ITypedResponseWithError, ReserveCacheRequest, ReserveCacheResponse, - ITypedResponseWithError + UploadOptions } from "./contracts"; import { downloadCacheHttpClient, downloadCacheStorageS3 } from "./downloadUtils"; -import { - getDownloadOptions, - getUploadOptions -} from "./options"; +import { getDownloadOptions, getUploadOptions } from "./options"; import { isSuccessStatusCode, retryHttpClientResponse, @@ -117,7 +115,7 @@ async function getCacheEntryS3( const s3client = new S3Client(s3Options); - let contents: _content[] = new Array(); + const contents: _content[] = []; let s3ContinuationToken: string | undefined | null = null; let count = 0; @@ -138,7 +136,8 @@ async function getCacheEntryS3( throw new Error(`Error from S3: ${e}`); } if (!response.Contents) { - throw new Error(`Cannot found object in bucket ${s3BucketName}`); + return null; + // throw new Error(`Cannot found object in bucket ${s3BucketName}`); } core.debug(`Found objects ${response.Contents.length}`); @@ -200,7 +199,7 @@ function _searchRestoreKeyEntry( notPrimaryKey: string, entries: _content[] ): _content | null { - let matchPrefix: _content[] = new Array(); + const matchPrefix: _content[] = []; for (const entry of entries) { if (entry.Key === notPrimaryKey) { diff --git a/src/utils/contracts.ts b/src/utils/contracts.ts index 9ca8340..fccfb5c 100644 --- a/src/utils/contracts.ts +++ b/src/utils/contracts.ts @@ -1,6 +1,7 @@ -import { CompressionMethod } from "./cacheUtils"; -import { TypedResponse } from "@actions/http-client/lib/interfaces"; import { HttpClientError } from "@actions/http-client"; +import { TypedResponse } from "@actions/http-client/lib/interfaces"; + +import { CompressionMethod } from "./cacheUtils"; export interface ITypedResponseWithError extends TypedResponse { error?: HttpClientError; @@ -32,7 +33,6 @@ export interface InternalCacheOptions { cacheSize?: number; } - /** * Options to control cache upload */ @@ -42,19 +42,19 @@ export interface UploadOptions { * * @default 4 */ - uploadConcurrency?: number + uploadConcurrency?: number; /** * Maximum chunk size in bytes for cache upload * * @default 32MB */ - uploadChunkSize?: number - } - - /** - * Options to control cache download - */ - export interface DownloadOptions { + uploadChunkSize?: number; +} + +/** + * Options to control cache download + */ +export interface DownloadOptions { /** * Indicates whether to use the Azure Blob SDK to download caches * that are stored on Azure Blob Storage to improve reliability and @@ -62,23 +62,23 @@ export interface UploadOptions { * * @default true */ - useAzureSdk?: boolean - + useAzureSdk?: boolean; + /** * Number of parallel downloads (this option only applies when using * the Azure SDK) * * @default 8 */ - downloadConcurrency?: number - + downloadConcurrency?: number; + /** * Maximum time for each download request, in milliseconds (this * option only applies when using the Azure SDK) * * @default 30000 */ - timeoutInMs?: number, + timeoutInMs?: number; - lookupOnly?: boolean - } \ No newline at end of file + lookupOnly?: boolean; +} diff --git a/src/utils/downloadUtils.ts b/src/utils/downloadUtils.ts index eba2d23..61d484a 100644 --- a/src/utils/downloadUtils.ts +++ b/src/utils/downloadUtils.ts @@ -1,14 +1,12 @@ import * as core from "@actions/core"; import { HttpClient, HttpClientResponse } from "@actions/http-client"; import { GetObjectCommand, S3Client, S3ClientConfig } from "@aws-sdk/client-s3"; -import * as buffer from "buffer"; import * as fs from "fs"; import * as stream from "stream"; import * as util from "util"; import * as utils from "./cacheUtils"; import { SocketTimeout } from "./cacheUtils"; -import { DownloadOptions, UploadOptions } from "./contracts"; import { retryHttpClientResponse } from "./requestUtils"; /** diff --git a/src/utils/options.ts b/src/utils/options.ts index c33f45e..83bd7d3 100644 --- a/src/utils/options.ts +++ b/src/utils/options.ts @@ -1,4 +1,5 @@ -import * as core from '@actions/core' +import * as core from "@actions/core"; + import { DownloadOptions, UploadOptions } from "./contracts"; /** @@ -7,25 +8,25 @@ import { DownloadOptions, UploadOptions } from "./contracts"; * @param copy the original upload options */ export function getUploadOptions(copy?: UploadOptions): UploadOptions { - const result: UploadOptions = { - uploadConcurrency: 4, - uploadChunkSize: 32 * 1024 * 1024 - } - - if (copy) { - if (typeof copy.uploadConcurrency === 'number') { - result.uploadConcurrency = copy.uploadConcurrency - } - - if (typeof copy.uploadChunkSize === 'number') { - result.uploadChunkSize = copy.uploadChunkSize + const result: UploadOptions = { + uploadConcurrency: 4, + uploadChunkSize: 32 * 1024 * 1024 + }; + + if (copy) { + if (typeof copy.uploadConcurrency === "number") { + result.uploadConcurrency = copy.uploadConcurrency; + } + + if (typeof copy.uploadChunkSize === "number") { + result.uploadChunkSize = copy.uploadChunkSize; + } } - } - core.debug(`Upload concurrency: ${result.uploadConcurrency}`) - core.debug(`Upload chunk size: ${result.uploadChunkSize}`) + core.debug(`Upload concurrency: ${result.uploadConcurrency}`); + core.debug(`Upload chunk size: ${result.uploadChunkSize}`); - return result + return result; } /** @@ -34,29 +35,29 @@ export function getUploadOptions(copy?: UploadOptions): UploadOptions { * @param copy the original download options */ export function getDownloadOptions(copy?: DownloadOptions): DownloadOptions { - const result: DownloadOptions = { - useAzureSdk: true, - downloadConcurrency: 8, - timeoutInMs: 30000 - } - - if (copy) { - if (typeof copy.useAzureSdk === 'boolean') { - result.useAzureSdk = copy.useAzureSdk - } - - if (typeof copy.downloadConcurrency === 'number') { - result.downloadConcurrency = copy.downloadConcurrency - } - - if (typeof copy.timeoutInMs === 'number') { - result.timeoutInMs = copy.timeoutInMs + const result: DownloadOptions = { + useAzureSdk: true, + downloadConcurrency: 8, + timeoutInMs: 30000 + }; + + if (copy) { + if (typeof copy.useAzureSdk === "boolean") { + result.useAzureSdk = copy.useAzureSdk; + } + + if (typeof copy.downloadConcurrency === "number") { + result.downloadConcurrency = copy.downloadConcurrency; + } + + if (typeof copy.timeoutInMs === "number") { + result.timeoutInMs = copy.timeoutInMs; + } } - } - core.debug(`Use Azure SDK: ${result.useAzureSdk}`) - core.debug(`Download concurrency: ${result.downloadConcurrency}`) - core.debug(`Request timeout (ms): ${result.timeoutInMs}`) + core.debug(`Use Azure SDK: ${result.useAzureSdk}`); + core.debug(`Download concurrency: ${result.downloadConcurrency}`); + core.debug(`Request timeout (ms): ${result.timeoutInMs}`); - return result -} \ No newline at end of file + return result; +} diff --git a/src/utils/requestUtils.ts b/src/utils/requestUtils.ts index 1582aff..24eb7e8 100644 --- a/src/utils/requestUtils.ts +++ b/src/utils/requestUtils.ts @@ -1,10 +1,11 @@ import * as core from "@actions/core"; import { - HttpCodes, HttpClientError, - HttpClientResponse + HttpClientResponse, + HttpCodes } from "@actions/http-client"; -import { DefaultRetryDelay, DefaultRetryAttempts } from "./cacheUtils"; + +import { DefaultRetryAttempts, DefaultRetryDelay } from "./cacheUtils"; import { ITypedResponseWithError } from "./contracts"; export function isSuccessStatusCode(statusCode?: number): boolean { diff --git a/src/utils/tar.ts b/src/utils/tar.ts index 7ed34b5..466ee3c 100644 --- a/src/utils/tar.ts +++ b/src/utils/tar.ts @@ -2,6 +2,7 @@ import { exec } from "@actions/exec"; import * as io from "@actions/io"; import { existsSync, writeFileSync } from "fs"; import * as path from "path"; + import * as utils from "./cacheUtils"; import { CompressionMethod } from "./cacheUtils";