mirror of
				https://kkgithub.com/actions/setup-node.git
				synced 2025-11-01 03:01:53 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # `@actions/tool-cache`
 | |
| 
 | |
| > Functions necessary for downloading and caching tools.
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| #### Download
 | |
| 
 | |
| You can use this to download tools (or other files) from a download URL:
 | |
| 
 | |
| ```
 | |
| const tc = require('@actions/tool-cache');
 | |
| 
 | |
| const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
 | |
| ```
 | |
| 
 | |
| #### Extract
 | |
| 
 | |
| These can then be extracted in platform specific ways:
 | |
| 
 | |
| ```
 | |
| const tc = require('@actions/tool-cache');
 | |
| 
 | |
| if (process.platform === 'win32') {
 | |
|   tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.zip');
 | |
|   const node12ExtractedFolder = await tc.extractZip(node12Path, 'path/to/extract/to');
 | |
|   
 | |
|   // Or alternately
 | |
|   tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.7z');
 | |
|   const node12ExtractedFolder = await tc.extract7z(node12Path, 'path/to/extract/to');
 | |
| }
 | |
| else {
 | |
|   const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
 | |
|   const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to');
 | |
| }
 | |
| ```
 | |
| 
 | |
| #### Cache
 | |
| 
 | |
| Finally, you can cache these directories in our tool-cache. This is useful if you want to switch back and forth between versions of a tool, or save a tool between runs for private runners (private runners are still in development but are on the roadmap).
 | |
| 
 | |
| You'll often want to add it to the path as part of this step:
 | |
| 
 | |
| ```
 | |
| const tc = require('@actions/tool-cache');
 | |
| const core = require('@actions/core');
 | |
| 
 | |
| const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
 | |
| const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to');
 | |
| 
 | |
| const cachedPath = await tc.cacheDir(node12ExtractedFolder, 'node', '12.7.0');
 | |
| core.addPath(cachedPath);
 | |
| ```
 | |
| 
 | |
| You can also cache files for reuse.
 | |
| 
 | |
| ```
 | |
| const tc = require('@actions/tool-cache');
 | |
| 
 | |
| tc.cacheFile('path/to/exe', 'destFileName.exe', 'myExeName', '1.1.0');
 | |
| ```
 | |
| 
 | |
| #### Find
 | |
| 
 | |
| Finally, you can find directories and files you've previously cached:
 | |
| 
 | |
| ```
 | |
| const tc = require('@actions/tool-cache');
 | |
| const core = require('@actions/core');
 | |
| 
 | |
| const nodeDirectory = tc.find('node', '12.x', 'x64');
 | |
| core.addPath(nodeDirectory);
 | |
| ```
 | |
| 
 | |
| You can even find all cached versions of a tool:
 | |
| 
 | |
| ```
 | |
| const tc = require('@actions/tool-cache');
 | |
| 
 | |
| const allNodeVersions = tc.findAllVersions('node');
 | |
| console.log(`Versions of node available: ${allNodeVersions}`);
 | |
| ```
 | 
