mirror of
				https://gitea.com/actions/cache.git
				synced 2025-11-04 07:47:08 +00:00 
			
		
		
		
	Compare commits
	
		
			26 Commits
		
	
	
		
			vsvipul/fi
			...
			bishal-pdM
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					be52f75d6f | ||
| 
						 | 
					8bec1e4cc3 | ||
| 
						 | 
					14f2d18ea2 | ||
| 
						 | 
					083fb3041b | ||
| 
						 | 
					5085ac92ef | ||
| 
						 | 
					76639bb4e5 | ||
| 
						 | 
					5294b3f306 | ||
| 
						 | 
					4fe9c4bd54 | ||
| 
						 | 
					2b04a41915 | ||
| 
						 | 
					9b0c1fce7a | ||
| 
						 | 
					18103f63fe | ||
| 
						 | 
					3e383cd9c3 | ||
| 
						 | 
					43428ea056 | ||
| 
						 | 
					1c73980b09 | ||
| 
						 | 
					a3f5edc237 | ||
| 
						 | 
					831ee695a5 | ||
| 
						 | 
					b9c8bfe442 | ||
| 
						 | 
					0f20846208 | ||
| 
						 | 
					862fc14188 | ||
| 
						 | 
					f77a0d297b | ||
| 
						 | 
					50a4a3a126 | ||
| 
						 | 
					56461b9eb0 | ||
| 
						 | 
					f85d12c3b2 | ||
| 
						 | 
					98044e486f | ||
| 
						 | 
					edc49897ec | ||
| 
						 | 
					3238536a48 | 
							
								
								
									
										32
									
								
								.github/pull_request_template.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.github/pull_request_template.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					<!--- Provide a general summary of your changes in the Title above -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Description
 | 
				
			||||||
 | 
					<!--- Describe your changes in detail -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Motivation and Context
 | 
				
			||||||
 | 
					<!--- Why is this change required? What problem does it solve? -->
 | 
				
			||||||
 | 
					<!--- If it fixes an open issue, please link to the issue here. -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## How Has This Been Tested?
 | 
				
			||||||
 | 
					<!--- Please describe in detail how you tested your changes. -->
 | 
				
			||||||
 | 
					<!--- Include details of your testing environment, and the tests you ran to -->
 | 
				
			||||||
 | 
					<!--- see how your change affects other areas of the code, etc. -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Screenshots (if appropriate):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Types of changes
 | 
				
			||||||
 | 
					<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
 | 
				
			||||||
 | 
					- [ ] Bug fix (non-breaking change which fixes an issue)
 | 
				
			||||||
 | 
					- [ ] New feature (non-breaking change which adds functionality)
 | 
				
			||||||
 | 
					- [ ] Breaking change (fix or feature that would cause existing functionality to change)
 | 
				
			||||||
 | 
					- [ ] Documentation (add or update README or docs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Checklist:
 | 
				
			||||||
 | 
					<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
 | 
				
			||||||
 | 
					<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
 | 
				
			||||||
 | 
					- [ ] My code follows the code style of this project.
 | 
				
			||||||
 | 
					- [ ] My change requires a change to the documentation.
 | 
				
			||||||
 | 
					- [ ] I have updated the documentation accordingly.
 | 
				
			||||||
 | 
					- [ ] I have read the **CONTRIBUTING** document.
 | 
				
			||||||
 | 
					- [ ] I have added tests to cover my changes.
 | 
				
			||||||
 | 
					- [ ] All new and existing tests passed.
 | 
				
			||||||
							
								
								
									
										4
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							@@ -99,7 +99,7 @@ jobs:
 | 
				
			|||||||
      options: --dns 127.0.0.1
 | 
					      options: --dns 127.0.0.1
 | 
				
			||||||
    services:
 | 
					    services:
 | 
				
			||||||
      squid-proxy:
 | 
					      squid-proxy:
 | 
				
			||||||
        image: datadog/squid:latest
 | 
					        image: ubuntu/squid:latest
 | 
				
			||||||
        ports:
 | 
					        ports:
 | 
				
			||||||
          - 3128:3128
 | 
					          - 3128:3128
 | 
				
			||||||
    env:
 | 
					    env:
 | 
				
			||||||
@@ -122,7 +122,7 @@ jobs:
 | 
				
			|||||||
      options: --dns 127.0.0.1
 | 
					      options: --dns 127.0.0.1
 | 
				
			||||||
    services:
 | 
					    services:
 | 
				
			||||||
      squid-proxy:
 | 
					      squid-proxy:
 | 
				
			||||||
        image: datadog/squid:latest
 | 
					        image: ubuntu/squid:latest
 | 
				
			||||||
        ports:
 | 
					        ports:
 | 
				
			||||||
          - 3128:3128
 | 
					          - 3128:3128
 | 
				
			||||||
    env:
 | 
					    env:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.licenses/npm/@actions/cache.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/@actions/cache.dep.yml
									
									
									
										generated
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: "@actions/cache"
 | 
					name: "@actions/cache"
 | 
				
			||||||
version: 3.0.4
 | 
					version: 3.0.5
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary:
 | 
					summary:
 | 
				
			||||||
homepage:
 | 
					homepage:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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.9.1
 | 
					version: 1.10.0
 | 
				
			||||||
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
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										17
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								README.md
									
									
									
									
									
								
							@@ -19,7 +19,7 @@ See ["Caching dependencies to speed up workflows"](https://docs.github.com/en/ac
 | 
				
			|||||||
* Fixed cache not working with github workspace directory or current directory.
 | 
					* Fixed cache not working with github workspace directory or current directory.
 | 
				
			||||||
* Fixed the download stuck problem by introducing a timeout of 1 hour for cache downloads.
 | 
					* Fixed the download stuck problem by introducing a timeout of 1 hour for cache downloads.
 | 
				
			||||||
* Fix zstd not working for windows on gnu tar in issues.
 | 
					* Fix zstd not working for windows on gnu tar in issues.
 | 
				
			||||||
* Allowing users to provide a custom timeout as input for aborting download of a cache segment using an environment variable `SEGMENT_DOWNLOAD_TIMEOUT_MIN`. Default is 60 minutes.
 | 
					* Allowing users to provide a custom timeout as input for aborting download of a cache segment using an environment variable `SEGMENT_DOWNLOAD_TIMEOUT_MINS`. Default is 60 minutes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Refer [here](https://github.com/actions/cache/blob/v2/README.md) for previous versions
 | 
					Refer [here](https://github.com/actions/cache/blob/v2/README.md) for previous versions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -34,17 +34,18 @@ If you are using this inside a container, a POSIX-compliant `tar` needs to be in
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
* `path` - A list of files, directories, and wildcard patterns to cache and restore. See [`@actions/glob`](https://github.com/actions/toolkit/tree/main/packages/glob) for supported patterns.
 | 
					* `path` - A list of files, directories, and wildcard patterns to cache and restore. See [`@actions/glob`](https://github.com/actions/toolkit/tree/main/packages/glob) for supported patterns.
 | 
				
			||||||
* `key` - An explicit key for restoring and saving the cache
 | 
					* `key` - An explicit key for restoring and saving the cache
 | 
				
			||||||
* `restore-keys` - An ordered list of keys to use for restoring stale cache if no cache hit occurred for key. Note
 | 
					* `restore-keys` - An ordered list of prefix-matched keys to use for restoring stale cache if no cache hit occurred for key.
 | 
				
			||||||
`cache-hit` returns false in this case.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### Environment Variables
 | 
					#### Environment Variables
 | 
				
			||||||
* `SEGMENT_DOWNLOAD_TIMEOUT_MIN` - Segment download timeout (in minutes, default `60`) to abort download of the segment if not completed in the defined number of minutes. [Read more](#cache-segment-restore-timeout)
 | 
					* `SEGMENT_DOWNLOAD_TIMEOUT_MINS` - Segment download timeout (in minutes, default `60`) to abort download of the segment if not completed in the defined number of minutes. [Read more](#cache-segment-restore-timeout)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Outputs
 | 
					### Outputs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* `cache-hit` - A boolean value to indicate an exact match was found for the key
 | 
					* `cache-hit` - A boolean value to indicate an exact match was found for the key. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> See [Skipping steps based on cache-hit](#Skipping-steps-based-on-cache-hit) for info on using this output
 | 
					> Note: `cache-hit` will be set to `true` only when 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`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					See [Skipping steps based on cache-hit](#skipping-steps-based-on-cache-hit) for info on using this output
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Cache scopes
 | 
					### Cache scopes
 | 
				
			||||||
The cache is scoped to the key and branch. The default branch cache is available to other branches.
 | 
					The cache is scoped to the key and branch. The default branch cache is available to other branches.
 | 
				
			||||||
@@ -80,7 +81,7 @@ jobs:
 | 
				
			|||||||
      run: /primes.sh -d prime-numbers
 | 
					      run: /primes.sh -d prime-numbers
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> Note: You must use the `cache` action in your workflow before you need to use the files that might be restored from the cache. If the provided `key` doesn't match an existing cache, a new cache is automatically created if the job completes successfully.
 | 
					> Note: You must use the `cache` action in your workflow before you need to use the files that might be restored from the cache. If the provided `key` matches an existing cache, a new cache is not created and if the provided `key` doesn't match an existing cache, a new cache is automatically created provided the job completes successfully.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Implementation Examples
 | 
					## Implementation Examples
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -152,7 +153,7 @@ A repository can have up to 10GB of caches. Once the 10GB limit is reached, olde
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Skipping steps based on cache-hit
 | 
					## Skipping steps based on cache-hit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Using the `cache-hit` output, subsequent steps (such as install or build) can be skipped when a cache hit occurs on the key.
 | 
					Using the `cache-hit` output, subsequent steps (such as install or build) can be skipped when a cache hit occurs on the key.  It is recommended to install the missing/updated dependencies in case of a partial key match when the key is dependent on the `hash` of the package file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Example:
 | 
					Example:
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								RELEASES.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								RELEASES.md
									
									
									
									
									
								
							@@ -28,7 +28,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### 3.0.8
 | 
					### 3.0.8
 | 
				
			||||||
- Fix zstd not working for windows on gnu tar in issues [#888](https://github.com/actions/cache/issues/888) and [#891](https://github.com/actions/cache/issues/891).
 | 
					- Fix zstd not working for windows on gnu tar in issues [#888](https://github.com/actions/cache/issues/888) and [#891](https://github.com/actions/cache/issues/891).
 | 
				
			||||||
- Allowing users to provide a custom timeout as input for aborting download of a cache segment using an environment variable `SEGMENT_DOWNLOAD_TIMEOUT_MIN`. Default is 60 minutes.
 | 
					- Allowing users to provide a custom timeout as input for aborting download of a cache segment using an environment variable `SEGMENT_DOWNLOAD_TIMEOUT_MINS`. Default is 60 minutes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 3.0.9
 | 
					### 3.0.9
 | 
				
			||||||
- Enhanced the warning message for cache unavailablity in case of GHES.
 | 
					- Enhanced the warning message for cache unavailablity in case of GHES.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 3.0.10
 | 
				
			||||||
 | 
					- Fix a bug with sorting inputs.
 | 
				
			||||||
 | 
					- Update definition for restore-keys in README.md
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 3.0.11
 | 
				
			||||||
 | 
					- Update toolkit version to 3.0.5 to include `@actions/core@^1.10.0`
 | 
				
			||||||
 | 
					- Update `@actions/cache` to use updated `saveState` and `setOutput` functions from `@actions/core@^1.10.0`
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										57
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										57
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							@@ -2954,13 +2954,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
 | 
				
			|||||||
    return result;
 | 
					    return result;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
					Object.defineProperty(exports, "__esModule", { value: true });
 | 
				
			||||||
exports.issueCommand = void 0;
 | 
					exports.prepareKeyValueMessage = exports.issueFileCommand = void 0;
 | 
				
			||||||
// We use any as a valid input type
 | 
					// We use any as a valid input type
 | 
				
			||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
 | 
					/* eslint-disable @typescript-eslint/no-explicit-any */
 | 
				
			||||||
const fs = __importStar(__webpack_require__(747));
 | 
					const fs = __importStar(__webpack_require__(747));
 | 
				
			||||||
const os = __importStar(__webpack_require__(87));
 | 
					const os = __importStar(__webpack_require__(87));
 | 
				
			||||||
 | 
					const uuid_1 = __webpack_require__(25);
 | 
				
			||||||
const utils_1 = __webpack_require__(82);
 | 
					const utils_1 = __webpack_require__(82);
 | 
				
			||||||
function issueCommand(command, message) {
 | 
					function issueFileCommand(command, message) {
 | 
				
			||||||
    const filePath = process.env[`GITHUB_${command}`];
 | 
					    const filePath = process.env[`GITHUB_${command}`];
 | 
				
			||||||
    if (!filePath) {
 | 
					    if (!filePath) {
 | 
				
			||||||
        throw new Error(`Unable to find environment variable for file command ${command}`);
 | 
					        throw new Error(`Unable to find environment variable for file command ${command}`);
 | 
				
			||||||
@@ -2972,7 +2973,22 @@ function issueCommand(command, message) {
 | 
				
			|||||||
        encoding: 'utf8'
 | 
					        encoding: 'utf8'
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.issueCommand = issueCommand;
 | 
					exports.issueFileCommand = issueFileCommand;
 | 
				
			||||||
 | 
					function prepareKeyValueMessage(key, value) {
 | 
				
			||||||
 | 
					    const delimiter = `ghadelimiter_${uuid_1.v4()}`;
 | 
				
			||||||
 | 
					    const convertedValue = utils_1.toCommandValue(value);
 | 
				
			||||||
 | 
					    // These should realistically never happen, but just in case someone finds a
 | 
				
			||||||
 | 
					    // way to exploit uuid generation let's not allow keys or values that contain
 | 
				
			||||||
 | 
					    // the delimiter.
 | 
				
			||||||
 | 
					    if (key.includes(delimiter)) {
 | 
				
			||||||
 | 
					        throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (convertedValue.includes(delimiter)) {
 | 
				
			||||||
 | 
					        throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.prepareKeyValueMessage = prepareKeyValueMessage;
 | 
				
			||||||
//# sourceMappingURL=file-command.js.map
 | 
					//# sourceMappingURL=file-command.js.map
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
@@ -40551,7 +40567,6 @@ const file_command_1 = __webpack_require__(102);
 | 
				
			|||||||
const utils_1 = __webpack_require__(82);
 | 
					const utils_1 = __webpack_require__(82);
 | 
				
			||||||
const os = __importStar(__webpack_require__(87));
 | 
					const os = __importStar(__webpack_require__(87));
 | 
				
			||||||
const path = __importStar(__webpack_require__(622));
 | 
					const path = __importStar(__webpack_require__(622));
 | 
				
			||||||
const uuid_1 = __webpack_require__(25);
 | 
					 | 
				
			||||||
const oidc_utils_1 = __webpack_require__(742);
 | 
					const oidc_utils_1 = __webpack_require__(742);
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * The code to exit an action
 | 
					 * The code to exit an action
 | 
				
			||||||
@@ -40581,20 +40596,9 @@ function exportVariable(name, val) {
 | 
				
			|||||||
    process.env[name] = convertedVal;
 | 
					    process.env[name] = convertedVal;
 | 
				
			||||||
    const filePath = process.env['GITHUB_ENV'] || '';
 | 
					    const filePath = process.env['GITHUB_ENV'] || '';
 | 
				
			||||||
    if (filePath) {
 | 
					    if (filePath) {
 | 
				
			||||||
        const delimiter = `ghadelimiter_${uuid_1.v4()}`;
 | 
					        return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));
 | 
				
			||||||
        // These should realistically never happen, but just in case someone finds a way to exploit uuid generation let's not allow keys or values that contain the delimiter.
 | 
					 | 
				
			||||||
        if (name.includes(delimiter)) {
 | 
					 | 
				
			||||||
            throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (convertedVal.includes(delimiter)) {
 | 
					 | 
				
			||||||
            throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;
 | 
					 | 
				
			||||||
        file_command_1.issueCommand('ENV', commandValue);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else {
 | 
					 | 
				
			||||||
        command_1.issueCommand('set-env', { name }, convertedVal);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    command_1.issueCommand('set-env', { name }, convertedVal);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.exportVariable = exportVariable;
 | 
					exports.exportVariable = exportVariable;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -40612,7 +40616,7 @@ exports.setSecret = setSecret;
 | 
				
			|||||||
function addPath(inputPath) {
 | 
					function addPath(inputPath) {
 | 
				
			||||||
    const filePath = process.env['GITHUB_PATH'] || '';
 | 
					    const filePath = process.env['GITHUB_PATH'] || '';
 | 
				
			||||||
    if (filePath) {
 | 
					    if (filePath) {
 | 
				
			||||||
        file_command_1.issueCommand('PATH', inputPath);
 | 
					        file_command_1.issueFileCommand('PATH', inputPath);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else {
 | 
					    else {
 | 
				
			||||||
        command_1.issueCommand('add-path', {}, inputPath);
 | 
					        command_1.issueCommand('add-path', {}, inputPath);
 | 
				
			||||||
@@ -40652,7 +40656,10 @@ function getMultilineInput(name, options) {
 | 
				
			|||||||
    const inputs = getInput(name, options)
 | 
					    const inputs = getInput(name, options)
 | 
				
			||||||
        .split('\n')
 | 
					        .split('\n')
 | 
				
			||||||
        .filter(x => x !== '');
 | 
					        .filter(x => x !== '');
 | 
				
			||||||
    return inputs;
 | 
					    if (options && options.trimWhitespace === false) {
 | 
				
			||||||
 | 
					        return inputs;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return inputs.map(input => input.trim());
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.getMultilineInput = getMultilineInput;
 | 
					exports.getMultilineInput = getMultilineInput;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -40685,8 +40692,12 @@ exports.getBooleanInput = getBooleanInput;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
					// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
				
			||||||
function setOutput(name, value) {
 | 
					function setOutput(name, value) {
 | 
				
			||||||
 | 
					    const filePath = process.env['GITHUB_OUTPUT'] || '';
 | 
				
			||||||
 | 
					    if (filePath) {
 | 
				
			||||||
 | 
					        return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    process.stdout.write(os.EOL);
 | 
					    process.stdout.write(os.EOL);
 | 
				
			||||||
    command_1.issueCommand('set-output', { name }, value);
 | 
					    command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.setOutput = setOutput;
 | 
					exports.setOutput = setOutput;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -40815,7 +40826,11 @@ exports.group = group;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
					// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
				
			||||||
function saveState(name, value) {
 | 
					function saveState(name, value) {
 | 
				
			||||||
    command_1.issueCommand('save-state', { name }, value);
 | 
					    const filePath = process.env['GITHUB_STATE'] || '';
 | 
				
			||||||
 | 
					    if (filePath) {
 | 
				
			||||||
 | 
					        return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.saveState = saveState;
 | 
					exports.saveState = saveState;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										57
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										57
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							@@ -2954,13 +2954,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
 | 
				
			|||||||
    return result;
 | 
					    return result;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
					Object.defineProperty(exports, "__esModule", { value: true });
 | 
				
			||||||
exports.issueCommand = void 0;
 | 
					exports.prepareKeyValueMessage = exports.issueFileCommand = void 0;
 | 
				
			||||||
// We use any as a valid input type
 | 
					// We use any as a valid input type
 | 
				
			||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
 | 
					/* eslint-disable @typescript-eslint/no-explicit-any */
 | 
				
			||||||
const fs = __importStar(__webpack_require__(747));
 | 
					const fs = __importStar(__webpack_require__(747));
 | 
				
			||||||
const os = __importStar(__webpack_require__(87));
 | 
					const os = __importStar(__webpack_require__(87));
 | 
				
			||||||
 | 
					const uuid_1 = __webpack_require__(25);
 | 
				
			||||||
const utils_1 = __webpack_require__(82);
 | 
					const utils_1 = __webpack_require__(82);
 | 
				
			||||||
function issueCommand(command, message) {
 | 
					function issueFileCommand(command, message) {
 | 
				
			||||||
    const filePath = process.env[`GITHUB_${command}`];
 | 
					    const filePath = process.env[`GITHUB_${command}`];
 | 
				
			||||||
    if (!filePath) {
 | 
					    if (!filePath) {
 | 
				
			||||||
        throw new Error(`Unable to find environment variable for file command ${command}`);
 | 
					        throw new Error(`Unable to find environment variable for file command ${command}`);
 | 
				
			||||||
@@ -2972,7 +2973,22 @@ function issueCommand(command, message) {
 | 
				
			|||||||
        encoding: 'utf8'
 | 
					        encoding: 'utf8'
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.issueCommand = issueCommand;
 | 
					exports.issueFileCommand = issueFileCommand;
 | 
				
			||||||
 | 
					function prepareKeyValueMessage(key, value) {
 | 
				
			||||||
 | 
					    const delimiter = `ghadelimiter_${uuid_1.v4()}`;
 | 
				
			||||||
 | 
					    const convertedValue = utils_1.toCommandValue(value);
 | 
				
			||||||
 | 
					    // These should realistically never happen, but just in case someone finds a
 | 
				
			||||||
 | 
					    // way to exploit uuid generation let's not allow keys or values that contain
 | 
				
			||||||
 | 
					    // the delimiter.
 | 
				
			||||||
 | 
					    if (key.includes(delimiter)) {
 | 
				
			||||||
 | 
					        throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (convertedValue.includes(delimiter)) {
 | 
				
			||||||
 | 
					        throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.prepareKeyValueMessage = prepareKeyValueMessage;
 | 
				
			||||||
//# sourceMappingURL=file-command.js.map
 | 
					//# sourceMappingURL=file-command.js.map
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
@@ -40551,7 +40567,6 @@ const file_command_1 = __webpack_require__(102);
 | 
				
			|||||||
const utils_1 = __webpack_require__(82);
 | 
					const utils_1 = __webpack_require__(82);
 | 
				
			||||||
const os = __importStar(__webpack_require__(87));
 | 
					const os = __importStar(__webpack_require__(87));
 | 
				
			||||||
const path = __importStar(__webpack_require__(622));
 | 
					const path = __importStar(__webpack_require__(622));
 | 
				
			||||||
const uuid_1 = __webpack_require__(25);
 | 
					 | 
				
			||||||
const oidc_utils_1 = __webpack_require__(742);
 | 
					const oidc_utils_1 = __webpack_require__(742);
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * The code to exit an action
 | 
					 * The code to exit an action
 | 
				
			||||||
@@ -40581,20 +40596,9 @@ function exportVariable(name, val) {
 | 
				
			|||||||
    process.env[name] = convertedVal;
 | 
					    process.env[name] = convertedVal;
 | 
				
			||||||
    const filePath = process.env['GITHUB_ENV'] || '';
 | 
					    const filePath = process.env['GITHUB_ENV'] || '';
 | 
				
			||||||
    if (filePath) {
 | 
					    if (filePath) {
 | 
				
			||||||
        const delimiter = `ghadelimiter_${uuid_1.v4()}`;
 | 
					        return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));
 | 
				
			||||||
        // These should realistically never happen, but just in case someone finds a way to exploit uuid generation let's not allow keys or values that contain the delimiter.
 | 
					 | 
				
			||||||
        if (name.includes(delimiter)) {
 | 
					 | 
				
			||||||
            throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (convertedVal.includes(delimiter)) {
 | 
					 | 
				
			||||||
            throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;
 | 
					 | 
				
			||||||
        file_command_1.issueCommand('ENV', commandValue);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else {
 | 
					 | 
				
			||||||
        command_1.issueCommand('set-env', { name }, convertedVal);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    command_1.issueCommand('set-env', { name }, convertedVal);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.exportVariable = exportVariable;
 | 
					exports.exportVariable = exportVariable;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -40612,7 +40616,7 @@ exports.setSecret = setSecret;
 | 
				
			|||||||
function addPath(inputPath) {
 | 
					function addPath(inputPath) {
 | 
				
			||||||
    const filePath = process.env['GITHUB_PATH'] || '';
 | 
					    const filePath = process.env['GITHUB_PATH'] || '';
 | 
				
			||||||
    if (filePath) {
 | 
					    if (filePath) {
 | 
				
			||||||
        file_command_1.issueCommand('PATH', inputPath);
 | 
					        file_command_1.issueFileCommand('PATH', inputPath);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else {
 | 
					    else {
 | 
				
			||||||
        command_1.issueCommand('add-path', {}, inputPath);
 | 
					        command_1.issueCommand('add-path', {}, inputPath);
 | 
				
			||||||
@@ -40652,7 +40656,10 @@ function getMultilineInput(name, options) {
 | 
				
			|||||||
    const inputs = getInput(name, options)
 | 
					    const inputs = getInput(name, options)
 | 
				
			||||||
        .split('\n')
 | 
					        .split('\n')
 | 
				
			||||||
        .filter(x => x !== '');
 | 
					        .filter(x => x !== '');
 | 
				
			||||||
    return inputs;
 | 
					    if (options && options.trimWhitespace === false) {
 | 
				
			||||||
 | 
					        return inputs;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return inputs.map(input => input.trim());
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.getMultilineInput = getMultilineInput;
 | 
					exports.getMultilineInput = getMultilineInput;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -40685,8 +40692,12 @@ exports.getBooleanInput = getBooleanInput;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
					// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
				
			||||||
function setOutput(name, value) {
 | 
					function setOutput(name, value) {
 | 
				
			||||||
 | 
					    const filePath = process.env['GITHUB_OUTPUT'] || '';
 | 
				
			||||||
 | 
					    if (filePath) {
 | 
				
			||||||
 | 
					        return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    process.stdout.write(os.EOL);
 | 
					    process.stdout.write(os.EOL);
 | 
				
			||||||
    command_1.issueCommand('set-output', { name }, value);
 | 
					    command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.setOutput = setOutput;
 | 
					exports.setOutput = setOutput;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -40815,7 +40826,11 @@ exports.group = group;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
					// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
				
			||||||
function saveState(name, value) {
 | 
					function saveState(name, value) {
 | 
				
			||||||
    command_1.issueCommand('save-state', { name }, value);
 | 
					    const filePath = process.env['GITHUB_STATE'] || '';
 | 
				
			||||||
 | 
					    if (filePath) {
 | 
				
			||||||
 | 
					        return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.saveState = saveState;
 | 
					exports.saveState = saveState;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										36
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										36
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -1,16 +1,16 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "cache",
 | 
					  "name": "cache",
 | 
				
			||||||
  "version": "3.0.9",
 | 
					  "version": "3.0.11",
 | 
				
			||||||
  "lockfileVersion": 2,
 | 
					  "lockfileVersion": 2,
 | 
				
			||||||
  "requires": true,
 | 
					  "requires": true,
 | 
				
			||||||
  "packages": {
 | 
					  "packages": {
 | 
				
			||||||
    "": {
 | 
					    "": {
 | 
				
			||||||
      "name": "cache",
 | 
					      "name": "cache",
 | 
				
			||||||
      "version": "3.0.9",
 | 
					      "version": "3.0.11",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@actions/cache": "^3.0.4",
 | 
					        "@actions/cache": "^3.0.5",
 | 
				
			||||||
        "@actions/core": "^1.9.1",
 | 
					        "@actions/core": "^1.10.0",
 | 
				
			||||||
        "@actions/exec": "^1.1.1",
 | 
					        "@actions/exec": "^1.1.1",
 | 
				
			||||||
        "@actions/io": "^1.1.2"
 | 
					        "@actions/io": "^1.1.2"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@@ -36,11 +36,11 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@actions/cache": {
 | 
					    "node_modules/@actions/cache": {
 | 
				
			||||||
      "version": "3.0.4",
 | 
					      "version": "3.0.5",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.5.tgz",
 | 
				
			||||||
      "integrity": "sha512-9RwVL8/ISJoYWFNH1wR/C26E+M3HDkGPWmbFJMMCKwTkjbNZJreMT4XaR/EB1bheIvN4PREQxEQQVJ18IPnf/Q==",
 | 
					      "integrity": "sha512-0WpPmwnRPkn5k5ASmjoX8bY8NrZEPTwN+64nGYJmR/bHjEVgC8svdf5K956wi67tNJBGJky2+UfvNbUOtHmMHg==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@actions/core": "^1.2.6",
 | 
					        "@actions/core": "^1.10.0",
 | 
				
			||||||
        "@actions/exec": "^1.0.1",
 | 
					        "@actions/exec": "^1.0.1",
 | 
				
			||||||
        "@actions/glob": "^0.1.0",
 | 
					        "@actions/glob": "^0.1.0",
 | 
				
			||||||
        "@actions/http-client": "^2.0.1",
 | 
					        "@actions/http-client": "^2.0.1",
 | 
				
			||||||
@@ -52,9 +52,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@actions/core": {
 | 
					    "node_modules/@actions/core": {
 | 
				
			||||||
      "version": "1.9.1",
 | 
					      "version": "1.10.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==",
 | 
					      "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@actions/http-client": "^2.0.1",
 | 
					        "@actions/http-client": "^2.0.1",
 | 
				
			||||||
        "uuid": "^8.3.2"
 | 
					        "uuid": "^8.3.2"
 | 
				
			||||||
@@ -9534,11 +9534,11 @@
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "@actions/cache": {
 | 
					    "@actions/cache": {
 | 
				
			||||||
      "version": "3.0.4",
 | 
					      "version": "3.0.5",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.5.tgz",
 | 
				
			||||||
      "integrity": "sha512-9RwVL8/ISJoYWFNH1wR/C26E+M3HDkGPWmbFJMMCKwTkjbNZJreMT4XaR/EB1bheIvN4PREQxEQQVJ18IPnf/Q==",
 | 
					      "integrity": "sha512-0WpPmwnRPkn5k5ASmjoX8bY8NrZEPTwN+64nGYJmR/bHjEVgC8svdf5K956wi67tNJBGJky2+UfvNbUOtHmMHg==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "@actions/core": "^1.2.6",
 | 
					        "@actions/core": "^1.10.0",
 | 
				
			||||||
        "@actions/exec": "^1.0.1",
 | 
					        "@actions/exec": "^1.0.1",
 | 
				
			||||||
        "@actions/glob": "^0.1.0",
 | 
					        "@actions/glob": "^0.1.0",
 | 
				
			||||||
        "@actions/http-client": "^2.0.1",
 | 
					        "@actions/http-client": "^2.0.1",
 | 
				
			||||||
@@ -9550,9 +9550,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "@actions/core": {
 | 
					    "@actions/core": {
 | 
				
			||||||
      "version": "1.9.1",
 | 
					      "version": "1.10.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==",
 | 
					      "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "@actions/http-client": "^2.0.1",
 | 
					        "@actions/http-client": "^2.0.1",
 | 
				
			||||||
        "uuid": "^8.3.2"
 | 
					        "uuid": "^8.3.2"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "cache",
 | 
					  "name": "cache",
 | 
				
			||||||
  "version": "3.0.9",
 | 
					  "version": "3.0.11",
 | 
				
			||||||
  "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,8 +23,8 @@
 | 
				
			|||||||
  "author": "GitHub",
 | 
					  "author": "GitHub",
 | 
				
			||||||
  "license": "MIT",
 | 
					  "license": "MIT",
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "@actions/cache": "^3.0.4",
 | 
					    "@actions/cache": "^3.0.5",
 | 
				
			||||||
    "@actions/core": "^1.9.1",
 | 
					    "@actions/core": "^1.10.0",
 | 
				
			||||||
    "@actions/exec": "^1.1.1",
 | 
					    "@actions/exec": "^1.1.1",
 | 
				
			||||||
    "@actions/io": "^1.1.2"
 | 
					    "@actions/io": "^1.1.2"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
@@ -48,4 +48,4 @@
 | 
				
			|||||||
    "ts-jest": "^28.0.2",
 | 
					    "ts-jest": "^28.0.2",
 | 
				
			||||||
    "typescript": "^4.6.4"
 | 
					    "typescript": "^4.6.4"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user