mirror of
https://github.com/actions/cache.git
synced 2026-07-03 02:52:03 +00:00
Compare commits
5 Commits
ba78c8173d
...
48e36b77ba
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
48e36b77ba | ||
|
|
40c3b67b29 | ||
|
|
e47d9f9ec8 | ||
|
|
4a28cbc054 | ||
|
|
75e8752022 |
10
README.md
10
README.md
@ -91,7 +91,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Cache Primes
|
||||
id: cache-primes
|
||||
@ -122,7 +122,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Restore cached Primes
|
||||
id: cache-primes-restore
|
||||
@ -229,7 +229,7 @@ Example:
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/cache@v4
|
||||
id: cache
|
||||
@ -259,7 +259,7 @@ jobs:
|
||||
build-linux:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Cache Primes
|
||||
id: cache-primes
|
||||
@ -286,7 +286,7 @@ jobs:
|
||||
build-windows:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Cache Primes
|
||||
id: cache-primes
|
||||
|
||||
@ -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(0);
|
||||
expect(setCacheHitOutputMock).toHaveBeenCalledTimes(1);
|
||||
|
||||
expect(failedMock).toHaveBeenCalledWith(
|
||||
`Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${key}`
|
||||
|
||||
@ -86,7 +86,8 @@ test("restore with no cache found", async () => {
|
||||
);
|
||||
|
||||
expect(outputMock).toHaveBeenCalledWith("cache-primary-key", key);
|
||||
expect(outputMock).toHaveBeenCalledTimes(1);
|
||||
expect(outputMock).toHaveBeenCalledWith("cache-hit", "false");
|
||||
expect(outputMock).toHaveBeenCalledTimes(2);
|
||||
expect(failedMock).toHaveBeenCalledTimes(0);
|
||||
|
||||
expect(infoMock).toHaveBeenCalledWith(
|
||||
|
||||
1
dist/restore-only/index.js
vendored
1
dist/restore-only/index.js
vendored
@ -59415,6 +59415,7 @@ 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());
|
||||
if (failOnCacheMiss) {
|
||||
throw new Error(`Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}`);
|
||||
}
|
||||
|
||||
1
dist/restore/index.js
vendored
1
dist/restore/index.js
vendored
@ -59415,6 +59415,7 @@ 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());
|
||||
if (failOnCacheMiss) {
|
||||
throw new Error(`Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}`);
|
||||
}
|
||||
|
||||
70
examples.md
70
examples.md
@ -513,6 +513,7 @@ jobs:
|
||||
```yaml
|
||||
- name: Get pip cache dir
|
||||
id: pip-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
|
||||
|
||||
@ -599,6 +600,75 @@ whenever possible:
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
```
|
||||
|
||||
### Multiple OS with a build matrix
|
||||
|
||||
```yml
|
||||
name: CI
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
tests:
|
||||
name: Test ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
include:
|
||||
- os: ubuntu-latest
|
||||
SEP: /
|
||||
PIP_WHEELS_DIR: ~/.cache/pip
|
||||
CARGO_INDEX_DIR: ~/.cargo/git
|
||||
CARGO_REGISTRY_DIR: ~/.cargo/registry
|
||||
|
||||
- os: macos-latest
|
||||
SEP: /
|
||||
PIP_WHEELS_DIR: ~/Library/Caches/pip
|
||||
CARGO_INDEX_DIR: ~/.cargo/git
|
||||
CARGO_REGISTRY_DIR: ~/.cargo/registry
|
||||
|
||||
- os: windows-latest
|
||||
SEP: \
|
||||
PIP_WHEELS_DIR: ~\AppData\Local\pip\Cache
|
||||
CARGO_INDEX_DIR: C:\Rust\.cargo\git
|
||||
CARGO_REGISTRY_DIR: C:\Rust\.cargo\registry
|
||||
|
||||
# Keep running all matrices if something fail
|
||||
fail-fast: false
|
||||
|
||||
steps:
|
||||
- name: Cache pip wheels
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ matrix.PIP_WHEELS_DIR }}
|
||||
key: ${{ runner.os }}-pip-wheels-${{ hashFiles('**/requirements.txt') }}-${{ hashFiles('**/setup.py') }}-14-
|
||||
|
||||
- name: Cache cargo index
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ matrix.CARGO_INDEX_DIR }}
|
||||
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.toml') }}-14-
|
||||
|
||||
- name: Cache cargo registry
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ matrix.CARGO_REGISTRY_DIR }}
|
||||
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.toml') }}-14-
|
||||
|
||||
- name: Cache cargo target
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ github.workspace }}${{ matrix.SEP }}target
|
||||
key: ${{ runner.os }}-cargo-target-${{ hashFiles('**/Cargo.toml') }}-14-
|
||||
|
||||
- name: Run on Windows
|
||||
if: matrix.os == 'windows-latest'
|
||||
run: echo Windows
|
||||
|
||||
- name: Run on Linux
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: echo Linux
|
||||
```
|
||||
|
||||
## Scala - SBT
|
||||
|
||||
```yaml
|
||||
|
||||
@ -51,6 +51,7 @@ export async function restoreImpl(
|
||||
);
|
||||
|
||||
if (!cacheKey) {
|
||||
core.setOutput(Outputs.CacheHit, false.toString());
|
||||
if (failOnCacheMiss) {
|
||||
throw new Error(
|
||||
`Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}`
|
||||
@ -62,7 +63,6 @@ export async function restoreImpl(
|
||||
...restoreKeys
|
||||
].join(", ")}`
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user