diff --git a/dist/setup/index.js b/dist/setup/index.js
index ae0ab404..0e011392 100644
--- a/dist/setup/index.js
+++ b/dist/setup/index.js
@@ -38756,7 +38756,90 @@ exports.setLogLevel = setLogLevel;
 /* 495 */,
 /* 496 */,
 /* 497 */,
-/* 498 */,
+/* 498 */
+/***/ (function(__unusedmodule, exports, __webpack_require__) {
+
+"use strict";
+
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+    return new (P || (P = Promise))(function (resolve, reject) {
+        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+        step((generator = generator.apply(thisArg, _arguments || [])).next());
+    });
+};
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
+    result["default"] = mod;
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const glob = __importStar(__webpack_require__(281));
+const os = __importStar(__webpack_require__(87));
+const path = __importStar(__webpack_require__(622));
+const exec = __importStar(__webpack_require__(986));
+const cache_distributor_1 = __importDefault(__webpack_require__(435));
+class PoetryCache extends cache_distributor_1.default {
+    constructor(pythonVersion, patterns = '**/poetry.lock') {
+        super('poetry', patterns);
+        this.pythonVersion = pythonVersion;
+        this.patterns = patterns;
+    }
+    getCacheGlobalDirectories() {
+        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'));
+            }
+            return paths;
+        });
+    }
+    computeKeys() {
+        return __awaiter(this, void 0, void 0, function* () {
+            const hash = yield glob.hashFiles(this.patterns);
+            const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
+            const restoreKey = undefined;
+            return {
+                primaryKey,
+                restoreKey
+            };
+        });
+    }
+    getPoetryConfiguration() {
+        return __awaiter(this, void 0, void 0, function* () {
+            const { stdout, stderr, exitCode } = yield exec.getExecOutput('poetry', [
+                'config',
+                '--list'
+            ]);
+            if (exitCode && stderr) {
+                console.log(stdout, stderr, exitCode);
+                throw new Error(`Could not get cache folder path for poetry package manager`);
+            }
+            const lines = stdout.trim().split(os.EOL);
+            const config = {};
+            for (let line of lines) {
+                line = line.replace(/#.*$/, '');
+                const [key, value] = line.split('=').map(part => part.trim());
+                config[key] = value;
+            }
+            return config;
+        });
+    }
+}
+exports.default = PoetryCache;
+
+
+/***/ }),
 /* 499 */
 /***/ (function(module, __unusedexports, __webpack_require__) {
 
@@ -44017,10 +44100,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
 exports.getCacheDistributor = exports.PackageManagers = void 0;
 const pip_cache_1 = __importDefault(__webpack_require__(394));
 const pipenv_cache_1 = __importDefault(__webpack_require__(235));
+const poetry_cache_1 = __importDefault(__webpack_require__(498));
 var PackageManagers;
 (function (PackageManagers) {
     PackageManagers["Pip"] = "pip";
     PackageManagers["Pipenv"] = "pipenv";
+    PackageManagers["Poetry"] = "poetry";
 })(PackageManagers = exports.PackageManagers || (exports.PackageManagers = {}));
 function getCacheDistributor(packageManager, pythonVersion, cacheDependencyPath) {
     switch (packageManager) {
@@ -44028,6 +44113,8 @@ function getCacheDistributor(packageManager, pythonVersion, cacheDependencyPath)
             return new pip_cache_1.default(pythonVersion, cacheDependencyPath);
         case PackageManagers.Pipenv:
             return new pipenv_cache_1.default(pythonVersion, cacheDependencyPath);
+        case PackageManagers.Poetry:
+            return new poetry_cache_1.default(pythonVersion, cacheDependencyPath);
         default:
             throw new Error(`Caching for '${packageManager}' is not supported`);
     }