mirror of https://github.com/actions/cache.git
Compare commits
3 Commits
fd0a7c7857
...
1ae9b6cf71
Author | SHA1 | Date |
---|---|---|
Michael Vorburger | 1ae9b6cf71 | |
Josh Gross | 3624ceb22c | |
Michael Vorburger | 028d01341f |
|
@ -64,9 +64,9 @@ If you are using a `self-hosted` Windows runner, `GNU tar` and `zstd` are requir
|
|||
|
||||
### Outputs
|
||||
|
||||
* `cache-hit` - A boolean value to indicate an exact match was found for the 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`.
|
||||
* `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`.
|
||||
* 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
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
# Releases
|
||||
|
||||
### 4.1.1
|
||||
- Restore original behavior of `cache-hit` output - [#1467](https://github.com/actions/cache/pull/1467)
|
||||
|
||||
### 4.1.0
|
||||
- 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)
|
||||
|
|
|
@ -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(setCacheHitOutputMock).toHaveBeenCalledTimes(1);
|
||||
expect(setCacheHitOutputMock).toHaveBeenCalledTimes(0);
|
||||
|
||||
expect(failedMock).toHaveBeenCalledWith(
|
||||
`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-hit", "false");
|
||||
expect(outputMock).toHaveBeenCalledTimes(2);
|
||||
expect(outputMock).toHaveBeenCalledTimes(1);
|
||||
expect(failedMock).toHaveBeenCalledTimes(0);
|
||||
|
||||
expect(infoMock).toHaveBeenCalledWith(
|
||||
|
|
|
@ -59415,7 +59415,8 @@ function restoreImpl(stateProvider, earlyExit) {
|
|||
const lookupOnly = utils.getInputAsBool(constants_1.Inputs.LookupOnly);
|
||||
const cacheKey = yield cache.restoreCache(cachePaths, primaryKey, restoreKeys, { lookupOnly: lookupOnly }, enableCrossOsArchive);
|
||||
if (!cacheKey) {
|
||||
core.setOutput(constants_1.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) {
|
||||
throw new Error(`Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}`);
|
||||
}
|
||||
|
|
|
@ -59415,7 +59415,8 @@ function restoreImpl(stateProvider, earlyExit) {
|
|||
const lookupOnly = utils.getInputAsBool(constants_1.Inputs.LookupOnly);
|
||||
const cacheKey = yield cache.restoreCache(cachePaths, primaryKey, restoreKeys, { lookupOnly: lookupOnly }, enableCrossOsArchive);
|
||||
if (!cacheKey) {
|
||||
core.setOutput(constants_1.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) {
|
||||
throw new Error(`Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}`);
|
||||
}
|
||||
|
|
33
examples.md
33
examples.md
|
@ -39,6 +39,7 @@
|
|||
- [Swift, Objective-C - CocoaPods](#swift-objective-c---cocoapods)
|
||||
- [Swift - Swift Package Manager](#swift---swift-package-manager)
|
||||
- [Swift - Mint](#swift---mint)
|
||||
- [* - ASDF](#---asdf)
|
||||
- [* - Bazel](#---bazel)
|
||||
|
||||
## C# - NuGet
|
||||
|
@ -660,6 +661,38 @@ steps:
|
|||
${{ runner.os }}-mint-
|
||||
```
|
||||
|
||||
## * - ASDF
|
||||
|
||||
[ASDF](https://asdf-vm.com), see [#235](https://github.com/asdf-vm/actions/issues/235):
|
||||
|
||||
```yaml
|
||||
- name: Setup ASDF itself
|
||||
uses: asdf-vm/actions/setup@v3
|
||||
|
||||
- name: Cache ASDF
|
||||
uses: actions/cache@v4
|
||||
id: asdf-cache
|
||||
with:
|
||||
# https://github.com/asdf-vm/asdf/blob/master/.gitignore
|
||||
path: |
|
||||
~/.asdf/installs
|
||||
~/.asdf/plugins
|
||||
~/.asdf/shims
|
||||
key: ${{ runner.os }}-asdf-tools-${{ hashFiles('.tool-versions') }}
|
||||
restore-keys: ${{ runner.os }}-asdf-tools-
|
||||
|
||||
- name: Install ASDF plugins
|
||||
uses: asdf-vm/actions/install@v3
|
||||
# See https://github.com/asdf-vm/actions/issues/445
|
||||
if: ${{ steps.asdf-cache.outputs.cache-hit != 'true' }}
|
||||
with:
|
||||
asdf_branch: v0.14.0
|
||||
|
||||
- name: Reshim installed ASDF tools
|
||||
shell: bash
|
||||
run: asdf reshim
|
||||
```
|
||||
|
||||
## * - Bazel
|
||||
|
||||
[`bazelisk`](https://github.com/bazelbuild/bazelisk) does not have be to separately downloaded and installed because it's already included in GitHub's `ubuntu-latest` and `macos-latest` base images.
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "cache",
|
||||
"version": "4.1.0",
|
||||
"version": "4.1.1",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "cache",
|
||||
"version": "4.1.0",
|
||||
"version": "4.1.1",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/cache": "^3.2.3",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "cache",
|
||||
"version": "4.1.0",
|
||||
"version": "4.1.1",
|
||||
"private": true,
|
||||
"description": "Cache dependencies and build outputs",
|
||||
"main": "dist/restore/index.js",
|
||||
|
|
|
@ -51,7 +51,9 @@ export async function restoreImpl(
|
|||
);
|
||||
|
||||
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) {
|
||||
throw new Error(
|
||||
`Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}`
|
||||
|
|
Loading…
Reference in New Issue