mirror of
				https://code.forgejo.org/actions/cache.git
				synced 2025-10-31 12:42:28 +00:00 
			
		
		
		
	Merge 3b3fb41561 into 638ed79f9d
				
					
				
			This commit is contained in:
		
						commit
						584374f0b1
					
				
					 1 changed files with 23 additions and 0 deletions
				
			
		|  | @ -287,3 +287,26 @@ steps: | ||||||
|   - name: Publish package to public |   - name: Publish package to public | ||||||
|     run: ./publish.sh |     run: ./publish.sh | ||||||
| ``` | ``` | ||||||
|  | 
 | ||||||
|  | ### Saving cache only if the build runs on the default branch | ||||||
|  | 
 | ||||||
|  | Workflow runs can restore caches created in either the current branch or the default branch (usually `main`) [Reference](https://docs.github.com/en/actions/reference/workflows-and-actions/dependency-caching#restrictions-for-accessing-a-cache). | ||||||
|  | 
 | ||||||
|  | By restricting caches to the default branch, we can reduce the risk that Github evicts a cache created on the default branch. If that happens, every PR will create its own cache, increasing the cache churn. | ||||||
|  | 
 | ||||||
|  | We can condition the execution of the `actions/cache/save` action on the current branch: | ||||||
|  | 
 | ||||||
|  | ```yaml | ||||||
|  | steps: | ||||||
|  |   - uses: actions/checkout@v3 | ||||||
|  |   . | ||||||
|  |   . // restore if need be | ||||||
|  |   . | ||||||
|  |   - name: Build | ||||||
|  |     run: /build.sh | ||||||
|  |   - uses: actions/cache/save@v3 | ||||||
|  |     if: ${{ github.ref == 'refs/heads/main' }} // check we are on the default branch | ||||||
|  |     with: | ||||||
|  |       path: path/to/dependencies | ||||||
|  |       key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} | ||||||
|  | ``` | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue