mirror of
				https://github.com/Swatinem/rust-cache
				synced 2025-10-31 12:52:28 +00:00 
			
		
		
		
	key target by job id automatically
This commit is contained in:
		
							parent
							
								
									bd4d2a7017
								
							
						
					
					
						commit
						2bcc375de8
					
				
					 4 changed files with 20 additions and 15 deletions
				
			
		
							
								
								
									
										17
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										17
									
								
								README.md
									
										
									
									
									
								
							|  | @ -2,17 +2,10 @@ | |||
| 
 | ||||
| A GitHub Action that implements smart caching for rust/cargo projects | ||||
| 
 | ||||
| ## Inputs | ||||
| 
 | ||||
| - `key` - An optional key for the `target` cache. This is useful in case you | ||||
|   have different jobs for test / check / clippy, etc | ||||
| 
 | ||||
| ## Example usage | ||||
| 
 | ||||
| ```yaml | ||||
| - uses: Swatinem/rust-cache@v1 | ||||
|   with: | ||||
|     key: test | ||||
| ``` | ||||
| 
 | ||||
| ## Specifics | ||||
|  | @ -26,9 +19,9 @@ target | |||
| ``` | ||||
| 
 | ||||
| It disables incremental compilation and only caches dependencies. The | ||||
| assumption is that we will likely recompile the own crate(s) anyway. | ||||
| assumption is that we will likely recompile our own crate(s) anyway. | ||||
| 
 | ||||
| It also separates the cache into 4 groups, each treated differently: | ||||
| It also separates the cache into 3 groups, each treated differently: | ||||
| 
 | ||||
| - Registry Index: `~/.cargo/registry/index/<registry>`: | ||||
| 
 | ||||
|  | @ -42,6 +35,6 @@ It also separates the cache into 4 groups, each treated differently: | |||
| 
 | ||||
| - target: `./target` | ||||
| 
 | ||||
|   Automatically keyed by the lockfile/toml hash, and is being pruned to only | ||||
|   persist the dependencies that are being used. This is especially throwing | ||||
|   away any intermediate artifacts. | ||||
|   Automatically keyed by the lockfile, toml hash and job, and is being pruned | ||||
|   to only persist the dependencies that are being used. This is especially | ||||
|   throwing away any intermediate artifacts. | ||||
|  |  | |||
							
								
								
									
										6
									
								
								dist/restore/index.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								dist/restore/index.js
									
										
									
									
										vendored
									
									
								
							|  | @ -54616,7 +54616,7 @@ const home = external_os_default().homedir(); | |||
| const paths = { | ||||
|     index: external_path_default().join(home, ".cargo/registry/index"), | ||||
|     cache: external_path_default().join(home, ".cargo/registry/cache"), | ||||
|     git: external_path_default().join(home, ".cargo/git/db"), | ||||
|     // git: path.join(home, ".cargo/git/db"),
 | ||||
|     target: "target", | ||||
| }; | ||||
| const RefKey = "GITHUB_REF"; | ||||
|  | @ -54634,6 +54634,10 @@ async function getCaches() { | |||
|     if (targetKey) { | ||||
|         targetKey = `${targetKey}-`; | ||||
|     } | ||||
|     const job = process.env.GITHUB_JOB; | ||||
|     if (job) { | ||||
|         targetKey = `${job}-${targetKey}`; | ||||
|     } | ||||
|     const registryIndex = `v0-registry-index`; | ||||
|     const registryCache = `v0-registry-cache`; | ||||
|     const target = `v0-target-${targetKey}${rustKey}`; | ||||
|  |  | |||
							
								
								
									
										6
									
								
								dist/save/index.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								dist/save/index.js
									
										
									
									
										vendored
									
									
								
							|  | @ -54619,7 +54619,7 @@ const home = external_os_default().homedir(); | |||
| const paths = { | ||||
|     index: external_path_default().join(home, ".cargo/registry/index"), | ||||
|     cache: external_path_default().join(home, ".cargo/registry/cache"), | ||||
|     git: external_path_default().join(home, ".cargo/git/db"), | ||||
|     // git: path.join(home, ".cargo/git/db"),
 | ||||
|     target: "target", | ||||
| }; | ||||
| const RefKey = "GITHUB_REF"; | ||||
|  | @ -54637,6 +54637,10 @@ async function getCaches() { | |||
|     if (targetKey) { | ||||
|         targetKey = `${targetKey}-`; | ||||
|     } | ||||
|     const job = process.env.GITHUB_JOB; | ||||
|     if (job) { | ||||
|         targetKey = `${job}-${targetKey}`; | ||||
|     } | ||||
|     const registryIndex = `v0-registry-index`; | ||||
|     const registryCache = `v0-registry-cache`; | ||||
|     const target = `v0-target-${targetKey}${rustKey}`; | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ const home = os.homedir(); | |||
| export const paths = { | ||||
|   index: path.join(home, ".cargo/registry/index"), | ||||
|   cache: path.join(home, ".cargo/registry/cache"), | ||||
|   git: path.join(home, ".cargo/git/db"), | ||||
|   // git: path.join(home, ".cargo/git/db"),
 | ||||
|   target: "target", | ||||
| }; | ||||
| 
 | ||||
|  | @ -45,6 +45,10 @@ export async function getCaches(): Promise<Caches> { | |||
|   if (targetKey) { | ||||
|     targetKey = `${targetKey}-`; | ||||
|   } | ||||
|   const job = process.env.GITHUB_JOB; | ||||
|   if (job) { | ||||
|     targetKey = `${job}-${targetKey}`; | ||||
|   } | ||||
| 
 | ||||
|   const registryIndex = `v0-registry-index`; | ||||
|   const registryCache = `v0-registry-cache`; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue