|
|
|
@ -88395,18 +88395,28 @@ function cacheWindowsDir(extPath, tool, version, arch) {
|
|
|
|
|
const actualCacheDirectoryPaths = cacheDirectoryPaths.map(path => {
|
|
|
|
|
return {
|
|
|
|
|
defaultPath: path,
|
|
|
|
|
actualPath: path.replace('D:', 'C:').replace('d:', 'c:')
|
|
|
|
|
actualPath: path.replace('C:', 'D:').replace('c:', 'd:')
|
|
|
|
|
};
|
|
|
|
|
});
|
|
|
|
|
// iterate through actual cache directory paths and make links
|
|
|
|
|
// iterate through actual cache directory paths and make links if necessary
|
|
|
|
|
for (const cachePath of actualCacheDirectoryPaths) {
|
|
|
|
|
if (!fs_1.default.existsSync(cachePath.actualPath)) {
|
|
|
|
|
core.info(`Creating directory ${cachePath.actualPath}`);
|
|
|
|
|
fs_1.default.mkdirSync(path.dirname(cachePath.actualPath), { recursive: true });
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
core.info(`Directory ${cachePath.actualPath} already exists`);
|
|
|
|
|
// make sure the link is pointing to the actual cache directory
|
|
|
|
|
const symlinkTarget = fs_1.default.readlinkSync(cachePath.defaultPath);
|
|
|
|
|
if (symlinkTarget !== "") {
|
|
|
|
|
core.info(`Found link ${cachePath.defaultPath} => ${symlinkTarget}`);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
fs_1.default.symlinkSync(cachePath.actualPath, cachePath.defaultPath, 'junction');
|
|
|
|
|
core.info(`Created link ${cachePath.defaultPath} => ${cachePath.actualPath}`);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// make outer code to continue using toolcache as if it were installed on c:
|
|
|
|
|
// restore toolcache root to default drive c:
|
|
|
|
|
process.env['RUNNER_TOOL_CACHE'] = defaultToolCacheRoot;
|
|
|
|
|