前提
Github Actionsを使いキャッシュを作成するメリットについて、Github Docsには以下の記載がある
GitHub ホステッド ランナー上のジョブは、クリーンなランナー イメージで開始されますが、依存関係を毎回ダウンロードする必要があるため、ネットワークの利用率が増大し、実行時間が長くなり、コストが高くなります。
自分の所属している企業でもテストを書く文化が根付いてきており、それに伴いテスト実行時間が無料枠である月2000分を超えてくることが度々生じてきました
その一環として自分もキャッシュを利用してcomposerでインストールされるファイル一式をキャッシュとして保存し、開発者の時間と無料枠の節約を行おうと思い導入していましたが(15~25秒の節約)、タイトルにもある"Cache not found for input keys"というエラーが吐かれてしました
吐き出されたエラー
actions/cache@v3というアクションを使用してしていたのですが以下のようなエラーが吐かれていました
原因と解決策
答えは公式ドキュメントに書かれていました
ジョブが正常に完了すると、アクションは path ディレクトリのコンテンツを含んだ新しいキャッシュを自動的に作成します。
つまりジョブが正常に完了しなければ、キャッシュを作成しないということです
今回の場合は先ほどの画像を見ても分かる通り、"Run PHPUnit"が失敗しているためジョブが正常に完了しておらず、その後の"Post Cache composer dependencies"の処理がスキップされています
その結果キャッシュが保存されないため、次回の実行でもキャッシュが見つからなくなっていました
適切にキャッシュが保存された場合にはこの"Post Cache composer dependencies"のなかで、"Cache saved successfully"と出力されます