mirror of https://github.com/actions/setup-go.git
				
				
				
			add check for existing symlink
Signed-off-by: Anton Troshin <anton@diagrid.io>
This commit is contained in:
		
							parent
							
								
									434fb17078
								
							
						
					
					
						commit
						0dc6404f6a
					
				|  | @ -223,7 +223,7 @@ async function cacheWindowsDir( | |||
|   } | ||||
| 
 | ||||
|   core.info(`Found Cache Directory Paths: ${cacheDirectoryPaths}`); | ||||
|    | ||||
| 
 | ||||
|   // replace cache directory path with actual cache directory path
 | ||||
|   const actualCacheDirectoryPaths = cacheDirectoryPaths.map(path => { | ||||
|     return { | ||||
|  | @ -232,17 +232,24 @@ async function cacheWindowsDir( | |||
|     }; | ||||
|   }); | ||||
| 
 | ||||
|   // 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.existsSync(cachePath.actualPath)) { | ||||
|       core.info(`Creating directory ${cachePath.actualPath}`); | ||||
|       fs.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
 | ||||
|       let symlinkTarget = fs.readlinkSync(cachePath.defaultPath); | ||||
|       if (symlinkTarget !== "") { | ||||
|         core.info(`Found link ${cachePath.defaultPath} => ${symlinkTarget}`); | ||||
|       } else { | ||||
|         fs.symlinkSync(cachePath.actualPath, cachePath.defaultPath, 'junction'); | ||||
|         core.info( | ||||
|           `Created link ${cachePath.defaultPath} => ${cachePath.actualPath}` | ||||
|         ); | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     fs.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:
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Anton Troshin
						Anton Troshin