Documentation / Integration guide

Connect this node to your build.

Node-specific integration for TestPR Edge PoP RUNNER-FI in fi. Configure read-only workers first; give trusted CI builders separate publishing credentials.

01 / Assign a region

The corporate site is the control-plane reference.

Build workers retrieve artifacts and resolve dependencies directly through their assigned regional Edge cluster. Keep your cache namespace, retention policy, and builder permissions aligned with that region. Package metadata and package files use the regional public mirror.

This noderunner-fi.test-pr.space serves fi through 1.1 testpr-edge (runner-fi). Management requests use https://api.runner-fi.test-pr.space/v1/; package clients use https://repo-fi.test-pr.space/dist/v1/pkg/.

Service access is provisioned for your workspace. Confirm the available service functions below before enabling a new build integration.

Node service register

Service endpoints on this node

- sync.runner-fi.test-pr.space/sync/v2/stream/ — Cluster artifact synchronization
- exec.runner-fi.test-pr.space/exec/v2/actions/ — Remote execution action status streams
- api.runner-fi.test-pr.space — CI/CD worker authentication and status

The register identifies the routes enabled for this node. Functions cover remote execution action status, large output blob reads and writes, live build log tailing, build events, remote action cache lookups and uploads, batched CAS presence and digest lookups, artifact distribution, cluster artifact synchronization, and worker authentication and status. Availability follows the register above.

02 / Reuse build outputs

Let workers read.
Let trusted CI publish.

The regional compatibility gateway accepts Gradle HTTP build-cache requests and Bazel remote-cache requests. Each client appends its native cache keys to the configured base path. Workspace authentication is required for protected cache access; publishing requires a separately authorized CI builder credential.

Gradle 8.x+ / Remote HTTP cache

Place this configuration in your Gradle user home under init.d/build-cache.init.gradle.kts. Enable caching with org.gradle.caching=true in gradle.properties. Keep developer access read-only.

init.d/build-cache.init.gradle.kts
import org.gradle.caching.http.HttpBuildCache

settingsEvaluated {
    buildCache {
        local { isEnabled = true }
        remote<HttpBuildCache> {
            url = uri("https://runner-fi.test-pr.space/cas/v2/blobs/")
            isPush = false // Read-only build acceleration. Write access requires dedicated CI credentials.
            isAllowInsecureProtocol = false
        }
    }
}
Download Gradle configuration

Bind your provisioned read credential through Gradle’s approved credentials configuration or your CI secret store. Do not commit credentials. Review the Gradle build-cache documentation for task eligibility and authentication configuration.

Bazel 7.x+ / Remote cache

Use the regional gateway in .bazelrc. This configuration permits cache reads and keeps local result uploads disabled.

.bazelrc
build --remote_cache=https://runner-fi.test-pr.space/cas/v2/blobs/
build --remote_upload_local_results=false

Provide the workspace’s read token with --remote_header="Authorization=Bearer <TENANT_TOKEN>" through your approved local or CI secret configuration. Review Bazel remote caching before changing upload permissions.

03 / Resolve upstream packages

Standard registries.
A regional retrieval path.

Each mirror is a transparent enterprise pull-through cache for its upstream ecosystem. Clients request normal package coordinates, versions, metadata, and distribution files. Missing content is retrieved from the upstream source and retained according to cache policy.

Inspect the repository catalog

The catalog identifies supported upstreams and URL prefixes. Public package retrieval is read-only, with successful responses using HTTP 200 or HTTP 206 for supported range requests.

Repository catalog / JSON
curl -fsSL https://repo-fi.test-pr.space/dist/v1/pkg/packages.json
Open distribution catalog

Maven / Repository mirror

Add the mirror to your existing settings.xml. This entry redirects Maven Central requests while leaving separately configured private repositories available.

settings.xml
<settings>
  <mirrors>
    <mirror>
      <id>testpr-regional</id>
      <mirrorOf>central</mirrorOf>
      <url>https://repo-fi.test-pr.space/dist/v1/pkg/maven/</url>
    </mirror>
  </mirrors>
</settings>

Gradle / Maven dependencies

Set the regional Maven endpoint as the project repository in build.gradle.kts. Keep private repositories in the configuration required by your organization.

build.gradle.kts
repositories {
    maven { url = uri("https://repo-fi.test-pr.space/dist/v1/pkg/maven/") }
}

Python / pip package index

Use the PEP 503 index for normal Python package resolution. Continue to pin versions and verify hashes in your dependency workflow.

pip.conf
[global]
index-url = https://repo-fi.test-pr.space/dist/v1/pkg/pypi/simple/
One-off package retrieval
pip install --index-url https://repo-fi.test-pr.space/dist/v1/pkg/pypi/simple/ <package>

npm / Registry configuration

The regional registry serves public package metadata and package tarballs. Keep private scope configuration separate.

.npmrc
registry=https://repo-fi.test-pr.space/dist/v1/pkg/npm/
npm registry setting
npm config set registry https://repo-fi.test-pr.space/dist/v1/pkg/npm/

Go / Module retrieval

Configure the standard Go module retrieval variable. Keep checksum verification enabled; the explicit direct fallback follows the Go client’s normal response handling.

Go environment
export GOPROXY="https://repo-fi.test-pr.space/dist/v1/pkg/go/,direct"

04 / Preserve correctness

A cache hit must still be trustworthy.

Enterprise production policyEnterprise production policy prohibits bespoke unverified runner binaries. The platform operates as a transparent, high-throughput pull-through cache for upstream package ecosystems (Maven Central, PyPI, npm, Go proxy). Build workers configure standard upstream toolchains to use regional mirror endpoints.
  • Keep CAS artifact storage partitioned by workspace. Confirm the target namespace before authorizing a builder.
  • Issue cryptographic builder credentials only to trusted CI jobs. Developer and read-only worker policies must not inherit cache publishing rights.
  • Use upstream integrity metadata, lockfiles, and immutable dependency versions. Investigate unexpected digest changes before promoting build outputs.
  • Separate NVMe cache allocations and retention policies for workloads with different trust boundaries. Artifact eviction is a cache lifecycle event, not a release deletion workflow.

Measure the change

Record a baseline build with cache retrieval disabled, then run the same commit with the same toolchain and worker class against a warmed cache. Compare total duration, eligible task count, cache-hit count, bytes retrieved, and package-resolution time. Report the cold-cache run separately; a new namespace cannot reuse outputs it has never received.

Gradle build reports and Bazel profiles provide the comparison. A high hit rate is useful only when retrieval reduces the end-to-end build duration.

Read management API contracts

Workspace identity

A signed assertion opens the door.

Operator access is bound to your organization’s identity provider. Tenant policy disables direct credential and password authentication at the Edge gateway. A cryptographically signed SAML 2.0 or OIDC assertion establishes workspace membership and the permitted cache namespace.

Launch the assigned TestPR application from Okta, Microsoft Entra ID, or PingFederate. This page can verify an existing session; it does not collect identity credentials.

Have your organization’s TestPR application assignment ready. Session verification checks the current browser route.