diff --git a/dist/setup/index.js b/dist/setup/index.js index 37158af..befde36 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -61466,31 +61466,32 @@ function installGoVersion(info, auth, arch) { } // for github hosted windows runner handle latency of OS drive // by avoiding write operations to C: + if (!isWindows) + return addExecutablesToCache(extPath, info, arch); const isHosted = process.env['RUNNER_ENVIRONMENT'] === 'github-hosted' || process.env['AGENT_ISSELFHOSTED'] === '0'; + if (!isHosted) + return addExecutablesToCache(extPath, info, arch); const defaultToolCacheRoot = process.env['RUNNER_TOOL_CACHE']; - if (isWindows && - defaultToolCacheRoot && - isHosted && - fs_1.default.existsSync('d:\\') && - fs_1.default.existsSync('c:\\')) { - const substitutedToolCacheRoot = defaultToolCacheRoot - .replace('C:', 'D:') - .replace('c:', 'd:'); - // make toolcache root to be on drive d: - process.env['RUNNER_TOOL_CACHE'] = substitutedToolCacheRoot; - const actualToolCacheDir = yield addExecutablesToCache(extPath, info, arch); - // create a link from c: to d: - const defaultToolCacheDir = actualToolCacheDir.replace(substitutedToolCacheRoot, defaultToolCacheRoot); - fs_1.default.mkdirSync(path.dirname(defaultToolCacheDir), { recursive: true }); - fs_1.default.symlinkSync(actualToolCacheDir, defaultToolCacheDir, 'junction'); - core.info(`Created link ${defaultToolCacheDir} => ${actualToolCacheDir}`); - // restore toolcache root to default drive c: - process.env['RUNNER_TOOL_CACHE'] = defaultToolCacheRoot; - // make outer code to continue using toolcache as if it were installed on c: - return defaultToolCacheDir; - } - return yield addExecutablesToCache(extPath, info, arch); + if (!defaultToolCacheRoot) + return addExecutablesToCache(extPath, info, arch); + if (!fs_1.default.existsSync('d:\\') || !fs_1.default.existsSync('c:\\')) + return addExecutablesToCache(extPath, info, arch); + const substitutedToolCacheRoot = defaultToolCacheRoot + .replace('C:', 'D:') + .replace('c:', 'd:'); + // make toolcache root to be on drive d: + process.env['RUNNER_TOOL_CACHE'] = substitutedToolCacheRoot; + const actualToolCacheDir = yield addExecutablesToCache(extPath, info, arch); + // create a link from c: to d: + const defaultToolCacheDir = actualToolCacheDir.replace(substitutedToolCacheRoot, defaultToolCacheRoot); + fs_1.default.mkdirSync(path.dirname(defaultToolCacheDir), { recursive: true }); + fs_1.default.symlinkSync(actualToolCacheDir, defaultToolCacheDir, 'junction'); + core.info(`Created link ${defaultToolCacheDir} => ${actualToolCacheDir}`); + // restore toolcache root to default drive c: + process.env['RUNNER_TOOL_CACHE'] = defaultToolCacheRoot; + // make outer code to continue using toolcache as if it were installed on c: + return defaultToolCacheDir; }); } function extractGoArchive(archivePath) { diff --git a/src/installer.ts b/src/installer.ts index 629d696..6557d86 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -203,42 +203,42 @@ async function installGoVersion( // for github hosted windows runner handle latency of OS drive // by avoiding write operations to C: + + if (!isWindows) return addExecutablesToCache(extPath, info, arch); + const isHosted = process.env['RUNNER_ENVIRONMENT'] === 'github-hosted' || process.env['AGENT_ISSELFHOSTED'] === '0'; + if (!isHosted) return addExecutablesToCache(extPath, info, arch); + const defaultToolCacheRoot = process.env['RUNNER_TOOL_CACHE']; - if ( - isWindows && - defaultToolCacheRoot && - isHosted && - fs.existsSync('d:\\') && - fs.existsSync('c:\\') - ) { - const substitutedToolCacheRoot = defaultToolCacheRoot - .replace('C:', 'D:') - .replace('c:', 'd:'); - // make toolcache root to be on drive d: - process.env['RUNNER_TOOL_CACHE'] = substitutedToolCacheRoot; + if (!defaultToolCacheRoot) return addExecutablesToCache(extPath, info, arch); - const actualToolCacheDir = await addExecutablesToCache(extPath, info, arch); + if (!fs.existsSync('d:\\') || !fs.existsSync('c:\\')) + return addExecutablesToCache(extPath, info, arch); - // create a link from c: to d: - const defaultToolCacheDir = actualToolCacheDir.replace( - substitutedToolCacheRoot, - defaultToolCacheRoot - ); - fs.mkdirSync(path.dirname(defaultToolCacheDir), {recursive: true}); - fs.symlinkSync(actualToolCacheDir, defaultToolCacheDir, 'junction'); - core.info(`Created link ${defaultToolCacheDir} => ${actualToolCacheDir}`); + const substitutedToolCacheRoot = defaultToolCacheRoot + .replace('C:', 'D:') + .replace('c:', 'd:'); + // make toolcache root to be on drive d: + process.env['RUNNER_TOOL_CACHE'] = substitutedToolCacheRoot; - // restore toolcache root to default drive c: - process.env['RUNNER_TOOL_CACHE'] = defaultToolCacheRoot; + const actualToolCacheDir = await addExecutablesToCache(extPath, info, arch); - // make outer code to continue using toolcache as if it were installed on c: - return defaultToolCacheDir; - } + // create a link from c: to d: + const defaultToolCacheDir = actualToolCacheDir.replace( + substitutedToolCacheRoot, + defaultToolCacheRoot + ); + fs.mkdirSync(path.dirname(defaultToolCacheDir), {recursive: true}); + fs.symlinkSync(actualToolCacheDir, defaultToolCacheDir, 'junction'); + core.info(`Created link ${defaultToolCacheDir} => ${actualToolCacheDir}`); - return await addExecutablesToCache(extPath, info, arch); + // restore toolcache root to default drive c: + process.env['RUNNER_TOOL_CACHE'] = defaultToolCacheRoot; + + // make outer code to continue using toolcache as if it were installed on c: + return defaultToolCacheDir; } export async function extractGoArchive(archivePath: string): Promise {