diff --git a/dist/setup/index.js b/dist/setup/index.js index 3c417588f..43bfaa1ba 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -63871,6 +63871,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; +var __asyncValues = (this && this.__asyncValues) || function (o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } +}; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; @@ -63886,13 +63893,29 @@ class PoetryCache extends cache_distributor_1.default { this.patterns = patterns; } getCacheGlobalDirectories() { + var e_1, _a; return __awaiter(this, void 0, void 0, function* () { - const poetryConfig = yield this.getPoetryConfiguration(); - const cacheDir = poetryConfig['cache-dir']; - const virtualenvsPath = poetryConfig['virtualenvs.path'].replace('{cache-dir}', cacheDir); - const paths = [virtualenvsPath]; - if (poetryConfig['virtualenvs.in-project'] === true) { - paths.push(path.join(process.cwd(), '.venv')); + const paths = []; + const globber = yield glob.create(this.patterns); + try { + for (var _b = __asyncValues(globber.globGenerator()), _c; _c = yield _b.next(), !_c.done;) { + const file = _c.value; + const basedir = path.dirname(file); + const poetryConfig = yield this.getPoetryConfiguration(basedir); + const cacheDir = poetryConfig['cache-dir']; + const virtualenvsPath = poetryConfig['virtualenvs.path'].replace('{cache-dir}', cacheDir); + paths.push(virtualenvsPath); + if (poetryConfig['virtualenvs.in-project'] === true) { + paths.push(path.join(basedir, '.venv')); + } + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) yield _a.call(_b); + } + finally { if (e_1) throw e_1.error; } } return paths; }); @@ -63908,12 +63931,9 @@ class PoetryCache extends cache_distributor_1.default { }; }); } - getPoetryConfiguration() { + getPoetryConfiguration(basedir) { return __awaiter(this, void 0, void 0, function* () { - const { stdout, stderr, exitCode } = yield exec.getExecOutput('poetry', [ - 'config', - '--list' - ]); + const { stdout, stderr, exitCode } = yield exec.getExecOutput('poetry', ['config', '--list'], { cwd: basedir }); if (exitCode && stderr) { throw new Error('Could not get cache folder path for poetry package manager'); } diff --git a/src/cache-distributions/poetry-cache.ts b/src/cache-distributions/poetry-cache.ts index 8489ed33e..890b7454f 100644 --- a/src/cache-distributions/poetry-cache.ts +++ b/src/cache-distributions/poetry-cache.ts @@ -13,18 +13,24 @@ class PoetryCache extends CacheDistributor { } protected async getCacheGlobalDirectories() { - const poetryConfig = await this.getPoetryConfiguration(); + const paths = []; + const globber = await glob.create(this.patterns); - const cacheDir = poetryConfig['cache-dir']; - const virtualenvsPath = poetryConfig['virtualenvs.path'].replace( - '{cache-dir}', - cacheDir - ); + for await (const file of globber.globGenerator()) { + const basedir = path.dirname(file); + const poetryConfig = await this.getPoetryConfiguration(basedir); + + const cacheDir = poetryConfig['cache-dir']; + const virtualenvsPath = poetryConfig['virtualenvs.path'].replace( + '{cache-dir}', + cacheDir + ); - const paths = [virtualenvsPath]; + paths.push(virtualenvsPath); - if (poetryConfig['virtualenvs.in-project'] === true) { - paths.push(path.join(process.cwd(), '.venv')); + if (poetryConfig['virtualenvs.in-project'] === true) { + paths.push(path.join(basedir, '.venv')); + } } return paths; @@ -40,11 +46,12 @@ class PoetryCache extends CacheDistributor { }; } - private async getPoetryConfiguration() { - const {stdout, stderr, exitCode} = await exec.getExecOutput('poetry', [ - 'config', - '--list' - ]); + private async getPoetryConfiguration(basedir: string) { + const {stdout, stderr, exitCode} = await exec.getExecOutput( + 'poetry', + ['config', '--list'], + {cwd: basedir} + ); if (exitCode && stderr) { throw new Error(