PineCache

Remote build cache for our CI fleet

PineCache stores build outputs by content hash so that a compile step runs once and every other machine downloads the result.

It speaks the HTTP cache protocols that Bazel, Gradle, sccache and ccache already support. Artifacts are addressed by SHA-256, uploaded once and fetched many times, which is why most of the traffic here is large downloads of opaque blobs.

What it does

ToolProtocolEndpoint
BazelHTTP remote cache/cache/ac/, /cache/cas/
GradleHTTP build cache/cache/gradle/
sccacheWebDAV backend/cache/sc/
ccacheHTTP secondary storage/cache/cc/

Using it

Every request needs a team token. Without one the cache endpoints answer 404, not 401, so that object names cannot be probed. See the documentation for client settings.

Regions

Each region is an independent node with its own disk. Pick the one closest to your runners; nodes do not replicate to each other. Current state is on the status page.