mirror of
				https://github.com/actions/cache.git
				synced 2025-10-31 15:26:24 +07:00 
			
		
		
		
	Compare commits
	
		
			15 Commits
		
	
	
		
			v3.0.8
			...
			vsvipul-pa
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 27c0af5532 | |||
| 6c9470d12d | |||
| a59a2347a7 | |||
| d785f8b8a2 | |||
| 81423d07fe | |||
| c1dbd4593f | |||
| 5f975d03e6 | |||
| 8a9a57869f | |||
| fb1d96e3ff | |||
| 2048ecfa86 | |||
| 8954b07458 | |||
| 0ae6818675 | |||
| f316f94f31 | |||
| 204fa1ab69 | |||
| 23d218be27 | 
							
								
								
									
										2
									
								
								.github/auto_assign.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/auto_assign.yml
									
									
									
									
										vendored
									
									
								
							| @ -6,6 +6,8 @@ addAssignees: false | |||||||
|  |  | ||||||
| # A list of reviewers to be added to pull requests (GitHub user name) | # A list of reviewers to be added to pull requests (GitHub user name) | ||||||
| reviewers: | reviewers: | ||||||
|  |   - pallavx | ||||||
|  |   - pdotl | ||||||
|   - phantsure |   - phantsure | ||||||
|   - kotewar |   - kotewar | ||||||
|   - aparna-ravindra |   - aparna-ravindra | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								.github/workflows/auto-assign-issues.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/auto-assign-issues.yml
									
									
									
									
										vendored
									
									
								
							| @ -11,5 +11,5 @@ jobs: | |||||||
|             - name: 'Auto-assign issue' |             - name: 'Auto-assign issue' | ||||||
|               uses: pozil/auto-assign-issue@v1.4.0 |               uses: pozil/auto-assign-issue@v1.4.0 | ||||||
|               with: |               with: | ||||||
|                   assignees: phantsure,kotewar,tiwarishub,aparna-ravindra,vsvipul,bishal-pdmsft |                   assignees: pallavx,pdotl,phantsure,kotewar,tiwarishub,aparna-ravindra,vsvipul,bishal-pdmsft | ||||||
|                   numOfAssignee: 1 |                   numOfAssignee: 1 | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							| @ -5,14 +5,10 @@ on: | |||||||
|     branches: |     branches: | ||||||
|       - main |       - main | ||||||
|       - releases/** |       - releases/** | ||||||
|     paths-ignore: |  | ||||||
|       - '**.md' |  | ||||||
|   push: |   push: | ||||||
|     branches: |     branches: | ||||||
|       - main |       - main | ||||||
|       - releases/** |       - releases/** | ||||||
|     paths-ignore: |  | ||||||
|       - '**.md' |  | ||||||
|  |  | ||||||
| jobs: | jobs: | ||||||
|   # Build and unit test |   # Build and unit test | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								.licenses/npm/@actions/core.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/@actions/core.dep.yml
									
									
									
										generated
									
									
									
								
							| @ -1,6 +1,6 @@ | |||||||
| --- | --- | ||||||
| name: "@actions/core" | name: "@actions/core" | ||||||
| version: 1.7.0 | version: 1.9.1 | ||||||
| type: npm | type: npm | ||||||
| summary: Actions core lib | summary: Actions core lib | ||||||
| homepage: https://github.com/actions/toolkit/tree/main/packages/core | homepage: https://github.com/actions/toolkit/tree/main/packages/core | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								.licenses/npm/@actions/http-client.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								.licenses/npm/@actions/http-client.dep.yml
									
									
									
										generated
									
									
									
								
							| @ -1,9 +1,9 @@ | |||||||
| --- | --- | ||||||
| name: "@actions/http-client" | name: "@actions/http-client" | ||||||
| version: 1.0.11 | version: 2.0.1 | ||||||
| type: npm | type: npm | ||||||
| summary: Actions Http Client | summary: Actions Http Client | ||||||
| homepage: https://github.com/actions/http-client#readme | homepage: https://github.com/actions/toolkit/tree/main/packages/http-client | ||||||
| license: mit | license: mit | ||||||
| licenses: | licenses: | ||||||
| - sources: LICENSE | - sources: LICENSE | ||||||
|  | |||||||
							
								
								
									
										19
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								README.md
									
									
									
									
									
								
							| @ -229,6 +229,25 @@ A cache gets downloaded in multiple segments of fixed sizes (`1GB` for a `32-bit | |||||||
|  |  | ||||||
| Default value of this timeout is 60 minutes and can be customized by specifying an [environment variable](https://docs.github.com/en/actions/learn-github-actions/environment-variables) named `SEGMENT_DOWNLOAD_TIMEOUT_MINS` with timeout value in minutes. | Default value of this timeout is 60 minutes and can be customized by specifying an [environment variable](https://docs.github.com/en/actions/learn-github-actions/environment-variables) named `SEGMENT_DOWNLOAD_TIMEOUT_MINS` with timeout value in minutes. | ||||||
|  |  | ||||||
|  | ## Known practices and workarounds | ||||||
|  | Following are some of the known practices/workarounds which community has used to fulfill specific requirements. You may choose to use them if suits your use case. Note these are not necessarily the only or the recommended solution. | ||||||
|  |  | ||||||
|  | #### Update a cache | ||||||
|  | A cache today is immutable and cannot be updated. But some use cases require the cache to be saved even though there was a "hit" during restore. To do so, use a `key` which is unique for every run and use `restore-keys` to restore the nearest cache. For example: | ||||||
|  |   ``` | ||||||
|  |       - name: update cache on every commit | ||||||
|  |         uses: actions/cache@v3 | ||||||
|  |         with: | ||||||
|  |           path: prime-numbers | ||||||
|  |           key: primes-${{ runner.os }}-${{ github.run_id }} # Can use time based key as well | ||||||
|  |           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). | ||||||
|  |    | ||||||
|  | #### 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. | ||||||
|  |  | ||||||
| ## Contributing | ## Contributing | ||||||
| We would love for you to contribute to `actions/cache`, pull requests are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) for more information. | We would love for you to contribute to `actions/cache`, pull requests are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) for more information. | ||||||
|  |  | ||||||
|  | |||||||
| @ -215,6 +215,39 @@ test("getInputAsArray handles empty lines correctly", () => { | |||||||
|     expect(actionUtils.getInputAsArray("foo")).toEqual(["bar", "baz"]); |     expect(actionUtils.getInputAsArray("foo")).toEqual(["bar", "baz"]); | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | test("getInputAsArray sorts files correctly", () => { | ||||||
|  |     testUtils.setInput( | ||||||
|  |         "foo", | ||||||
|  |         "bar\n!baz\nwaldo\nqux\nquux\ncorge\ngrault\ngarply" | ||||||
|  |     ); | ||||||
|  |     expect(actionUtils.getInputAsArray("foo")).toEqual([ | ||||||
|  |         "!baz", | ||||||
|  |         "bar", | ||||||
|  |         "corge", | ||||||
|  |         "garply", | ||||||
|  |         "grault", | ||||||
|  |         "quux", | ||||||
|  |         "qux", | ||||||
|  |         "waldo" | ||||||
|  |     ]); | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | test("getInputAsArray removes spaces after ! at the beginning", () => { | ||||||
|  |     testUtils.setInput( | ||||||
|  |         "foo", | ||||||
|  |         "!   bar\n!  baz\n! qux\n!quux\ncorge\ngrault! garply\n!\r\t waldo" | ||||||
|  |     ); | ||||||
|  |     expect(actionUtils.getInputAsArray("foo")).toEqual([ | ||||||
|  |         "!bar", | ||||||
|  |         "!baz", | ||||||
|  |         "!quux", | ||||||
|  |         "!qux", | ||||||
|  |         "!waldo", | ||||||
|  |         "corge", | ||||||
|  |         "grault! garply" | ||||||
|  |     ]); | ||||||
|  | }); | ||||||
|  |  | ||||||
| test("getInputAsInt returns undefined if input not set", () => { | test("getInputAsInt returns undefined if input not set", () => { | ||||||
|     expect(actionUtils.getInputAsInt("undefined")).toBeUndefined(); |     expect(actionUtils.getInputAsInt("undefined")).toBeUndefined(); | ||||||
| }); | }); | ||||||
|  | |||||||
| @ -147,7 +147,7 @@ test("restore with no key", async () => { | |||||||
| test("restore with too many keys should fail", async () => { | test("restore with too many keys should fail", async () => { | ||||||
|     const path = "node_modules"; |     const path = "node_modules"; | ||||||
|     const key = "node-test"; |     const key = "node-test"; | ||||||
|     const restoreKeys = [...Array(20).keys()].map(x => x.toString()); |     const restoreKeys = [...Array(20).keys()].map(x => x.toString()).sort(); | ||||||
|     testUtils.setInputs({ |     testUtils.setInputs({ | ||||||
|         path: path, |         path: path, | ||||||
|         key, |         key, | ||||||
|  | |||||||
							
								
								
									
										3760
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3760
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3760
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3760
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										67
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										67
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -10,7 +10,7 @@ | |||||||
|       "license": "MIT", |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/cache": "^3.0.4", |         "@actions/cache": "^3.0.4", | ||||||
|         "@actions/core": "^1.7.0", |         "@actions/core": "^1.9.1", | ||||||
|         "@actions/exec": "^1.1.1", |         "@actions/exec": "^1.1.1", | ||||||
|         "@actions/io": "^1.1.2" |         "@actions/io": "^1.1.2" | ||||||
|       }, |       }, | ||||||
| @ -51,20 +51,21 @@ | |||||||
|         "uuid": "^3.3.3" |         "uuid": "^3.3.3" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/cache/node_modules/@actions/http-client": { |     "node_modules/@actions/core": { | ||||||
|       "version": "2.0.1", |       "version": "1.9.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", |       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz", | ||||||
|       "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", |       "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "tunnel": "^0.0.6" |         "@actions/http-client": "^2.0.1", | ||||||
|  |         "uuid": "^8.3.2" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/core": { |     "node_modules/@actions/core/node_modules/uuid": { | ||||||
|       "version": "1.7.0", |       "version": "8.3.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.7.0.tgz", |       "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", | ||||||
|       "integrity": "sha512-7fPSS7yKOhTpgLMbw7lBLc1QJWvJBBAgyTX2PEhagWcKK8t0H8AKCoPMfnrHqIm5cRYH4QFPqD1/ruhuUE7YcQ==", |       "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", | ||||||
|       "dependencies": { |       "bin": { | ||||||
|         "@actions/http-client": "^1.0.11" |         "uuid": "dist/bin/uuid" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/exec": { |     "node_modules/@actions/exec": { | ||||||
| @ -85,11 +86,11 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/http-client": { |     "node_modules/@actions/http-client": { | ||||||
|       "version": "1.0.11", |       "version": "2.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", |       "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", | ||||||
|       "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", |       "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "tunnel": "0.0.6" |         "tunnel": "^0.0.6" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/io": { |     "node_modules/@actions/io": { | ||||||
| @ -9546,24 +9547,22 @@ | |||||||
|         "@azure/storage-blob": "^12.8.0", |         "@azure/storage-blob": "^12.8.0", | ||||||
|         "semver": "^6.1.0", |         "semver": "^6.1.0", | ||||||
|         "uuid": "^3.3.3" |         "uuid": "^3.3.3" | ||||||
|       }, |  | ||||||
|       "dependencies": { |  | ||||||
|         "@actions/http-client": { |  | ||||||
|           "version": "2.0.1", |  | ||||||
|           "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", |  | ||||||
|           "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", |  | ||||||
|           "requires": { |  | ||||||
|             "tunnel": "^0.0.6" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@actions/core": { |     "@actions/core": { | ||||||
|       "version": "1.7.0", |       "version": "1.9.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.7.0.tgz", |       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz", | ||||||
|       "integrity": "sha512-7fPSS7yKOhTpgLMbw7lBLc1QJWvJBBAgyTX2PEhagWcKK8t0H8AKCoPMfnrHqIm5cRYH4QFPqD1/ruhuUE7YcQ==", |       "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@actions/http-client": "^1.0.11" |         "@actions/http-client": "^2.0.1", | ||||||
|  |         "uuid": "^8.3.2" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "uuid": { | ||||||
|  |           "version": "8.3.2", | ||||||
|  |           "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", | ||||||
|  |           "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" | ||||||
|  |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@actions/exec": { |     "@actions/exec": { | ||||||
| @ -9584,11 +9583,11 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@actions/http-client": { |     "@actions/http-client": { | ||||||
|       "version": "1.0.11", |       "version": "2.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", |       "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", | ||||||
|       "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", |       "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "tunnel": "0.0.6" |         "tunnel": "^0.0.6" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@actions/io": { |     "@actions/io": { | ||||||
|  | |||||||
| @ -24,7 +24,7 @@ | |||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@actions/cache": "^3.0.4", |     "@actions/cache": "^3.0.4", | ||||||
|     "@actions/core": "^1.7.0", |     "@actions/core": "^1.9.1", | ||||||
|     "@actions/exec": "^1.1.1", |     "@actions/exec": "^1.1.1", | ||||||
|     "@actions/io": "^1.1.2" |     "@actions/io": "^1.1.2" | ||||||
|   }, |   }, | ||||||
|  | |||||||
| @ -61,8 +61,9 @@ export function getInputAsArray( | |||||||
|     return core |     return core | ||||||
|         .getInput(name, options) |         .getInput(name, options) | ||||||
|         .split("\n") |         .split("\n") | ||||||
|         .map(s => s.trim()) |         .map(s => s.replace(/^!\s+/, "!").trim()) | ||||||
|         .filter(x => x !== ""); |         .filter(x => x !== "") | ||||||
|  |         .sort(); | ||||||
| } | } | ||||||
|  |  | ||||||
| export function getInputAsInt( | export function getInputAsInt( | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	