From 4a28cbc0544512425977dda4ce81a9b6f0f34ad9 Mon Sep 17 00:00:00 2001
From: "P. Ottlinger" <ottlinger@users.noreply.github.com>
Date: Mon, 29 Jul 2024 22:07:30 +0200
Subject: [PATCH 1/3] Update README.md and use v4 of checkout action (#1437)

Update examples to use latest available checkout action v4.
---
 README.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index d1d2aef..3da1ae0 100644
--- a/README.md
+++ b/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

From e47d9f9ec8be3ac771b0b03c8e50f86e1c2fdea8 Mon Sep 17 00:00:00 2001
From: "Oleg A." <t0rr@mail.ru>
Date: Wed, 31 Jul 2024 19:52:21 +0300
Subject: [PATCH 2/3] Explicit use bash for Windows (#1377)

Co-authored-by: Josh Gross <joshmgross@github.com>
---
 examples.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/examples.md b/examples.md
index 1bcde91..2a49996 100644
--- a/examples.md
+++ b/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
 

From 40c3b67b2955d93d83b27ed164edd0756bc24049 Mon Sep 17 00:00:00 2001
From: r4mimu <52129983+fchimpan@users.noreply.github.com>
Date: Thu, 1 Aug 2024 01:56:48 +0900
Subject: [PATCH 3/3] Fix cache-hit output when cache missed (#1404)

* fix: cache-hit output

* fix: Output chache hit timing

* fix: Output chache hit timing

---------

Co-authored-by: Josh Gross <joshmgross@github.com>
---
 __tests__/restore.test.ts     | 2 +-
 __tests__/restoreOnly.test.ts | 3 ++-
 dist/restore-only/index.js    | 1 +
 dist/restore/index.js         | 1 +
 src/restoreImpl.ts            | 2 +-
 5 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/__tests__/restore.test.ts b/__tests__/restore.test.ts
index 250f7ef..9b066eb 100644
--- a/__tests__/restore.test.ts
+++ b/__tests__/restore.test.ts
@@ -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}`
diff --git a/__tests__/restoreOnly.test.ts b/__tests__/restoreOnly.test.ts
index 81e5bca..840307d 100644
--- a/__tests__/restoreOnly.test.ts
+++ b/__tests__/restoreOnly.test.ts
@@ -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(
diff --git a/dist/restore-only/index.js b/dist/restore-only/index.js
index 9a59ac0..d2f3631 100644
--- a/dist/restore-only/index.js
+++ b/dist/restore-only/index.js
@@ -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}`);
                 }
diff --git a/dist/restore/index.js b/dist/restore/index.js
index 03a12b5..842eaa6 100644
--- a/dist/restore/index.js
+++ b/dist/restore/index.js
@@ -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}`);
                 }
diff --git a/src/restoreImpl.ts b/src/restoreImpl.ts
index 74a366d..bb302ac 100644
--- a/src/restoreImpl.ts
+++ b/src/restoreImpl.ts
@@ -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;
         }