mirror of
				https://gitea.com/actions/cache.git
				synced 2025-10-29 07:47:12 +00:00 
			
		
		
		
	Compare commits
	
		
			22 Commits
		
	
	
		
			revert-998
			...
			v3.1.0-bet
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | a2137c625c | ||
|   | 5a2b5e5714 | ||
|   | 9e9a19bf5f | ||
|   | 84ea3e177d | ||
|   | ac25611cae | ||
|   | dc097e3bb9 | ||
|   | fb86cbf360 | ||
|   | a57932faba | ||
|   | 04b13caea4 | ||
|   | 941bc71a24 | ||
|   | 08d8639046 | ||
|   | a2f324eeb7 | ||
|   | 35f4702f6c | ||
|   | e050ebdd63 | ||
|   | 0d47d164e9 | ||
|   | e2d614414f | ||
|   | 532752012e | ||
|   | b26da1fc31 | ||
|   | ce61cc4d24 | ||
|   | 268ae08cbc | ||
|   | b4ac56fa43 | ||
|   | 7920f570b8 | 
							
								
								
									
										1
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
								
							| @@ -27,6 +27,7 @@ jobs: | ||||
|         uses: actions/setup-node@v3 | ||||
|         with: | ||||
|           node-version: 16.x | ||||
|           cache: npm | ||||
|       - name: Install dependencies | ||||
|         run: npm ci | ||||
|       - name: Rebuild the dist/ directory | ||||
|   | ||||
							
								
								
									
										12
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							| @@ -25,17 +25,7 @@ jobs: | ||||
|       uses: actions/setup-node@v3 | ||||
|       with: | ||||
|         node-version: 16.x | ||||
|     - name: Determine npm cache directory | ||||
|       id: npm-cache | ||||
|       run: | | ||||
|         echo "::set-output name=dir::$(npm config get cache)" | ||||
|     - name: Restore npm cache | ||||
|       uses: actions/cache@v3 | ||||
|       with: | ||||
|         path: ${{ steps.npm-cache.outputs.dir }} | ||||
|         key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | ||||
|         restore-keys: | | ||||
|           ${{ runner.os }}-node- | ||||
|         cache: npm | ||||
|     - run: npm ci | ||||
|     - name: Prettier Format Check | ||||
|       run: npm run format-check | ||||
|   | ||||
| @@ -40,3 +40,12 @@ | ||||
| ### 3.0.11 | ||||
| - Update toolkit version to 3.0.5 to include `@actions/core@^1.10.0` | ||||
| - Update `@actions/cache` to use updated `saveState` and `setOutput` functions from `@actions/core@^1.10.0` | ||||
|  | ||||
| ### 3.1.0-beta.1 | ||||
| - Update `@actions/cache` on windows to use gnu tar and zstd by default and fallback to bsdtar and zstd if gnu tar is not available. ([issue](https://github.com/actions/cache/issues/984)) | ||||
|  | ||||
| ### 3.1.0-beta.2 | ||||
| - Added support for fallback to gzip to restore old caches on windows. | ||||
|  | ||||
| ### 3.1.0-beta.3 | ||||
| - Bug fixes for bsdtar fallback if gnutar not available and gzip fallback if cache saved using old cache action on windows. | ||||
|   | ||||
							
								
								
									
										950
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										950
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										950
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										950
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										19
									
								
								examples.md
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								examples.md
									
									
									
									
									
								
							| @@ -309,14 +309,29 @@ We cache the elements of the Cabal store separately, as the entirety of `~/.caba | ||||
| For npm, cache files are stored in `~/.npm` on Posix, or `~\AppData\npm-cache` on Windows, but it's possible to use `npm config get cache` to find the path on any platform. See [the npm docs](https://docs.npmjs.com/cli/cache#cache) for more details. | ||||
|  | ||||
| If using `npm config` to retrieve the cache directory, ensure you run [actions/setup-node](https://github.com/actions/setup-node) first to ensure your `npm` version is correct. | ||||
| After [deprecation](https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/) of save-state and set-output commands, the correct way to set output is using `${GITHUB_OUTPUT}`. For linux, we can use `${GITHUB_OUTPUT}` whereas for windows we need to use `${env:GITHUB_OUTPUT}` due to two different default shells in these two different OS ie `bash` and `pwsh` respectively. | ||||
|  | ||||
| >Note: It is not recommended to cache `node_modules`, as it can break across Node versions and won't work with `npm ci` | ||||
|  | ||||
| ### **Get npm cache directory using same shell** | ||||
| ### Bash shell | ||||
| ```yaml | ||||
| - name: Get npm cache directory | ||||
|   id: npm-cache-dir | ||||
|   run: | | ||||
|     echo "::set-output name=dir::$(npm config get cache)" | ||||
|   shell: bash | ||||
|   run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} | ||||
| ``` | ||||
|  | ||||
| ### PWSH shell | ||||
| ```yaml | ||||
| - name: Get npm cache directory | ||||
|   id: npm-cache-dir | ||||
|   shell: pwsh | ||||
|   run: echo "dir=$(npm config get cache)" >> ${env:GITHUB_OUTPUT} | ||||
| ``` | ||||
| `Get npm cache directory` step can then be used with `actions/cache` as shown below | ||||
|  | ||||
| ```yaml | ||||
| - uses: actions/cache@v3 | ||||
|   id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true' | ||||
|   with: | ||||
|   | ||||
							
								
								
									
										6554
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6554
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										28
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "cache", | ||||
|   "version": "3.0.11", | ||||
|   "version": "3.1.0-beta.3", | ||||
|   "private": true, | ||||
|   "description": "Cache dependencies and build outputs", | ||||
|   "main": "dist/restore/index.js", | ||||
| @@ -23,29 +23,29 @@ | ||||
|   "author": "GitHub", | ||||
|   "license": "MIT", | ||||
|   "dependencies": { | ||||
|     "@actions/cache": "^3.0.5", | ||||
|     "@actions/cache": "3.1.0-beta.3", | ||||
|     "@actions/core": "^1.10.0", | ||||
|     "@actions/exec": "^1.1.1", | ||||
|     "@actions/io": "^1.1.2" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/jest": "^27.5.0", | ||||
|     "@types/jest": "^27.5.2", | ||||
|     "@types/nock": "^11.1.0", | ||||
|     "@types/node": "^16.11.33", | ||||
|     "@typescript-eslint/eslint-plugin": "^5.22.0", | ||||
|     "@typescript-eslint/parser": "^5.22.0", | ||||
|     "@types/node": "^16.18.3", | ||||
|     "@typescript-eslint/eslint-plugin": "^5.45.0", | ||||
|     "@typescript-eslint/parser": "^5.45.0", | ||||
|     "@zeit/ncc": "^0.20.5", | ||||
|     "eslint": "^8.14.0", | ||||
|     "eslint": "^8.28.0", | ||||
|     "eslint-config-prettier": "^8.5.0", | ||||
|     "eslint-plugin-import": "^2.26.0", | ||||
|     "eslint-plugin-jest": "^26.1.5", | ||||
|     "eslint-plugin-prettier": "^4.0.0", | ||||
|     "eslint-plugin-jest": "^26.9.0", | ||||
|     "eslint-plugin-prettier": "^4.2.1", | ||||
|     "eslint-plugin-simple-import-sort": "^7.0.0", | ||||
|     "jest": "^28.0.3", | ||||
|     "jest": "^28.1.3", | ||||
|     "jest-circus": "^27.5.1", | ||||
|     "nock": "^13.2.4", | ||||
|     "prettier": "^2.6.2", | ||||
|     "ts-jest": "^28.0.2", | ||||
|     "typescript": "^4.6.4" | ||||
|     "nock": "^13.2.9", | ||||
|     "prettier": "^2.8.0", | ||||
|     "ts-jest": "^28.0.8", | ||||
|     "typescript": "^4.9.3" | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -77,19 +77,20 @@ export function getInputAsInt( | ||||
| } | ||||
|  | ||||
| export function isCacheFeatureAvailable(): boolean { | ||||
|     if (!cache.isFeatureAvailable()) { | ||||
|         if (isGhes()) { | ||||
|             logWarning( | ||||
|                 `Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not. | ||||
|     if (cache.isFeatureAvailable()) { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     if (isGhes()) { | ||||
|         logWarning( | ||||
|             `Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not. | ||||
| Otherwise please upgrade to GHES version >= 3.5 and If you are also using Github Connect, please unretire the actions/cache namespace before upgrade (see https://docs.github.com/en/enterprise-server@3.5/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect#automatic-retirement-of-namespaces-for-actions-accessed-on-githubcom)` | ||||
|             ); | ||||
|         } else { | ||||
|             logWarning( | ||||
|                 "An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions." | ||||
|             ); | ||||
|         } | ||||
|         ); | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     return true; | ||||
|     logWarning( | ||||
|         "An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions." | ||||
|     ); | ||||
|     return false; | ||||
| } | ||||
|   | ||||
| @@ -14,7 +14,7 @@ A cache today is immutable and cannot be updated. But some use cases require the | ||||
|           restore-keys: | | ||||
|             primes-${{ runner.os }} | ||||
|   ```           | ||||
|   Please note that this will create a new cache on every run and hence will consume the cache [quota](#cache-limits). | ||||
|   Please note that this will create a new cache on every run and hence will consume the cache [quota](./README.md#cache-limits). | ||||
|    | ||||
| ## Use cache across feature branches | ||||
| Reusing cache across feature branches is not allowed today to provide cache [isolation](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache). However if both feature branches are from the default branch, a good way to achieve this is to ensure that the default branch has a cache. This cache will then be consumable by both feature branches. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user