Skip to content

GitHub Actions

Keep your workflows.
Share the work they produce.

Add native build caching to GitHub Actions, with build outputs you can keep and share. Use the same workspace from your laptop or another CI system when the build moves.

GitHub workflow
  1. Restore Cache

    Dependencies, compiler results, Docker layers

  2. Build and test

    Your existing tools and commands

  3. Save Artifacts

    Binaries, test reports, release packages

BoringCache workspace

Use the BoringCache Action on your existing runners.

Connect your repository to a workspace, then add the Action after checkout and toolchain setup. The native Action works without a separate runner integration.

Commit .boringcache.toml so local builds and CI use the same workspace. This step excerpt assumes Cargo and your project toolchain are already installed.

workspace = "my-org/app"

[adapters.cargo]
tag = "cargo-cache"
command = ["cargo", "build", "--release"]

[adapters.sccache]
tag = "rust-compiler"
permissions:
  contents: read
  id-token: write

steps:
  # After checkout and project toolchain setup
  - uses: boringcache/one@f0fb9b2d926a32b10c543e92093ba00c5a291b79 # v1.33.0
    with:
      mode: cargo
      trust-policy: auto
  - run: cargo build --release

Reuse tool results as well as saved directories.

Connect Docker, compiler caches, and task caches to the protocols those tools already use.

11–60%

Faster Docker builds

Spend fewer runner minutes on Docker builds. Reuse layers, compiler results, and package caches.

70–94%

Less cache to store

Store matching data once across your workspace, including tool caches and directory archives. Keep more reusable work in your storage allowance.

Keep the files your next job needs.

Upload a build output as an Artifact and pass its immutable ID to another job. Retrieve it later with the CLI, independently of GitHub’s artifact store.

Choose retention

Set an expiry for temporary outputs and keep release files for longer.

Download exact outputs

Each upload has an immutable Artifact ID you can pass between jobs.

Choose your storage

Use included managed storage or your own storage on the Custom plan.

permissions:
  contents: read
  id-token: write

steps:
  - uses: boringcache/one@f0fb9b2d926a32b10c543e92093ba00c5a291b79 # v1.33.0
    if: github.event_name == 'push'
    with:
      mode: artifact
      artifact-command: push
      artifact-path: dist/
      artifact-name: release
      artifact-retention-days: 7
      trust-policy: auto

50 GB free for your build data.

Cache, Artifacts, and private container images are included in one plan. No credit card required. No BoringCache egress fees.

Compare plans →

Authenticate jobs without another long-lived secret.

Give GitHub jobs short-lived workspace access without storing a reusable BoringCache secret. Choose which repositories and workflows can use each workspace.

Connect your GitHub repository →

Read on pull requests

  • Trusted builds Publish shared cache for the next run Read + publish
  • Pull requests Reuse cache without replacing it Read only

Connect with OIDC. GitHub jobs get short-lived workspace access.

Shared storage for self-hosted runners.

Use the same Action on persistent machines or ephemeral fleets. Keep cache and build outputs available between jobs, even when a runner is replaced.

Connect your runners →

Where build data is stored

Managed storage

Every plan

Cache · Artifacts · Registry

Store Cache and Artifacts with BoringCache. No BoringCache egress fees.

Your own storage

Custom plan

Cache · Artifacts

S3 Azure Blob

Use BYOC for Cache and Artifacts on the Custom plan with an S3-compatible bucket or Azure Blob container. Choose storage near your runners to reduce cross-cloud transfers. Your provider bills storage and transfers.

Set up BYOC →

Keep existing actions on integrated runners.

The separate BoringCache GHA service can serve existing cache and artifact actions. It requires a runner integration that starts the service before the job. It is not required for boringcache/one and does not reroute standard GitHub-hosted actions by itself.

See runner compatibility →

GitHub-hosted and self-hosted runners

boringcache/one

Native Cache and Artifact modes run directly in your workflow.

Runners with BoringCache GHA

actions/cache · actions/upload-artifact

Cache and Artifact requests use your workspace storage.

Add BoringCache to your workflow.

Connect your repository to a workspace and use the build commands you already run.

curl -sSL https://install.boringcache.com/install.sh | sh
boringcache onboard