From 2b8eff3e886fa23edac085802272260eea4e60e9 Mon Sep 17 00:00:00 2001 From: Leon Wright Date: Fri, 15 Jul 2022 12:57:51 +0800 Subject: [PATCH] fix: Self-Hosted Runner Tool Cache This aligns the tool cache path logic with the process used by actions/python-versions, maintaining the ability to locate the version binaries, and fixing self-hosted runners. Fixes #459 --- dist/setup/index.js | 13 +++++-------- src/setup-python.ts | 13 ++++++------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/dist/setup/index.js b/dist/setup/index.js index 9ac89a4fd..74dfe4689 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -65278,14 +65278,11 @@ function resolveVersionInput() { function run() { var _a; return __awaiter(this, void 0, void 0, function* () { - // According to the README windows binaries do not require to be installed - // in the specific location, but Mac and Linux do - if (!utils_1.IS_WINDOWS && !((_a = process.env.AGENT_TOOLSDIRECTORY) === null || _a === void 0 ? void 0 : _a.trim())) { - if (utils_1.IS_LINUX) - process.env['AGENT_TOOLSDIRECTORY'] = '/opt/hostedtoolcache'; - else - process.env['AGENT_TOOLSDIRECTORY'] = '/Users/runner/hostedtoolcache'; - process.env['RUNNER_TOOL_CACHE'] = process.env['AGENT_TOOLSDIRECTORY']; + // This aligns us with actions/setup-python, which defaults their + // internal TOOLCACHE_ROOT to RUNNER_TOOL_CACHE when AGENT_TOOLSDIRECTORY + // is not set. + if (!((_a = process.env.AGENT_TOOLSDIRECTORY) === null || _a === void 0 ? void 0 : _a.trim())) { + process.env['AGENT_TOOLSDIRECTORY'] = process.env['RUNNER_TOOL_CACHE']; } core.debug(`Python is expected to be installed into RUNNER_TOOL_CACHE=${process.env['RUNNER_TOOL_CACHE']}`); try { diff --git a/src/setup-python.ts b/src/setup-python.ts index db17735b4..630af6e66 100644 --- a/src/setup-python.ts +++ b/src/setup-python.ts @@ -5,7 +5,7 @@ import * as path from 'path'; import * as os from 'os'; import fs from 'fs'; import {getCacheDistributor} from './cache-distributions/cache-factory'; -import {isCacheFeatureAvailable, IS_LINUX, IS_WINDOWS} from './utils'; +import {isCacheFeatureAvailable} from './utils'; function isPyPyVersion(versionSpec: string) { return versionSpec.startsWith('pypy'); @@ -61,12 +61,11 @@ function resolveVersionInput(): string { } async function run() { - // According to the README windows binaries do not require to be installed - // in the specific location, but Mac and Linux do - if (!IS_WINDOWS && !process.env.AGENT_TOOLSDIRECTORY?.trim()) { - if (IS_LINUX) process.env['AGENT_TOOLSDIRECTORY'] = '/opt/hostedtoolcache'; - else process.env['AGENT_TOOLSDIRECTORY'] = '/Users/runner/hostedtoolcache'; - process.env['RUNNER_TOOL_CACHE'] = process.env['AGENT_TOOLSDIRECTORY']; + // This aligns us with actions/setup-python, which defaults their + // internal TOOLCACHE_ROOT to RUNNER_TOOL_CACHE when AGENT_TOOLSDIRECTORY + // is not set. + if (!process.env.AGENT_TOOLSDIRECTORY?.trim()) { + process.env['AGENT_TOOLSDIRECTORY'] = process.env['RUNNER_TOOL_CACHE']; } core.debug( `Python is expected to be installed into RUNNER_TOOL_CACHE=${process.env['RUNNER_TOOL_CACHE']}`