Compare commits
	
		
			48 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | d4323d4df1 | ||
|  | da26677639 | ||
|  | 7921ae235b | ||
|  | 3937731706 | ||
|  | 0c907a75c2 | ||
|  | 710893c236 | ||
|  | 9fa7e61ec7 | ||
|  | 36f1e144e1 | ||
|  | 53aa38c736 | ||
|  | 1bd1e32a3b | ||
|  | 882d7ced4c | ||
|  | f2695d7a42 | ||
|  | f46ceeb60d | ||
|  | e6f5858749 | ||
|  | 4ae6f21c0d | ||
|  | c16df86586 | ||
|  | b109c12f3b | ||
|  | b7d227d702 | ||
|  | faf639248d | ||
|  | 4bc41c01bd | ||
|  | 6849a64899 | ||
|  | 5a1720c49e | ||
|  | d9fef48d24 | ||
|  | a50e8d027b | ||
|  | acc9ae5c14 | ||
|  | 1ea5f18c31 | ||
|  | cc679ff3ba | ||
|  | 366d43d6f8 | ||
|  | 02bf31969b | ||
|  | 6f6220be5a | ||
|  | ebdd24ede1 | ||
|  | 255c8ff306 | ||
|  | 010f24cd9d | ||
|  | d6151ba7db | ||
|  | 4ca7071576 | ||
|  | 5d692d65f4 | ||
|  | 3aef79d3a3 | ||
|  | aa55e5f344 | ||
|  | 772385291f | ||
|  | e5dc90df92 | ||
|  | 8585f2ac5c | ||
|  | 9803087a86 | ||
|  | e7e2547a88 | ||
|  | 71d826cc33 | ||
|  | 25942a73ac | ||
|  | d73025053b | ||
|  | 8469c94c6a | ||
|  | 3624ceb22c | 
							
								
								
									
										22
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | |||||||
|  | # To get started with Dependabot version updates, you'll need to specify which | ||||||
|  | # package ecosystems to update and where the package manifests are located. | ||||||
|  | # Please see the documentation for all configuration options: | ||||||
|  | # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file | ||||||
|  | 
 | ||||||
|  | version: 2 | ||||||
|  | updates: | ||||||
|  |   - package-ecosystem: "github-actions" | ||||||
|  |     directory: "/" | ||||||
|  |     schedule: | ||||||
|  |       interval: "weekly" | ||||||
|  |     groups: | ||||||
|  |       minor-actions-dependencies: | ||||||
|  |         update-types: [minor, patch] | ||||||
|  |    | ||||||
|  |   - package-ecosystem: "npm" | ||||||
|  |     directory: "/" | ||||||
|  |     schedule: | ||||||
|  |       interval: "daily"  | ||||||
|  |     allow: | ||||||
|  |     - dependency-type: direct | ||||||
|  |     - dependency-type: production | ||||||
							
								
								
									
										2
									
								
								.github/workflows/close-inactive-issues.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/close-inactive-issues.yml
									
									
									
									
										vendored
									
									
								
							| @ -10,7 +10,7 @@ jobs: | |||||||
|       issues: write |       issues: write | ||||||
|       pull-requests: write |       pull-requests: write | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/stale@v3 |       - uses: actions/stale@v9 | ||||||
|         with: |         with: | ||||||
|           days-before-issue-stale: 200 |           days-before-issue-stale: 200 | ||||||
|           days-before-issue-close: 5 |           days-before-issue-close: 5 | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								.github/workflows/codeql.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/codeql.yml
									
									
									
									
										vendored
									
									
								
							| @ -17,11 +17,11 @@ jobs: | |||||||
| 
 | 
 | ||||||
|     steps: |     steps: | ||||||
|     - name: Checkout repository |     - name: Checkout repository | ||||||
|       uses: actions/checkout@v3 |       uses: actions/checkout@v4 | ||||||
| 
 | 
 | ||||||
|     # Initializes the CodeQL tools for scanning. |     # Initializes the CodeQL tools for scanning. | ||||||
|     - name: Initialize CodeQL |     - name: Initialize CodeQL | ||||||
|       uses: github/codeql-action/init@v2 |       uses: github/codeql-action/init@v3 | ||||||
|       # Override language selection by uncommenting this and choosing your languages |       # Override language selection by uncommenting this and choosing your languages | ||||||
|       # with: |       # with: | ||||||
|       #   languages: go, javascript, csharp, python, cpp, java, ruby |       #   languages: go, javascript, csharp, python, cpp, java, ruby | ||||||
| @ -29,7 +29,7 @@ jobs: | |||||||
|     # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). |     # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). | ||||||
|     # If this step fails, then you should remove it and run the build manually (see below). |     # If this step fails, then you should remove it and run the build manually (see below). | ||||||
|     - name: Autobuild |     - name: Autobuild | ||||||
|       uses: github/codeql-action/autobuild@v2 |       uses: github/codeql-action/autobuild@v3 | ||||||
| 
 | 
 | ||||||
|     # ℹ️ Command-line programs to run using the OS shell. |     # ℹ️ Command-line programs to run using the OS shell. | ||||||
|     # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun |     # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun | ||||||
| @ -43,4 +43,4 @@ jobs: | |||||||
|     #     make release |     #     make release | ||||||
| 
 | 
 | ||||||
|     - name: Perform CodeQL Analysis |     - name: Perform CodeQL Analysis | ||||||
|       uses: github/codeql-action/analyze@v2 |       uses: github/codeql-action/analyze@v3 | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ name: 'Publish Immutable Action Version' | |||||||
| 
 | 
 | ||||||
| on: | on: | ||||||
|   release: |   release: | ||||||
|     types: [published] |     types: [released] | ||||||
| 
 | 
 | ||||||
| jobs: | jobs: | ||||||
|   publish: |   publish: | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							| @ -20,9 +20,9 @@ jobs: | |||||||
|     runs-on: ${{ matrix.os }} |     runs-on: ${{ matrix.os }} | ||||||
|     steps: |     steps: | ||||||
|     - name: Checkout |     - name: Checkout | ||||||
|       uses: actions/checkout@v3 |       uses: actions/checkout@v4 | ||||||
|     - name: Setup Node.js 20.x |     - name: Setup Node.js 20.x | ||||||
|       uses: actions/setup-node@v3 |       uses: actions/setup-node@v4 | ||||||
|       with: |       with: | ||||||
|         node-version: 20.x |         node-version: 20.x | ||||||
|         cache: npm |         cache: npm | ||||||
| @ -43,7 +43,7 @@ jobs: | |||||||
|     runs-on: ${{ matrix.os }} |     runs-on: ${{ matrix.os }} | ||||||
|     steps: |     steps: | ||||||
|     - name: Checkout |     - name: Checkout | ||||||
|       uses: actions/checkout@v3 |       uses: actions/checkout@v4 | ||||||
|     - name: Generate files in working directory |     - name: Generate files in working directory | ||||||
|       shell: bash |       shell: bash | ||||||
|       run: __tests__/create-cache-files.sh ${{ runner.os }} test-cache |       run: __tests__/create-cache-files.sh ${{ runner.os }} test-cache | ||||||
| @ -66,7 +66,7 @@ jobs: | |||||||
|     runs-on: ${{ matrix.os }} |     runs-on: ${{ matrix.os }} | ||||||
|     steps: |     steps: | ||||||
|     - name: Checkout |     - name: Checkout | ||||||
|       uses: actions/checkout@v3 |       uses: actions/checkout@v4 | ||||||
|     - name: Restore cache |     - name: Restore cache | ||||||
|       uses: ./ |       uses: ./ | ||||||
|       with: |       with: | ||||||
| @ -96,7 +96,7 @@ jobs: | |||||||
|       https_proxy: http://squid-proxy:3128 |       https_proxy: http://squid-proxy:3128 | ||||||
|     steps: |     steps: | ||||||
|     - name: Checkout |     - name: Checkout | ||||||
|       uses: actions/checkout@v3 |       uses: actions/checkout@v4 | ||||||
|     - name: Generate files |     - name: Generate files | ||||||
|       run: __tests__/create-cache-files.sh proxy test-cache |       run: __tests__/create-cache-files.sh proxy test-cache | ||||||
|     - name: Save cache |     - name: Save cache | ||||||
| @ -119,7 +119,7 @@ jobs: | |||||||
|       https_proxy: http://squid-proxy:3128 |       https_proxy: http://squid-proxy:3128 | ||||||
|     steps: |     steps: | ||||||
|     - name: Checkout |     - name: Checkout | ||||||
|       uses: actions/checkout@v3 |       uses: actions/checkout@v4 | ||||||
|     - name: Restore cache |     - name: Restore cache | ||||||
|       uses: ./ |       uses: ./ | ||||||
|       with: |       with: | ||||||
|  | |||||||
| @ -13,4 +13,10 @@ allowed: | |||||||
| 
 | 
 | ||||||
| reviewed: | reviewed: | ||||||
|   npm: |   npm: | ||||||
|   - sax |   - sax | ||||||
|  |   - "@protobuf-ts/plugin-framework" # Apache-2.0 | ||||||
|  |   - "@protobuf-ts/runtime" # Apache-2.0 | ||||||
|  |   - fs.realpath # ISC | ||||||
|  |   - glob # ISC | ||||||
|  |   - prettier # MIT | ||||||
|  |   - lodash # MIT | ||||||
							
								
								
									
										
											BIN
										
									
								
								.licenses/NOTICE
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/NOTICE
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/cache.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/cache.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/core.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/core.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/io.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/io.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/plugin-framework.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/plugin-framework.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/plugin.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/plugin.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/protoc.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/protoc.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/runtime-rpc.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/runtime-rpc.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/runtime.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/runtime.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/camel-case.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/camel-case.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/commander.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/commander.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/dot-object.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/dot-object.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/fs.realpath.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/fs.realpath.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/glob.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/glob.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/inflight.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/inflight.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/inherits.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/inherits.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/lodash.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/lodash.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/lower-case.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/lower-case.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/no-case.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/no-case.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/once.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/once.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/pascal-case.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/pascal-case.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/path-to-regexp.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/path-to-regexp.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/prettier.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/prettier.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/ts-poet.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/ts-poet.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/tslib-2.8.1.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/tslib-2.8.1.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/twirp-ts.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/twirp-ts.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/typescript.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/typescript.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/wrappy.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/wrappy.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/yaml.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/yaml.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										26
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								README.md
									
									
									
									
									
								
							| @ -3,6 +3,7 @@ | |||||||
| This action allows caching dependencies and build outputs to improve workflow execution time. | This action allows caching dependencies and build outputs to improve workflow execution time. | ||||||
| 
 | 
 | ||||||
| >Two other actions are available in addition to the primary `cache` action: | >Two other actions are available in addition to the primary `cache` action: | ||||||
|  | > | ||||||
| >* [Restore action](./restore/README.md) | >* [Restore action](./restore/README.md) | ||||||
| >* [Save action](./save/README.md) | >* [Save action](./save/README.md) | ||||||
| 
 | 
 | ||||||
| @ -14,12 +15,30 @@ See ["Caching dependencies to speed up workflows"](https://docs.github.com/en/ac | |||||||
| 
 | 
 | ||||||
| ## What's New | ## What's New | ||||||
| 
 | 
 | ||||||
|  | ### ⚠️ Important changes | ||||||
|  | 
 | ||||||
|  | The cache backend service has been rewritten from the ground up for improved performance and reliability. [actions/cache](https://github.com/actions/cache) now integrates with the new cache service (v2) APIs. | ||||||
|  | 
 | ||||||
|  | The new service will gradually roll out as of **February 1st, 2025**. The legacy service will also be sunset on the same date. Changes in these release are **fully backward compatible**. | ||||||
|  | 
 | ||||||
|  | **We are deprecating some versions of this action**. We recommend upgrading to version `v4` or `v3` as soon as possible before **February 1st, 2025.** (Upgrade instructions below). | ||||||
|  | 
 | ||||||
|  | If you are using pinned SHAs, please use the SHAs of versions `v4.2.0` or `v3.4.0` | ||||||
|  | 
 | ||||||
|  | If you do not upgrade, all workflow runs using any of the deprecated [actions/cache](https://github.com/actions/cache) will fail. | ||||||
|  | 
 | ||||||
|  | Upgrading to the recommended versions will not break your workflows. | ||||||
|  | 
 | ||||||
|  | Read more about the change & access the migration guide: [reference to the announcement](https://github.com/actions/cache/discussions/1510). | ||||||
|  | 
 | ||||||
| ### v4 | ### v4 | ||||||
| 
 | 
 | ||||||
|  | * Integrated with the new cache service (v2) APIs. | ||||||
| * Updated to node 20 | * Updated to node 20 | ||||||
| 
 | 
 | ||||||
| ### v3 | ### v3 | ||||||
| 
 | 
 | ||||||
|  | * Integrated with the new cache service (v2) APIs. | ||||||
| * Added support for caching in GHES 3.5+. | * Added support for caching in GHES 3.5+. | ||||||
| * Fixed download issue for files > 2GB during restore. | * Fixed download issue for files > 2GB during restore. | ||||||
| * Updated the minimum runner version support from node 12 -> node 16. | * Updated the minimum runner version support from node 12 -> node 16. | ||||||
| @ -64,9 +83,9 @@ If you are using a `self-hosted` Windows runner, `GNU tar` and `zstd` are requir | |||||||
| 
 | 
 | ||||||
| ### Outputs | ### Outputs | ||||||
| 
 | 
 | ||||||
| * `cache-hit` - A boolean value to indicate an exact match was found for the key. | * `cache-hit` - A string value to indicate an exact match was found for the key. | ||||||
| 
 |   * If there's a cache hit, this will be 'true' or 'false' to indicate if there's an exact match for `key`. | ||||||
|     > **Note** `cache-hit` will only be set to `true` when a cache hit occurs for the exact `key` match. For a partial key match via `restore-keys` or a cache miss, it will be set to `false`. |   * If there's a cache miss, this will be an empty string. | ||||||
| 
 | 
 | ||||||
| See [Skipping steps based on cache-hit](#skipping-steps-based-on-cache-hit) for info on using this output | See [Skipping steps based on cache-hit](#skipping-steps-based-on-cache-hit) for info on using this output | ||||||
| 
 | 
 | ||||||
| @ -157,6 +176,7 @@ Every programming language and framework has its own way of caching. | |||||||
| 
 | 
 | ||||||
| See [Examples](examples.md) for a list of `actions/cache` implementations for use with: | See [Examples](examples.md) for a list of `actions/cache` implementations for use with: | ||||||
| 
 | 
 | ||||||
|  | * [Bun](./examples.md#bun) | ||||||
| * [C# - NuGet](./examples.md#c---nuget) | * [C# - NuGet](./examples.md#c---nuget) | ||||||
| * [Clojure - Lein Deps](./examples.md#clojure---lein-deps) | * [Clojure - Lein Deps](./examples.md#clojure---lein-deps) | ||||||
| * [D - DUB](./examples.md#d---dub) | * [D - DUB](./examples.md#d---dub) | ||||||
|  | |||||||
							
								
								
									
										36
									
								
								RELEASES.md
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								RELEASES.md
									
									
									
									
									
								
							| @ -1,6 +1,38 @@ | |||||||
| # Releases | # Releases | ||||||
| 
 | 
 | ||||||
|  | ### 4.2.2 | ||||||
|  | 
 | ||||||
|  | - Bump `@actions/cache` to v4.0.2 | ||||||
|  | 
 | ||||||
|  | ### 4.2.1 | ||||||
|  | 
 | ||||||
|  | - Bump `@actions/cache` to v4.0.1 | ||||||
|  | 
 | ||||||
|  | ### 4.2.0 | ||||||
|  | 
 | ||||||
|  | TLDR; The cache backend service has been rewritten from the ground up for improved performance and reliability. [actions/cache](https://github.com/actions/cache) now integrates with the new cache service (v2) APIs. | ||||||
|  | 
 | ||||||
|  | The new service will gradually roll out as of **February 1st, 2025**. The legacy service will also be sunset on the same date. Changes in these release are **fully backward compatible**. | ||||||
|  | 
 | ||||||
|  | **We are deprecating some versions of this action**. We recommend upgrading to version `v4` or `v3` as soon as possible before **February 1st, 2025.** (Upgrade instructions below). | ||||||
|  | 
 | ||||||
|  | If you are using pinned SHAs, please use the SHAs of versions `v4.2.0` or `v3.4.0` | ||||||
|  | 
 | ||||||
|  | If you do not upgrade, all workflow runs using any of the deprecated [actions/cache](https://github.com/actions/cache) will fail. | ||||||
|  | 
 | ||||||
|  | Upgrading to the recommended versions will not break your workflows. | ||||||
|  | 
 | ||||||
|  | ### 4.1.2 | ||||||
|  | 
 | ||||||
|  | - Add GitHub Enterprise Cloud instances hostname filters to inform API endpoint choices - [#1474](https://github.com/actions/cache/pull/1474) | ||||||
|  | - Security fix: Bump braces from 3.0.2 to 3.0.3 - [#1475](https://github.com/actions/cache/pull/1475) | ||||||
|  | 
 | ||||||
|  | ### 4.1.1 | ||||||
|  | 
 | ||||||
|  | - Restore original behavior of `cache-hit` output - [#1467](https://github.com/actions/cache/pull/1467) | ||||||
|  | 
 | ||||||
| ### 4.1.0 | ### 4.1.0 | ||||||
|  | 
 | ||||||
| - Ensure `cache-hit` output is set when a cache is missed - [#1404](https://github.com/actions/cache/pull/1404) | - Ensure `cache-hit` output is set when a cache is missed - [#1404](https://github.com/actions/cache/pull/1404) | ||||||
| - Deprecate `save-always` input - [#1452](https://github.com/actions/cache/pull/1452) | - Deprecate `save-always` input - [#1452](https://github.com/actions/cache/pull/1452) | ||||||
| 
 | 
 | ||||||
| @ -16,6 +48,10 @@ | |||||||
| 
 | 
 | ||||||
| - Updated minimum runner version support from node 12 -> node 20 | - Updated minimum runner version support from node 12 -> node 20 | ||||||
| 
 | 
 | ||||||
|  | ### 3.4.0 | ||||||
|  | 
 | ||||||
|  | - Integrated with the new cache service (v2) APIs | ||||||
|  | 
 | ||||||
| ### 3.3.3 | ### 3.3.3 | ||||||
| 
 | 
 | ||||||
| - Updates @actions/cache to v3.2.3 to fix accidental mutated path arguments to `getCacheVersion` [actions/toolkit#1378](https://github.com/actions/toolkit/pull/1378) | - Updates @actions/cache to v3.2.3 to fix accidental mutated path arguments to `getCacheVersion` [actions/toolkit#1378](https://github.com/actions/toolkit/pull/1378) | ||||||
|  | |||||||
| @ -8,17 +8,26 @@ import * as testUtils from "../src/utils/testUtils"; | |||||||
| jest.mock("@actions/core"); | jest.mock("@actions/core"); | ||||||
| jest.mock("@actions/cache"); | jest.mock("@actions/cache"); | ||||||
| 
 | 
 | ||||||
|  | let pristineEnv: NodeJS.ProcessEnv; | ||||||
|  | 
 | ||||||
| beforeAll(() => { | beforeAll(() => { | ||||||
|  |     pristineEnv = process.env; | ||||||
|     jest.spyOn(core, "getInput").mockImplementation((name, options) => { |     jest.spyOn(core, "getInput").mockImplementation((name, options) => { | ||||||
|         return jest.requireActual("@actions/core").getInput(name, options); |         return jest.requireActual("@actions/core").getInput(name, options); | ||||||
|     }); |     }); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| afterEach(() => { | beforeEach(() => { | ||||||
|  |     jest.resetModules(); | ||||||
|  |     process.env = pristineEnv; | ||||||
|     delete process.env[Events.Key]; |     delete process.env[Events.Key]; | ||||||
|     delete process.env[RefKey]; |     delete process.env[RefKey]; | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
|  | afterAll(() => { | ||||||
|  |     process.env = pristineEnv; | ||||||
|  | }); | ||||||
|  | 
 | ||||||
| test("isGhes returns true if server url is not github.com", () => { | test("isGhes returns true if server url is not github.com", () => { | ||||||
|     try { |     try { | ||||||
|         process.env["GITHUB_SERVER_URL"] = "http://example.com"; |         process.env["GITHUB_SERVER_URL"] = "http://example.com"; | ||||||
| @ -231,3 +240,28 @@ test("isCacheFeatureAvailable for ac disabled on dotcom", () => { | |||||||
|         delete process.env["GITHUB_SERVER_URL"]; |         delete process.env["GITHUB_SERVER_URL"]; | ||||||
|     } |     } | ||||||
| }); | }); | ||||||
|  | 
 | ||||||
|  | test("isGhes returns false when the GITHUB_SERVER_URL environment variable is not defined", async () => { | ||||||
|  |     delete process.env["GITHUB_SERVER_URL"]; | ||||||
|  |     expect(actionUtils.isGhes()).toBeFalsy(); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | test("isGhes returns false when the GITHUB_SERVER_URL environment variable is set to github.com", async () => { | ||||||
|  |     process.env["GITHUB_SERVER_URL"] = "https://github.com"; | ||||||
|  |     expect(actionUtils.isGhes()).toBeFalsy(); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | test("isGhes returns false when the GITHUB_SERVER_URL environment variable is set to a GitHub Enterprise Cloud-style URL", async () => { | ||||||
|  |     process.env["GITHUB_SERVER_URL"] = "https://contoso.ghe.com"; | ||||||
|  |     expect(actionUtils.isGhes()).toBeFalsy(); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | test("isGhes returns false when the GITHUB_SERVER_URL environment variable has a .localhost suffix", async () => { | ||||||
|  |     process.env["GITHUB_SERVER_URL"] = "https://mock-github.localhost"; | ||||||
|  |     expect(actionUtils.isGhes()).toBeFalsy(); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | test("isGhes returns true when the GITHUB_SERVER_URL environment variable is set to some other URL", async () => { | ||||||
|  |     process.env["GITHUB_SERVER_URL"] = "https://src.onpremise.fabrikam.com"; | ||||||
|  |     expect(actionUtils.isGhes()).toBeTruthy(); | ||||||
|  | }); | ||||||
|  | |||||||
| @ -260,7 +260,7 @@ test("Fail restore when fail on cache miss is enabled and primary + restore keys | |||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|     expect(stateMock).toHaveBeenCalledWith("CACHE_KEY", key); |     expect(stateMock).toHaveBeenCalledWith("CACHE_KEY", key); | ||||||
|     expect(setCacheHitOutputMock).toHaveBeenCalledTimes(1); |     expect(setCacheHitOutputMock).toHaveBeenCalledTimes(0); | ||||||
| 
 | 
 | ||||||
|     expect(failedMock).toHaveBeenCalledWith( |     expect(failedMock).toHaveBeenCalledWith( | ||||||
|         `Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${key}` |         `Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${key}` | ||||||
|  | |||||||
| @ -86,8 +86,7 @@ test("restore with no cache found", async () => { | |||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|     expect(outputMock).toHaveBeenCalledWith("cache-primary-key", key); |     expect(outputMock).toHaveBeenCalledWith("cache-primary-key", key); | ||||||
|     expect(outputMock).toHaveBeenCalledWith("cache-hit", "false"); |     expect(outputMock).toHaveBeenCalledTimes(1); | ||||||
|     expect(outputMock).toHaveBeenCalledTimes(2); |  | ||||||
|     expect(failedMock).toHaveBeenCalledTimes(0); |     expect(failedMock).toHaveBeenCalledTimes(0); | ||||||
| 
 | 
 | ||||||
|     expect(infoMock).toHaveBeenCalledWith( |     expect(infoMock).toHaveBeenCalledWith( | ||||||
|  | |||||||
| @ -102,7 +102,7 @@ The [GitHub Context](https://docs.github.com/en/actions/learn-github-actions/con | |||||||
| 
 | 
 | ||||||
| While setting paths for caching dependencies it is important to give correct path depending on the hosted runner you are using or whether the action is running in a container job. Assigning different `path` for save and restore will result in cache miss. | While setting paths for caching dependencies it is important to give correct path depending on the hosted runner you are using or whether the action is running in a container job. Assigning different `path` for save and restore will result in cache miss. | ||||||
| 
 | 
 | ||||||
| Below are GiHub hosted runner specific paths one should take care of when writing a workflow which saves/restores caches across OS. | Below are GitHub hosted runner specific paths one should take care of when writing a workflow which saves/restores caches across OS. | ||||||
| 
 | 
 | ||||||
| #### Ubuntu Paths | #### Ubuntu Paths | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										8849
									
								
								dist/restore-only/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8849
									
								
								dist/restore-only/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										8849
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8849
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										8846
									
								
								dist/save-only/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8846
									
								
								dist/save-only/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										8846
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8846
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										21
									
								
								examples.md
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								examples.md
									
									
									
									
									
								
							| @ -1,5 +1,6 @@ | |||||||
| # Examples | # Examples | ||||||
| 
 | 
 | ||||||
|  | - [Bun](#bun) | ||||||
| - [C# - NuGet](#c---nuget) | - [C# - NuGet](#c---nuget) | ||||||
| - [Clojure - Lein Deps](#clojure---lein-deps) | - [Clojure - Lein Deps](#clojure---lein-deps) | ||||||
| - [D - DUB](#d---dub) | - [D - DUB](#d---dub) | ||||||
| @ -41,6 +42,26 @@ | |||||||
| - [Swift - Mint](#swift---mint) | - [Swift - Mint](#swift---mint) | ||||||
| - [* - Bazel](#---bazel) | - [* - Bazel](#---bazel) | ||||||
| 
 | 
 | ||||||
|  | ## Bun | ||||||
|  | 
 | ||||||
|  | ```yaml | ||||||
|  | - uses: actions/cache@v4 | ||||||
|  |   with: | ||||||
|  |     path: | | ||||||
|  |       ~/.bun/install/cache | ||||||
|  |     key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lockb') }} | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### Windows | ||||||
|  | 
 | ||||||
|  | ```yaml | ||||||
|  | - uses: actions/cache@v4 | ||||||
|  |   with: | ||||||
|  |     path: | | ||||||
|  |       ~\.bun | ||||||
|  |     key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lockb') }} | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
| ## C# - NuGet | ## C# - NuGet | ||||||
| 
 | 
 | ||||||
| Using [NuGet lock files](https://docs.microsoft.com/nuget/consume-packages/package-references-in-project-files#locking-dependencies): | Using [NuGet lock files](https://docs.microsoft.com/nuget/consume-packages/package-references-in-project-files#locking-dependencies): | ||||||
|  | |||||||
							
								
								
									
										318
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										318
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,18 +1,18 @@ | |||||||
| { | { | ||||||
|   "name": "cache", |   "name": "cache", | ||||||
|   "version": "4.1.0", |   "version": "4.2.2", | ||||||
|   "lockfileVersion": 2, |   "lockfileVersion": 2, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "name": "cache", |       "name": "cache", | ||||||
|       "version": "4.1.0", |       "version": "4.2.2", | ||||||
|       "license": "MIT", |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/cache": "^3.2.3", |         "@actions/cache": "^4.0.2", | ||||||
|         "@actions/core": "^1.10.0", |         "@actions/core": "^1.11.1", | ||||||
|         "@actions/exec": "^1.1.1", |         "@actions/exec": "^1.1.1", | ||||||
|         "@actions/io": "^1.1.2" |         "@actions/io": "^1.1.3" | ||||||
|       }, |       }, | ||||||
|       "devDependencies": { |       "devDependencies": { | ||||||
|         "@types/jest": "^27.5.2", |         "@types/jest": "^27.5.2", | ||||||
| @ -20,7 +20,7 @@ | |||||||
|         "@types/node": "^16.18.3", |         "@types/node": "^16.18.3", | ||||||
|         "@typescript-eslint/eslint-plugin": "^5.45.0", |         "@typescript-eslint/eslint-plugin": "^5.45.0", | ||||||
|         "@typescript-eslint/parser": "^5.45.0", |         "@typescript-eslint/parser": "^5.45.0", | ||||||
|         "@vercel/ncc": "^0.38.1", |         "@vercel/ncc": "^0.38.3", | ||||||
|         "eslint": "^8.28.0", |         "eslint": "^8.28.0", | ||||||
|         "eslint-config-prettier": "^8.5.0", |         "eslint-config-prettier": "^8.5.0", | ||||||
|         "eslint-plugin-import": "^2.26.0", |         "eslint-plugin-import": "^2.26.0", | ||||||
| @ -36,11 +36,12 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/cache": { |     "node_modules/@actions/cache": { | ||||||
|       "version": "3.2.4", |       "version": "4.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.2.4.tgz", |       "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-4.0.2.tgz", | ||||||
|       "integrity": "sha512-RuHnwfcDagtX+37s0ZWy7clbOfnZ7AlDJQ7k/9rzt2W4Gnwde3fa/qjSjVuz4vLcLIpc7fUob27CMrqiWZytYA==", |       "integrity": "sha512-cBr7JL1q+JKjbBd3w3SZN5OQ1Xg+/D8QLMcE7MpgpghZlL4biBO0ZEeraoTxCZyfN0YY0dxXlLgsgGv/sT5BTg==", | ||||||
|  |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/core": "^1.10.0", |         "@actions/core": "^1.11.1", | ||||||
|         "@actions/exec": "^1.0.1", |         "@actions/exec": "^1.0.1", | ||||||
|         "@actions/glob": "^0.1.0", |         "@actions/glob": "^0.1.0", | ||||||
|         "@actions/http-client": "^2.1.1", |         "@actions/http-client": "^2.1.1", | ||||||
| @ -48,25 +49,18 @@ | |||||||
|         "@azure/abort-controller": "^1.1.0", |         "@azure/abort-controller": "^1.1.0", | ||||||
|         "@azure/ms-rest-js": "^2.6.0", |         "@azure/ms-rest-js": "^2.6.0", | ||||||
|         "@azure/storage-blob": "^12.13.0", |         "@azure/storage-blob": "^12.13.0", | ||||||
|         "semver": "^6.3.1", |         "@protobuf-ts/plugin": "^2.9.4", | ||||||
|         "uuid": "^3.3.3" |         "semver": "^6.3.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/core": { |     "node_modules/@actions/core": { | ||||||
|       "version": "1.10.0", |       "version": "1.11.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz", |       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", | ||||||
|       "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==", |       "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", | ||||||
|  |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/http-client": "^2.0.1", |         "@actions/exec": "^1.1.1", | ||||||
|         "uuid": "^8.3.2" |         "@actions/http-client": "^2.0.1" | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@actions/core/node_modules/uuid": { |  | ||||||
|       "version": "8.3.2", |  | ||||||
|       "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", |  | ||||||
|       "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", |  | ||||||
|       "bin": { |  | ||||||
|         "uuid": "dist/bin/uuid" |  | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/exec": { |     "node_modules/@actions/exec": { | ||||||
| @ -95,9 +89,10 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/io": { |     "node_modules/@actions/io": { | ||||||
|       "version": "1.1.2", |       "version": "1.1.3", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz", |       "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", | ||||||
|       "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==" |       "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==", | ||||||
|  |       "license": "MIT" | ||||||
|     }, |     }, | ||||||
|     "node_modules/@ampproject/remapping": { |     "node_modules/@ampproject/remapping": { | ||||||
|       "version": "2.1.1", |       "version": "2.1.1", | ||||||
| @ -2705,6 +2700,83 @@ | |||||||
|         "node": ">=8.0.0" |         "node": ">=8.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/@protobuf-ts/plugin": { | ||||||
|  |       "version": "2.9.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@protobuf-ts/plugin/-/plugin-2.9.4.tgz", | ||||||
|  |       "integrity": "sha512-Db5Laq5T3mc6ERZvhIhkj1rn57/p8gbWiCKxQWbZBBl20wMuqKoHbRw4tuD7FyXi+IkwTToaNVXymv5CY3E8Rw==", | ||||||
|  |       "license": "Apache-2.0", | ||||||
|  |       "dependencies": { | ||||||
|  |         "@protobuf-ts/plugin-framework": "^2.9.4", | ||||||
|  |         "@protobuf-ts/protoc": "^2.9.4", | ||||||
|  |         "@protobuf-ts/runtime": "^2.9.4", | ||||||
|  |         "@protobuf-ts/runtime-rpc": "^2.9.4", | ||||||
|  |         "typescript": "^3.9" | ||||||
|  |       }, | ||||||
|  |       "bin": { | ||||||
|  |         "protoc-gen-dump": "bin/protoc-gen-dump", | ||||||
|  |         "protoc-gen-ts": "bin/protoc-gen-ts" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/@protobuf-ts/plugin-framework": { | ||||||
|  |       "version": "2.9.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@protobuf-ts/plugin-framework/-/plugin-framework-2.9.4.tgz", | ||||||
|  |       "integrity": "sha512-9nuX1kjdMliv+Pes8dQCKyVhjKgNNfwxVHg+tx3fLXSfZZRcUHMc1PMwB9/vTvc6gBKt9QGz5ERqSqZc0++E9A==", | ||||||
|  |       "license": "(Apache-2.0 AND BSD-3-Clause)", | ||||||
|  |       "dependencies": { | ||||||
|  |         "@protobuf-ts/runtime": "^2.9.4", | ||||||
|  |         "typescript": "^3.9" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/@protobuf-ts/plugin-framework/node_modules/typescript": { | ||||||
|  |       "version": "3.9.10", | ||||||
|  |       "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", | ||||||
|  |       "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", | ||||||
|  |       "license": "Apache-2.0", | ||||||
|  |       "bin": { | ||||||
|  |         "tsc": "bin/tsc", | ||||||
|  |         "tsserver": "bin/tsserver" | ||||||
|  |       }, | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=4.2.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/@protobuf-ts/plugin/node_modules/typescript": { | ||||||
|  |       "version": "3.9.10", | ||||||
|  |       "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", | ||||||
|  |       "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", | ||||||
|  |       "license": "Apache-2.0", | ||||||
|  |       "bin": { | ||||||
|  |         "tsc": "bin/tsc", | ||||||
|  |         "tsserver": "bin/tsserver" | ||||||
|  |       }, | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=4.2.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/@protobuf-ts/protoc": { | ||||||
|  |       "version": "2.9.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@protobuf-ts/protoc/-/protoc-2.9.4.tgz", | ||||||
|  |       "integrity": "sha512-hQX+nOhFtrA+YdAXsXEDrLoGJqXHpgv4+BueYF0S9hy/Jq0VRTVlJS1Etmf4qlMt/WdigEes5LOd/LDzui4GIQ==", | ||||||
|  |       "license": "Apache-2.0", | ||||||
|  |       "bin": { | ||||||
|  |         "protoc": "protoc.js" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/@protobuf-ts/runtime": { | ||||||
|  |       "version": "2.9.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.4.tgz", | ||||||
|  |       "integrity": "sha512-vHRFWtJJB/SiogWDF0ypoKfRIZ41Kq+G9cEFj6Qm1eQaAhJ1LDFvgZ7Ja4tb3iLOQhz0PaoPnnOijF1qmEqTxg==", | ||||||
|  |       "license": "(Apache-2.0 AND BSD-3-Clause)" | ||||||
|  |     }, | ||||||
|  |     "node_modules/@protobuf-ts/runtime-rpc": { | ||||||
|  |       "version": "2.9.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime-rpc/-/runtime-rpc-2.9.4.tgz", | ||||||
|  |       "integrity": "sha512-y9L9JgnZxXFqH5vD4d7j9duWvIJ7AShyBRoNKJGhu9Q27qIbchfzli66H9RvrQNIFk5ER7z1Twe059WZGqERcA==", | ||||||
|  |       "license": "Apache-2.0", | ||||||
|  |       "dependencies": { | ||||||
|  |         "@protobuf-ts/runtime": "^2.9.4" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/@sinclair/typebox": { |     "node_modules/@sinclair/typebox": { | ||||||
|       "version": "0.24.51", |       "version": "0.24.51", | ||||||
|       "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", |       "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", | ||||||
| @ -3136,10 +3208,11 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@vercel/ncc": { |     "node_modules/@vercel/ncc": { | ||||||
|       "version": "0.38.1", |       "version": "0.38.3", | ||||||
|       "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", |       "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.3.tgz", | ||||||
|       "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==", |       "integrity": "sha512-rnK6hJBS6mwc+Bkab+PGPs9OiS0i/3kdTO+CkI8V0/VrW3vmz7O2Pxjw/owOlmo6PKEIxRSeZKv/kuL9itnpYA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|  |       "license": "MIT", | ||||||
|       "bin": { |       "bin": { | ||||||
|         "ncc": "dist/ncc/cli.js" |         "ncc": "dist/ncc/cli.js" | ||||||
|       } |       } | ||||||
| @ -3521,12 +3594,12 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/braces": { |     "node_modules/braces": { | ||||||
|       "version": "3.0.2", |       "version": "3.0.3", | ||||||
|       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", |       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", | ||||||
|       "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", |       "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "fill-range": "^7.0.1" |         "fill-range": "^7.1.1" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=8" |         "node": ">=8" | ||||||
| @ -3734,10 +3807,11 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/cross-spawn": { |     "node_modules/cross-spawn": { | ||||||
|       "version": "7.0.3", |       "version": "7.0.6", | ||||||
|       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", |       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", | ||||||
|       "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", |       "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|  |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "path-key": "^3.1.0", |         "path-key": "^3.1.0", | ||||||
|         "shebang-command": "^2.0.0", |         "shebang-command": "^2.0.0", | ||||||
| @ -4622,9 +4696,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/fill-range": { |     "node_modules/fill-range": { | ||||||
|       "version": "7.0.1", |       "version": "7.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", |       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", | ||||||
|       "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", |       "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "to-regex-range": "^5.0.1" |         "to-regex-range": "^5.0.1" | ||||||
| @ -8119,13 +8193,14 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/micromatch": { |     "node_modules/micromatch": { | ||||||
|       "version": "4.0.4", |       "version": "4.0.8", | ||||||
|       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", |       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", | ||||||
|       "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", |       "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|  |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "braces": "^3.0.1", |         "braces": "^3.0.3", | ||||||
|         "picomatch": "^2.2.3" |         "picomatch": "^2.3.1" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=8.6" |         "node": ">=8.6" | ||||||
| @ -8480,10 +8555,11 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/picomatch": { |     "node_modules/picomatch": { | ||||||
|       "version": "2.3.0", |       "version": "2.3.1", | ||||||
|       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", |       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", | ||||||
|       "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", |       "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|  |       "license": "MIT", | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=8.6" |         "node": ">=8.6" | ||||||
|       }, |       }, | ||||||
| @ -9349,15 +9425,6 @@ | |||||||
|         "punycode": "^2.1.0" |         "punycode": "^2.1.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/uuid": { |  | ||||||
|       "version": "3.4.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", |  | ||||||
|       "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", |  | ||||||
|       "deprecated": "Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.", |  | ||||||
|       "bin": { |  | ||||||
|         "uuid": "bin/uuid" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/v8-to-istanbul": { |     "node_modules/v8-to-istanbul": { | ||||||
|       "version": "9.0.1", |       "version": "9.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", |       "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", | ||||||
| @ -9533,11 +9600,11 @@ | |||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@actions/cache": { |     "@actions/cache": { | ||||||
|       "version": "3.2.4", |       "version": "4.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.2.4.tgz", |       "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-4.0.2.tgz", | ||||||
|       "integrity": "sha512-RuHnwfcDagtX+37s0ZWy7clbOfnZ7AlDJQ7k/9rzt2W4Gnwde3fa/qjSjVuz4vLcLIpc7fUob27CMrqiWZytYA==", |       "integrity": "sha512-cBr7JL1q+JKjbBd3w3SZN5OQ1Xg+/D8QLMcE7MpgpghZlL4biBO0ZEeraoTxCZyfN0YY0dxXlLgsgGv/sT5BTg==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@actions/core": "^1.10.0", |         "@actions/core": "^1.11.1", | ||||||
|         "@actions/exec": "^1.0.1", |         "@actions/exec": "^1.0.1", | ||||||
|         "@actions/glob": "^0.1.0", |         "@actions/glob": "^0.1.0", | ||||||
|         "@actions/http-client": "^2.1.1", |         "@actions/http-client": "^2.1.1", | ||||||
| @ -9545,24 +9612,17 @@ | |||||||
|         "@azure/abort-controller": "^1.1.0", |         "@azure/abort-controller": "^1.1.0", | ||||||
|         "@azure/ms-rest-js": "^2.6.0", |         "@azure/ms-rest-js": "^2.6.0", | ||||||
|         "@azure/storage-blob": "^12.13.0", |         "@azure/storage-blob": "^12.13.0", | ||||||
|         "semver": "^6.3.1", |         "@protobuf-ts/plugin": "^2.9.4", | ||||||
|         "uuid": "^3.3.3" |         "semver": "^6.3.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@actions/core": { |     "@actions/core": { | ||||||
|       "version": "1.10.0", |       "version": "1.11.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz", |       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", | ||||||
|       "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==", |       "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@actions/http-client": "^2.0.1", |         "@actions/exec": "^1.1.1", | ||||||
|         "uuid": "^8.3.2" |         "@actions/http-client": "^2.0.1" | ||||||
|       }, |  | ||||||
|       "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": { | ||||||
| @ -9591,9 +9651,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@actions/io": { |     "@actions/io": { | ||||||
|       "version": "1.1.2", |       "version": "1.1.3", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz", |       "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", | ||||||
|       "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==" |       "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==" | ||||||
|     }, |     }, | ||||||
|     "@ampproject/remapping": { |     "@ampproject/remapping": { | ||||||
|       "version": "2.1.1", |       "version": "2.1.1", | ||||||
| @ -11686,6 +11746,59 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.0.tgz", |       "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.0.tgz", | ||||||
|       "integrity": "sha512-IgMK9i3sFGNUqPMbjABm0G26g0QCKCUBfglhQ7rQq6WcxbKfEHRcmwsoER4hZcuYqJgkYn2OeuoJIv7Jsftp7g==" |       "integrity": "sha512-IgMK9i3sFGNUqPMbjABm0G26g0QCKCUBfglhQ7rQq6WcxbKfEHRcmwsoER4hZcuYqJgkYn2OeuoJIv7Jsftp7g==" | ||||||
|     }, |     }, | ||||||
|  |     "@protobuf-ts/plugin": { | ||||||
|  |       "version": "2.9.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@protobuf-ts/plugin/-/plugin-2.9.4.tgz", | ||||||
|  |       "integrity": "sha512-Db5Laq5T3mc6ERZvhIhkj1rn57/p8gbWiCKxQWbZBBl20wMuqKoHbRw4tuD7FyXi+IkwTToaNVXymv5CY3E8Rw==", | ||||||
|  |       "requires": { | ||||||
|  |         "@protobuf-ts/plugin-framework": "^2.9.4", | ||||||
|  |         "@protobuf-ts/protoc": "^2.9.4", | ||||||
|  |         "@protobuf-ts/runtime": "^2.9.4", | ||||||
|  |         "@protobuf-ts/runtime-rpc": "^2.9.4", | ||||||
|  |         "typescript": "^3.9" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "typescript": { | ||||||
|  |           "version": "3.9.10", | ||||||
|  |           "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", | ||||||
|  |           "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==" | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "@protobuf-ts/plugin-framework": { | ||||||
|  |       "version": "2.9.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@protobuf-ts/plugin-framework/-/plugin-framework-2.9.4.tgz", | ||||||
|  |       "integrity": "sha512-9nuX1kjdMliv+Pes8dQCKyVhjKgNNfwxVHg+tx3fLXSfZZRcUHMc1PMwB9/vTvc6gBKt9QGz5ERqSqZc0++E9A==", | ||||||
|  |       "requires": { | ||||||
|  |         "@protobuf-ts/runtime": "^2.9.4", | ||||||
|  |         "typescript": "^3.9" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "typescript": { | ||||||
|  |           "version": "3.9.10", | ||||||
|  |           "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", | ||||||
|  |           "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==" | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "@protobuf-ts/protoc": { | ||||||
|  |       "version": "2.9.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@protobuf-ts/protoc/-/protoc-2.9.4.tgz", | ||||||
|  |       "integrity": "sha512-hQX+nOhFtrA+YdAXsXEDrLoGJqXHpgv4+BueYF0S9hy/Jq0VRTVlJS1Etmf4qlMt/WdigEes5LOd/LDzui4GIQ==" | ||||||
|  |     }, | ||||||
|  |     "@protobuf-ts/runtime": { | ||||||
|  |       "version": "2.9.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.4.tgz", | ||||||
|  |       "integrity": "sha512-vHRFWtJJB/SiogWDF0ypoKfRIZ41Kq+G9cEFj6Qm1eQaAhJ1LDFvgZ7Ja4tb3iLOQhz0PaoPnnOijF1qmEqTxg==" | ||||||
|  |     }, | ||||||
|  |     "@protobuf-ts/runtime-rpc": { | ||||||
|  |       "version": "2.9.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime-rpc/-/runtime-rpc-2.9.4.tgz", | ||||||
|  |       "integrity": "sha512-y9L9JgnZxXFqH5vD4d7j9duWvIJ7AShyBRoNKJGhu9Q27qIbchfzli66H9RvrQNIFk5ER7z1Twe059WZGqERcA==", | ||||||
|  |       "requires": { | ||||||
|  |         "@protobuf-ts/runtime": "^2.9.4" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "@sinclair/typebox": { |     "@sinclair/typebox": { | ||||||
|       "version": "0.24.51", |       "version": "0.24.51", | ||||||
|       "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", |       "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", | ||||||
| @ -12014,9 +12127,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@vercel/ncc": { |     "@vercel/ncc": { | ||||||
|       "version": "0.38.1", |       "version": "0.38.3", | ||||||
|       "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", |       "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.3.tgz", | ||||||
|       "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==", |       "integrity": "sha512-rnK6hJBS6mwc+Bkab+PGPs9OiS0i/3kdTO+CkI8V0/VrW3vmz7O2Pxjw/owOlmo6PKEIxRSeZKv/kuL9itnpYA==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "abort-controller": { |     "abort-controller": { | ||||||
| @ -12302,12 +12415,12 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "braces": { |     "braces": { | ||||||
|       "version": "3.0.2", |       "version": "3.0.3", | ||||||
|       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", |       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", | ||||||
|       "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", |       "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "fill-range": "^7.0.1" |         "fill-range": "^7.1.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "browserslist": { |     "browserslist": { | ||||||
| @ -12464,9 +12577,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "cross-spawn": { |     "cross-spawn": { | ||||||
|       "version": "7.0.3", |       "version": "7.0.6", | ||||||
|       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", |       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", | ||||||
|       "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", |       "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "path-key": "^3.1.0", |         "path-key": "^3.1.0", | ||||||
| @ -13127,9 +13240,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "fill-range": { |     "fill-range": { | ||||||
|       "version": "7.0.1", |       "version": "7.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", |       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", | ||||||
|       "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", |       "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "to-regex-range": "^5.0.1" |         "to-regex-range": "^5.0.1" | ||||||
| @ -15857,13 +15970,13 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "micromatch": { |     "micromatch": { | ||||||
|       "version": "4.0.4", |       "version": "4.0.8", | ||||||
|       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", |       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", | ||||||
|       "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", |       "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "braces": "^3.0.1", |         "braces": "^3.0.3", | ||||||
|         "picomatch": "^2.2.3" |         "picomatch": "^2.3.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "mime-db": { |     "mime-db": { | ||||||
| @ -16128,9 +16241,9 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "picomatch": { |     "picomatch": { | ||||||
|       "version": "2.3.0", |       "version": "2.3.1", | ||||||
|       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", |       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", | ||||||
|       "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", |       "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "pirates": { |     "pirates": { | ||||||
| @ -16733,11 +16846,6 @@ | |||||||
|         "punycode": "^2.1.0" |         "punycode": "^2.1.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "uuid": { |  | ||||||
|       "version": "3.4.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", |  | ||||||
|       "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" |  | ||||||
|     }, |  | ||||||
|     "v8-to-istanbul": { |     "v8-to-istanbul": { | ||||||
|       "version": "9.0.1", |       "version": "9.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", |       "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								package.json
									
									
									
									
									
								
							| @ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "cache", |   "name": "cache", | ||||||
|   "version": "4.1.0", |   "version": "4.2.2", | ||||||
|   "private": true, |   "private": true, | ||||||
|   "description": "Cache dependencies and build outputs", |   "description": "Cache dependencies and build outputs", | ||||||
|   "main": "dist/restore/index.js", |   "main": "dist/restore/index.js", | ||||||
| @ -23,10 +23,10 @@ | |||||||
|   "author": "GitHub", |   "author": "GitHub", | ||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@actions/cache": "^3.2.3", |     "@actions/cache": "^4.0.2", | ||||||
|     "@actions/core": "^1.10.0", |     "@actions/core": "^1.11.1", | ||||||
|     "@actions/exec": "^1.1.1", |     "@actions/exec": "^1.1.1", | ||||||
|     "@actions/io": "^1.1.2" |     "@actions/io": "^1.1.3" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@types/jest": "^27.5.2", |     "@types/jest": "^27.5.2", | ||||||
| @ -34,7 +34,7 @@ | |||||||
|     "@types/node": "^16.18.3", |     "@types/node": "^16.18.3", | ||||||
|     "@typescript-eslint/eslint-plugin": "^5.45.0", |     "@typescript-eslint/eslint-plugin": "^5.45.0", | ||||||
|     "@typescript-eslint/parser": "^5.45.0", |     "@typescript-eslint/parser": "^5.45.0", | ||||||
|     "@vercel/ncc": "^0.38.1", |     "@vercel/ncc": "^0.38.3", | ||||||
|     "eslint": "^8.28.0", |     "eslint": "^8.28.0", | ||||||
|     "eslint-config-prettier": "^8.5.0", |     "eslint-config-prettier": "^8.5.0", | ||||||
|     "eslint-plugin-import": "^2.26.0", |     "eslint-plugin-import": "^2.26.0", | ||||||
|  | |||||||
| @ -79,8 +79,10 @@ To avoid saving a cache that already exists, the `cache-hit` output from a resto | |||||||
| The `cache-primary-key` output from the restore step should also be used to ensure | The `cache-primary-key` output from the restore step should also be used to ensure | ||||||
| the cache key does not change during the build if it's calculated based on file contents. | the cache key does not change during the build if it's calculated based on file contents. | ||||||
| 
 | 
 | ||||||
|  | Here's an example where we imagine we're calculating a lot of prime numbers and want to cache them: | ||||||
|  | 
 | ||||||
| ```yaml | ```yaml | ||||||
| name: Always Caching Primes | name: Always Caching Prime Numbers | ||||||
| 
 | 
 | ||||||
| on: push | on: push | ||||||
| 
 | 
 | ||||||
| @ -91,23 +93,23 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|     - uses: actions/checkout@v4 |     - uses: actions/checkout@v4 | ||||||
| 
 | 
 | ||||||
|     - name: Restore cached Primes |     - name: Restore cached Prime Numbers | ||||||
|       id: cache-primes-restore |       id: cache-prime-numbers-restore | ||||||
|       uses: actions/cache/restore@v4 |       uses: actions/cache/restore@v4 | ||||||
|       with: |       with: | ||||||
|         key: ${{ runner.os }}-primes |         key: ${{ runner.os }}-prime-numbers | ||||||
|         path: | |         path: | | ||||||
|           path/to/dependencies |           path/to/dependencies | ||||||
|           some/other/dependencies |           some/other/dependencies | ||||||
| 
 | 
 | ||||||
|     # Intermediate workflow steps |     # Intermediate workflow steps | ||||||
| 
 | 
 | ||||||
|     - name: Always Save Primes |     - name: Always Save Prime Numbers | ||||||
|       id: cache-primes-save |       id: cache-prime-numbers-save | ||||||
|       if: always() && steps.cache-primes-restore.outputs.cache-hit != 'true' |       if: always() && steps.cache-prime-numbers-restore.outputs.cache-hit != 'true' | ||||||
|       uses: actions/cache/save@v4 |       uses: actions/cache/save@v4 | ||||||
|       with: |       with: | ||||||
|         key: ${{ steps.cache-primes-restore.outputs.cache-primary-key }} |         key: ${{ steps.cache-prime-numbers-restore.outputs.cache-primary-key }} | ||||||
|         path: | |         path: | | ||||||
|           path/to/dependencies |           path/to/dependencies | ||||||
|           some/other/dependencies |           some/other/dependencies | ||||||
|  | |||||||
| @ -51,7 +51,9 @@ export async function restoreImpl( | |||||||
|         ); |         ); | ||||||
| 
 | 
 | ||||||
|         if (!cacheKey) { |         if (!cacheKey) { | ||||||
|             core.setOutput(Outputs.CacheHit, false.toString()); |             // `cache-hit` is intentionally not set to `false` here to preserve existing behavior
 | ||||||
|  |             // See https://github.com/actions/cache/issues/1466
 | ||||||
|  | 
 | ||||||
|             if (failOnCacheMiss) { |             if (failOnCacheMiss) { | ||||||
|                 throw new Error( |                 throw new Error( | ||||||
|                     `Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}` |                     `Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}` | ||||||
|  | |||||||
| @ -7,7 +7,13 @@ export function isGhes(): boolean { | |||||||
|     const ghUrl = new URL( |     const ghUrl = new URL( | ||||||
|         process.env["GITHUB_SERVER_URL"] || "https://github.com" |         process.env["GITHUB_SERVER_URL"] || "https://github.com" | ||||||
|     ); |     ); | ||||||
|     return ghUrl.hostname.toUpperCase() !== "GITHUB.COM"; | 
 | ||||||
|  |     const hostname = ghUrl.hostname.trimEnd().toUpperCase(); | ||||||
|  |     const isGitHubHost = hostname === "GITHUB.COM"; | ||||||
|  |     const isGitHubEnterpriseCloudHost = hostname.endsWith(".GHE.COM"); | ||||||
|  |     const isLocalHost = hostname.endsWith(".LOCALHOST"); | ||||||
|  | 
 | ||||||
|  |     return !isGitHubHost && !isGitHubEnterpriseCloudHost && !isLocalHost; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export function isExactKeyMatch(key: string, cacheKey?: string): boolean { | export function isExactKeyMatch(key: string, cacheKey?: string): boolean { | ||||||
|  | |||||||
| @ -37,9 +37,8 @@ From `v3.2.3` cache is cross-os compatible when `enableCrossOsArchive` input is | |||||||
| 
 | 
 | ||||||
| ## Force deletion of caches overriding default cache eviction policy | ## Force deletion of caches overriding default cache eviction policy | ||||||
| 
 | 
 | ||||||
| Caches have [branch scope restriction](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache) in place. This means that if caches for a specific branch are using a lot of storage quota, it may result into more frequently used caches from `default` branch getting thrashed. For example, if there are many pull requests happening on a repo and are creating caches, these cannot be used in default branch scope but will still occupy a lot of space till they get cleaned up by [eviction policy](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy). But sometime we want to clean them up on a faster cadence so as to ensure default branch is not thrashing. In order to achieve this, [gh-actions-cache cli](https://github.com/actions/gh-actions-cache/) can be used to delete caches for specific branches. | Caches have [branch scope restriction](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache) in place. This means that if caches for a specific branch are using a lot of storage quota, it may result into more frequently used caches from `default` branch getting thrashed. For example, if there are many pull requests happening on a repo and are creating caches, these cannot be used in default branch scope but will still occupy a lot of space till they get cleaned up by [eviction policy](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy). But sometime we want to clean them up on a faster cadence so as to ensure default branch is not thrashing. | ||||||
| 
 | 
 | ||||||
| This workflow uses `gh-actions-cache` to delete all the caches created by a branch. |  | ||||||
| <details> | <details> | ||||||
|   <summary>Example</summary> |   <summary>Example</summary> | ||||||
| 
 | 
 | ||||||
| @ -60,29 +59,23 @@ jobs: | |||||||
|       actions: write |       actions: write | ||||||
|       contents: read |       contents: read | ||||||
|     steps: |     steps: | ||||||
|       - name: Check out code |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
| 
 |  | ||||||
|       - name: Cleanup |       - name: Cleanup | ||||||
|         run: | |         run: | | ||||||
|           gh extension install actions/gh-actions-cache |  | ||||||
|            |  | ||||||
|           REPO=${{ github.repository }} |  | ||||||
|           BRANCH=refs/pull/${{ github.event.pull_request.number }}/merge |  | ||||||
| 
 |  | ||||||
|           echo "Fetching list of cache key" |           echo "Fetching list of cache key" | ||||||
|           cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 ) |           cacheKeysForPR=$(gh cache list --ref $BRANCH --limit 100 --json id --jq '.[].id') | ||||||
| 
 | 
 | ||||||
|           ## Setting this to not fail the workflow while deleting cache keys.  |           ## Setting this to not fail the workflow while deleting cache keys. | ||||||
|           set +e |           set +e | ||||||
|           echo "Deleting caches..." |           echo "Deleting caches..." | ||||||
|           for cacheKey in $cacheKeysForPR |           for cacheKey in $cacheKeysForPR | ||||||
|           do |           do | ||||||
|               gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm |               gh cache delete $cacheKey | ||||||
|           done |           done | ||||||
|           echo "Done" |           echo "Done" | ||||||
|         env: |         env: | ||||||
|           GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |           GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |           GH_REPO: ${{ github.repository }} | ||||||
|  |           BRANCH: refs/pull/${{ github.event.pull_request.number }}/merge | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| </details> | </details> | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user