From 2d87f2fcc7e45aca8f85bc25cca9420164e747b5 Mon Sep 17 00:00:00 2001
From: Sergey Dolin <dsame@github.com>
Date: Tue, 11 Apr 2023 08:38:20 +0200
Subject: [PATCH] Fix find lock file

---
 dist/cache-save/index.js | 7 ++++---
 dist/setup/index.js      | 9 +++++----
 src/cache-restore.ts     | 4 +++-
 src/cache-utils.ts       | 2 +-
 4 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/dist/cache-save/index.js b/dist/cache-save/index.js
index 99680600..5107d00b 100644
--- a/dist/cache-save/index.js
+++ b/dist/cache-save/index.js
@@ -59248,7 +59248,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
     return (mod && mod.__esModule) ? mod : { "default": mod };
 };
 Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.isCacheFeatureAvailable = exports.isGhes = exports.getCacheDirectoryPath = exports.getPackageManagerInfo = exports.getCommandOutput = exports.supportedPackageManagers = void 0;
+exports.isCacheFeatureAvailable = exports.isGhes = exports.getCacheDirectoryPath = exports.getPackageManagerInfo = exports.getPackageManagerWorkingDir = exports.getCommandOutput = exports.supportedPackageManagers = void 0;
 const core = __importStar(__nccwpck_require__(2186));
 const exec = __importStar(__nccwpck_require__(1514));
 const cache = __importStar(__nccwpck_require__(7799));
@@ -59294,8 +59294,9 @@ const getPackageManagerWorkingDir = () => {
     const cacheDependencyPath = core.getInput('cache-dependency-path');
     return cacheDependencyPath ? path_1.default.dirname(cacheDependencyPath) : null;
 };
+exports.getPackageManagerWorkingDir = getPackageManagerWorkingDir;
 const getPackageManagerVersion = (packageManager, command) => __awaiter(void 0, void 0, void 0, function* () {
-    const stdOut = yield exports.getCommandOutput(`${packageManager} ${command}`, getPackageManagerWorkingDir());
+    const stdOut = yield exports.getCommandOutput(`${packageManager} ${command}`, exports.getPackageManagerWorkingDir());
     if (!stdOut) {
         throw new Error(`Could not retrieve version of ${packageManager}`);
     }
@@ -59324,7 +59325,7 @@ const getPackageManagerInfo = (packageManager) => __awaiter(void 0, void 0, void
 });
 exports.getPackageManagerInfo = getPackageManagerInfo;
 const getCacheDirectoryPath = (packageManagerInfo, packageManager) => __awaiter(void 0, void 0, void 0, function* () {
-    const stdOut = yield exports.getCommandOutput(packageManagerInfo.getCacheFolderCommand, getPackageManagerWorkingDir());
+    const stdOut = yield exports.getCommandOutput(packageManagerInfo.getCacheFolderCommand, exports.getPackageManagerWorkingDir());
     if (!stdOut) {
         throw new Error(`Could not get cache folder path for ${packageManager}`);
     }
diff --git a/dist/setup/index.js b/dist/setup/index.js
index 6bc89acf..e7f71678 100644
--- a/dist/setup/index.js
+++ b/dist/setup/index.js
@@ -71167,7 +71167,7 @@ const restoreCache = (packageManager, cacheDependencyPath) => __awaiter(void 0,
 exports.restoreCache = restoreCache;
 const findLockFile = (packageManager) => {
     const lockFiles = packageManager.lockFilePatterns;
-    const workspace = process.env.GITHUB_WORKSPACE;
+    const workspace = cache_utils_1.getPackageManagerWorkingDir() || process.env.GITHUB_WORKSPACE;
     const rootContent = fs_1.default.readdirSync(workspace);
     const lockFile = lockFiles.find(item => rootContent.includes(item));
     if (!lockFile) {
@@ -71216,7 +71216,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
     return (mod && mod.__esModule) ? mod : { "default": mod };
 };
 Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.isCacheFeatureAvailable = exports.isGhes = exports.getCacheDirectoryPath = exports.getPackageManagerInfo = exports.getCommandOutput = exports.supportedPackageManagers = void 0;
+exports.isCacheFeatureAvailable = exports.isGhes = exports.getCacheDirectoryPath = exports.getPackageManagerInfo = exports.getPackageManagerWorkingDir = exports.getCommandOutput = exports.supportedPackageManagers = void 0;
 const core = __importStar(__nccwpck_require__(2186));
 const exec = __importStar(__nccwpck_require__(1514));
 const cache = __importStar(__nccwpck_require__(7799));
@@ -71262,8 +71262,9 @@ const getPackageManagerWorkingDir = () => {
     const cacheDependencyPath = core.getInput('cache-dependency-path');
     return cacheDependencyPath ? path_1.default.dirname(cacheDependencyPath) : null;
 };
+exports.getPackageManagerWorkingDir = getPackageManagerWorkingDir;
 const getPackageManagerVersion = (packageManager, command) => __awaiter(void 0, void 0, void 0, function* () {
-    const stdOut = yield exports.getCommandOutput(`${packageManager} ${command}`, getPackageManagerWorkingDir());
+    const stdOut = yield exports.getCommandOutput(`${packageManager} ${command}`, exports.getPackageManagerWorkingDir());
     if (!stdOut) {
         throw new Error(`Could not retrieve version of ${packageManager}`);
     }
@@ -71292,7 +71293,7 @@ const getPackageManagerInfo = (packageManager) => __awaiter(void 0, void 0, void
 });
 exports.getPackageManagerInfo = getPackageManagerInfo;
 const getCacheDirectoryPath = (packageManagerInfo, packageManager) => __awaiter(void 0, void 0, void 0, function* () {
-    const stdOut = yield exports.getCommandOutput(packageManagerInfo.getCacheFolderCommand, getPackageManagerWorkingDir());
+    const stdOut = yield exports.getCommandOutput(packageManagerInfo.getCacheFolderCommand, exports.getPackageManagerWorkingDir());
     if (!stdOut) {
         throw new Error(`Could not get cache folder path for ${packageManager}`);
     }
diff --git a/src/cache-restore.ts b/src/cache-restore.ts
index c6f14ad7..733e486a 100644
--- a/src/cache-restore.ts
+++ b/src/cache-restore.ts
@@ -8,6 +8,7 @@ import {State} from './constants';
 import {
   getCacheDirectoryPath,
   getPackageManagerInfo,
+  getPackageManagerWorkingDir,
   PackageManagerInfo
 } from './cache-utils';
 
@@ -55,7 +56,8 @@ export const restoreCache = async (
 
 const findLockFile = (packageManager: PackageManagerInfo) => {
   const lockFiles = packageManager.lockFilePatterns;
-  const workspace = process.env.GITHUB_WORKSPACE!;
+  const workspace =
+    getPackageManagerWorkingDir() || process.env.GITHUB_WORKSPACE!;
   const rootContent = fs.readdirSync(workspace);
 
   const lockFile = lockFiles.find(item => rootContent.includes(item));
diff --git a/src/cache-utils.ts b/src/cache-utils.ts
index c3e116ff..5d54cee6 100644
--- a/src/cache-utils.ts
+++ b/src/cache-utils.ts
@@ -51,7 +51,7 @@ export const getCommandOutput = async (
   return stdout.trim();
 };
 
-const getPackageManagerWorkingDir = (): string | null => {
+export const getPackageManagerWorkingDir = (): string | null => {
   const projectDir = core.getInput('project-dir');
   if (projectDir) {
     return projectDir;