ReaperCI Documentation

ReaperCI documentation

Build caches

ReaperCI run steps can mount persistent BuildKit caches. Cache identity is isolated by repository and can include the branch and Linux platform:

steps:
  - name: test
    image: node:22
    run: corepack enable && pnpm install --frozen-lockfile && pnpm test
    platform: linux/amd64
    caches:
      - key: pnpm-{{branch}}-{{platform}}
        path: /root/.local/share/pnpm/store

Supported key values are {{repo}}, {{branch}}, and {{platform}}. A cache first appears in the repository's Build caches panel after a build uses it. The panel shows its last build, platform, use time, and generation.

Safe invalidation

Invalidating a cache increments its generation. Builds that start afterward receive a fresh persistent mount; running builds continue using the generation they already acquired. ReaperCI does not synchronously delete BuildKit data, so invalidation cannot race an active build. BuildKit's configured garbage collector reclaims older generations.

The authenticated API is also available to the CLI and agents:

  • GET /api/v1/cache-entries?repo=<name> lists entries.
  • POST /api/v1/cache-entries/<id>/invalidate advances an entry.

Invalidation requires the builds:rw scope and is recorded in the append-only audit log with the acting user or service-account identity.