Commit Graph

6 Commits (dbb7d1f4bd5bf4744a09d6c14cf76de4d8ad04bf)

Author SHA1 Message Date
Jasperhino dbb7d1f4bd fix: always land in GCS, backfill GitHub hits, remember paths for the post step
Three gaps let a cache key live only in the GitHub cache with GCS
configured, and one of them stopped the pnpm store (1.6 GB) from ever
reaching GCS in cula-platform:

- A hit served by the GitHub fallback counted as an exact match, so the
  post step never saved it. Once GCS missed a key a single time, the
  GitHub copy satisfied every later job and GCS never got the key.
  Restore now records which backend answered (State.CacheSource); on a
  GitHub hit the save writes the entry to GCS, without a second GitHub
  save that would only fail on the existing entry.

- The post step of an action nested inside composite actions cannot see
  sibling step outputs, so `path: ${{ steps.x.outputs.y }}` arrived empty
  there ("Input required and not supplied: path") and the save was
  skipped. Restore now records the resolved paths (State.CachePaths) and
  the save falls back to them when the input is empty.

- saveCache logged "falling back to GitHub cache" on an empty GCS result
  and then returned without doing so. The fallback now runs in both the
  empty-result and the thrown-error case, unless the caller opted out.

The restore/save tests mocked core.getState with positional
mockImplementationOnce chains that depended on the number and order of
reads (and leaked across tests); they are keyed by state name now.

dist/ rebuilt with `npm run build`.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y5UfALF3nKcwCLWPikbnJn
6 days ago
Jasperhino d751c19fb0 Add GCS cache backend with GitHub fallback
Port GCS support from danySam/gcs-cache. When gcs-bucket input is set,
cache to Google Cloud Storage via Application Default Credentials; else
fall back to GitHub's cache service transparently.

- New inputs: gcs-bucket, gcs-path-prefix (default: github-cache)
- New src/utils/gcsCache.ts wraps @actions/cache restore/save
- restoreImpl/saveImpl swap @actions/cache import for local wrapper
- Adds @google-cloud/storage ^7.16.0, bumps typescript to ^5.8.3
- Regenerated dist/ via npm run build

Skipped: upstream workflow removals, README/examples/RELEASES churn,
licensed/codeql config, GCS integration-test workflow.
5 months ago
Tatyana Kostromskaya e71876755e Fix format 3 years ago
Tatyana Kostromskaya 01229828ff Apply workaround for earlyExit 3 years ago
Sampark Sharma 6fd2d4538c
Add support to opt-in enable cross-os caching on windows (#1056)
* Add support to opt-in enable cross-os caching on windows

* Fix tests

* Address review comments and update tests

* Fix tests

* Address review comments

* Address review comments
4 years ago
Sankalp Kotewar c17f4bf466
GA for granular cache (#1035)
* Add example for Haskell Stack

* Revert "Add example for Haskell Stack"

* Basic implementation

* Updated variable name

* Adding wrapper class

* Changed logs to warnings

* added debug logs

* experimenting

* Test

* test

* new try

* test

* Impl separated

* Reverted wrapper changes

* Added test cases

* Some cleanup

* Formatted document

* Fixed test cases issues

* Slight modification for test cases check

* Updated new actions' input descriptions

* Reverted custom asks implemented and added wrapper

* refactor into a generic outputter

* Readme draft for new actions

* Generated dist

* Fixed breaking test case

* Removed return type in promise

* Removed commented lines

* Calling methods from same file

* dist

* update save as well

* fix merge

* Changes for beta release

* Update dist folder

* Fixed formatting

* dist

* Add support for gzip fallback for restore of old cache on windows

* Fixed test cases

* Fixed test cases

* Added restore only and save only test cases

* Updated new actions dist files

* Removed comments

* Fixed inputs

* Renamed variables and added tests

* Fixed breaking test case

* Fixed review comments and tests

* added stateprovider changes

* Deleted stateprovider tests until added

* Added stateprovider test cases

* Fixed breaking test case

* Updated outputs of restore action

* Changes for beta release

* Update dist folder

* Add support for gzip fallback for restore of old cache on windows

* update for new beta release

* Update save/action.yml

Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>

* Update restore/action.yml

Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>

* Update restore/action.yml

Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>

* Update restore/action.yml

Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>

* Update restore/action.yml

Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>

* Added more assertions as values can't be checked

* Removed unused code

* Merged beta branch and resolved conflicts

* Added save readme

* Updates to save readme

* Renamed output

* Added cache hit info in readme

* Update restore/README.md

Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>

* Update restore/README.md

Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>

* Update restore/README.md

Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>

* Update save/README.md

Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>

* Update save/README.md

Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>

* Removed verbose statements

* Repositioned new actions introduction

* Added test case for restore state

* Addressed review comments

* nit

* nit: added language to code blocks

* Updated beta version to 3.2.0-beta.1

* Added stateprovider mock implementations

* Linting errors fixed

* Save-only warning added

* Updated return ID to -2

* Removed -2 error code

* Removed comment

* Updated cache npm lib version

* Updated license version

* Updated releases.md

* Updated readme with the new actions in what's new

Co-authored-by: Malo Bourgon <mbourgon@gmail.com>
Co-authored-by: Vipul <vsvipul@github.com>
Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>
Co-authored-by: Tanuj Kumar Mishra <tanuj077@users.noreply.github.com>
Co-authored-by: Sampark Sharma <phantsure@github.com>
4 years ago