Cache dependencies and build outputs in GitHub Actions
 
 
 
Go to file
Cyril Rohr cf6e7f2371 Allow to use existing AWS credentials even on RunsOn, by setting RUNS_ON_RUNNER_NAME="" 2024-05-21 16:52:36 +00:00
.devcontainer GA for granular cache (#1035) 2022-12-21 19:38:44 +05:30
.github Fix workflows 2024-05-21 16:32:43 +00:00
.licenses/npm licensed 2024-01-11 10:45:45 -05:00
.vscode Initial commit 2019-10-30 14:48:49 -04:00
__tests__ Apply workaround for earlyExit 2024-01-10 15:36:58 +00:00
dist build 2024-05-21 16:27:55 +00:00
restore Update "only-" actions to node20 2024-01-10 15:00:25 +00:00
save Update "only-" actions to node20 2024-01-10 15:00:25 +00:00
src Allow to use existing AWS credentials even on RunsOn, by setting RUNS_ON_RUNNER_NAME="" 2024-05-21 16:52:36 +00:00
.eslintrc.json Update eslint and prettier 2022-01-31 12:55:11 +05:30
.gitattributes Fix line ending for windows test 2022-01-31 13:00:27 +05:30
.gitignore test e2e during workflow (#185) 2020-02-13 12:38:56 -05:00
.licensed.yml Add Licensed to attribute third party licenses 2020-09-09 11:39:29 -04:00
.prettierrc.json Initial commit 2019-10-30 14:48:49 -04:00
CODE_OF_CONDUCT.md Fix repo name in contact email (#41) 2019-11-03 09:38:45 -05:00
CONTRIBUTING.md Update contributing.md 2020-09-23 17:07:50 -04:00
LICENSE Initial commit 2019-10-30 14:48:49 -04:00
README.md Allow to use existing AWS credentials even on RunsOn, by setting RUNS_ON_RUNNER_NAME="" 2024-05-21 16:52:36 +00:00
RELEASES.md Merge branch 'main' into update-to-node-20 2024-01-15 14:13:28 +00:00
action.yml action.yml and readme 2024-02-15 19:33:19 +00:00
caching-strategies.md Fixing paths for OSes (#1101) 2023-02-03 14:32:26 +05:30
examples.md Clarify that macos-latest image has bazelisk 2023-03-13 14:26:31 +01:00
jest.config.js Resolve dependabot alerts 2022-01-31 12:06:04 +05:30
package-lock.json RunsOn implem 2024-02-15 12:38:10 +00:00
package.json RunsOn implem 2024-02-15 12:38:10 +00:00
tips-and-workarounds.md Merge branch 'main' into pdotl-patch-1 2023-03-17 12:28:02 +05:30
tsconfig.json Initial commit 2019-10-30 14:48:49 -04:00

README.md

Shockingly faster cache action

This action is a drop-in replacement for the official actions/cache@v4 action, for use with the RunsOn self-hosted GitHub Action runner provider, or with your own self-hosted runner solution.

image

It will automatically store your caches in a dedicated RunsOn S3 bucket that lives close to your self-hosted runners, ensuring you get at least 200MiB/s download and upload throughput when using caches in your workflows. The larger the cache, the faster the speed.

Also note that you no longer have any limit on the size of the cache. The bucket has a lifecycle rule to remove items older than 10 days.

If no S3 bucket is provided, it will also transparently switch to the default behaviour. This means you can use this action and switch between RunsOn runners and official GitHub runners with no change.

Usage with RunsOn

If using RunsOn, simply replace actions/cache@v4 with runs-on/cache@v4. All the official options are supported.

- - uses: actions/cache@v4
+ - uses: runs-on/cache@v4
    with:
      ...

Please refer to actions/cache for usage.

Usage outside RunsOn

If you want to use this in your own infrastructure, setup your AWS credentials with aws-actions/configure-aws-credentials, then:

  - uses: aws-actions/configure-aws-credentials@v4
    ...
  - uses: runs-on/cache@v4
    with:
      ...
    env:
      RUNS_ON_S3_BUCKET_CACHE: name-of-your-bucket

Be aware of S3 transfer costs if your runners are not in the same AWS region as your bucket.

Special environment variables

  • RUNS_ON_S3_BUCKET_CACHE: if set, the action will use this bucket to store the cache.
  • RUNS_ON_RUNNER_NAME: if set to "" and running from RunsOn, the action will not ignore AWS credentials from the environment, if any.
  • RUNS_ON_S3_FORCE_PATH_STYLE or AWS_S3_FORCE_PATH_STYLE: if one of those environment variables equals the string "true", then the S3 client will be configured to force the path style.