mirror of
https://github.com/actions/cache.git
synced 2026-06-27 15:37:59 +00:00
Compare commits
7 Commits
f555f47740
...
4453a15b47
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4453a15b47 | ||
|
|
0c45773b62 | ||
|
|
8a55f839aa | ||
|
|
3884cace14 | ||
|
|
e29dad3e36 | ||
|
|
59284659c6 | ||
|
|
79aefb1c78 |
@ -1,5 +1,9 @@
|
||||
# Releases
|
||||
|
||||
### 4.0.2
|
||||
|
||||
- Fixed restore `fail-on-cache-miss` not working.
|
||||
|
||||
### 4.0.1
|
||||
|
||||
- Updated `isGhes` check
|
||||
|
||||
@ -449,3 +449,19 @@ test("restore with lookup-only set", async () => {
|
||||
);
|
||||
expect(failedMock).toHaveBeenCalledTimes(0);
|
||||
});
|
||||
|
||||
test("restore failure with earlyExit should call process exit", async () => {
|
||||
testUtils.setInput(Inputs.Path, "node_modules");
|
||||
const failedMock = jest.spyOn(core, "setFailed");
|
||||
const restoreCacheMock = jest.spyOn(cache, "restoreCache");
|
||||
const processExitMock = jest.spyOn(process, "exit").mockImplementation();
|
||||
|
||||
// call restoreImpl with `earlyExit` set to true
|
||||
await restoreImpl(new StateProvider(), true);
|
||||
|
||||
expect(restoreCacheMock).toHaveBeenCalledTimes(0);
|
||||
expect(failedMock).toHaveBeenCalledWith(
|
||||
"Input required and not supplied: key"
|
||||
);
|
||||
expect(processExitMock).toHaveBeenCalledWith(1);
|
||||
});
|
||||
|
||||
15
dist/restore-only/index.js
vendored
15
dist/restore-only/index.js
vendored
@ -59392,7 +59392,7 @@ const core = __importStar(__nccwpck_require__(2186));
|
||||
const constants_1 = __nccwpck_require__(9042);
|
||||
const stateProvider_1 = __nccwpck_require__(1527);
|
||||
const utils = __importStar(__nccwpck_require__(6850));
|
||||
function restoreImpl(stateProvider) {
|
||||
function restoreImpl(stateProvider, earlyExit) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
if (!utils.isCacheFeatureAvailable()) {
|
||||
@ -59438,21 +59438,16 @@ function restoreImpl(stateProvider) {
|
||||
}
|
||||
catch (error) {
|
||||
core.setFailed(error.message);
|
||||
if (earlyExit) {
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.restoreImpl = restoreImpl;
|
||||
function run(stateProvider, earlyExit) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
yield restoreImpl(stateProvider);
|
||||
}
|
||||
catch (err) {
|
||||
console.error(err);
|
||||
if (earlyExit) {
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
yield restoreImpl(stateProvider, earlyExit);
|
||||
// node will stay alive if any promises are not resolved,
|
||||
// which is a possibility if HTTP requests are dangling
|
||||
// due to retries or timeouts. We know that if we got here
|
||||
|
||||
15
dist/restore/index.js
vendored
15
dist/restore/index.js
vendored
@ -59392,7 +59392,7 @@ const core = __importStar(__nccwpck_require__(2186));
|
||||
const constants_1 = __nccwpck_require__(9042);
|
||||
const stateProvider_1 = __nccwpck_require__(1527);
|
||||
const utils = __importStar(__nccwpck_require__(6850));
|
||||
function restoreImpl(stateProvider) {
|
||||
function restoreImpl(stateProvider, earlyExit) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
if (!utils.isCacheFeatureAvailable()) {
|
||||
@ -59438,21 +59438,16 @@ function restoreImpl(stateProvider) {
|
||||
}
|
||||
catch (error) {
|
||||
core.setFailed(error.message);
|
||||
if (earlyExit) {
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.restoreImpl = restoreImpl;
|
||||
function run(stateProvider, earlyExit) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
yield restoreImpl(stateProvider);
|
||||
}
|
||||
catch (err) {
|
||||
console.error(err);
|
||||
if (earlyExit) {
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
yield restoreImpl(stateProvider, earlyExit);
|
||||
// node will stay alive if any promises are not resolved,
|
||||
// which is a possibility if HTTP requests are dangling
|
||||
// due to retries or timeouts. We know that if we got here
|
||||
|
||||
27
examples.md
27
examples.md
@ -5,16 +5,19 @@
|
||||
- [D - DUB](#d---dub)
|
||||
- [POSIX](#posix)
|
||||
- [Windows](#windows)
|
||||
- [Dart](#dart)
|
||||
- [Linux / Macos](#linux--macos)
|
||||
- [Windows](#windows-1)
|
||||
- [Deno](#deno)
|
||||
- [Linux](#linux)
|
||||
- [macOS](#macos)
|
||||
- [Windows](#windows-1)
|
||||
- [Windows](#windows-2)
|
||||
- [Elixir - Mix](#elixir---mix)
|
||||
- [Erlang - Rebar3](#erlang--rebar3)
|
||||
- [Go - Modules](#go---modules)
|
||||
- [Linux](#linux-1)
|
||||
- [macOS](#macos-1)
|
||||
- [Windows](#windows-2)
|
||||
- [Windows](#windows-3)
|
||||
- [Haskell - Cabal](#haskell---cabal)
|
||||
- [Haskell - Stack](#haskell---stack)
|
||||
- [Java - Gradle](#java---gradle)
|
||||
@ -119,6 +122,26 @@ steps:
|
||||
restore-keys: |
|
||||
${{ runner.os }}-dub-
|
||||
```
|
||||
## Dart
|
||||
|
||||
### Linux / Macos
|
||||
```yaml
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.pub-cache/
|
||||
key: ${{ runner.os }}-dart-${{ hashFiles('**/pubspec.lock') }}
|
||||
```
|
||||
|
||||
### Windows
|
||||
On windows the global package cache is located at `%LOCALAPPDATA%\Pub\Cache` but may vary due to different windows version. Refer to the [docs](https://dart.dev/tools/pub/cmd/pub-get#the-system-package-cache)
|
||||
```yaml
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/AppData/Local/Pub/Cache/
|
||||
key: ${{ runner.os }}-dart-${{ hashFiles('**/pubspec.lock') }}
|
||||
```
|
||||
|
||||
## Deno
|
||||
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "cache",
|
||||
"version": "4.0.1",
|
||||
"version": "4.0.2",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "cache",
|
||||
"version": "4.0.1",
|
||||
"version": "4.0.2",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/cache": "^3.2.3",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cache",
|
||||
"version": "4.0.1",
|
||||
"version": "4.0.2",
|
||||
"private": true,
|
||||
"description": "Cache dependencies and build outputs",
|
||||
"main": "dist/restore/index.js",
|
||||
|
||||
@ -10,7 +10,8 @@ import {
|
||||
import * as utils from "./utils/actionUtils";
|
||||
|
||||
export async function restoreImpl(
|
||||
stateProvider: IStateProvider
|
||||
stateProvider: IStateProvider,
|
||||
earlyExit?: boolean | undefined
|
||||
): Promise<string | undefined> {
|
||||
try {
|
||||
if (!utils.isCacheFeatureAvailable()) {
|
||||
@ -83,6 +84,9 @@ export async function restoreImpl(
|
||||
return cacheKey;
|
||||
} catch (error: unknown) {
|
||||
core.setFailed((error as Error).message);
|
||||
if (earlyExit) {
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -90,14 +94,7 @@ async function run(
|
||||
stateProvider: IStateProvider,
|
||||
earlyExit: boolean | undefined
|
||||
): Promise<void> {
|
||||
try {
|
||||
await restoreImpl(stateProvider);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
if (earlyExit) {
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
await restoreImpl(stateProvider, earlyExit);
|
||||
|
||||
// node will stay alive if any promises are not resolved,
|
||||
// which is a possibility if HTTP requests are dangling
|
||||
|
||||
Loading…
Reference in New Issue
Block a user