CI Efficiency and Reliability
August 9, 2026 ยท View on GitHub
This page records the shipped B8 changes. Use GitHub Workflows for the current workflow inventory.
Assurance Rule
A change to pull-request CI must preserve each deterministic release gate.
Scheduled fuzzing is a discovery activity. It is not a release gate. The seed
corpus is deterministic and stays in go test ./....
Pull Request Changes
Active fuzzing
The pull-request validation path runs the deterministic fuzz seed corpus through
go test ./.... It does not run a time-bounded active fuzz campaign.
The scheduled fuzz.yml workflow runs the active Go and Rust fuzz targets. An
operator can also start this workflow with workflow_dispatch. This design
removes a nondeterministic time budget from the pull-request critical path and
keeps the seed regression gate.
Use Fuzzing for the current target list and artifact behavior.
Reproducible builds
The native amd64 and arm64 reproducible-build matrix is a heavy lane. A pull
request needs the approved-heavy-ci label to start this matrix. The aggregate
required check accepts the documented skip result for an unlabeled pull
request.
The matrix runs for each push to main. The release workflow also runs native
reproducibility preflight jobs and compares the release image with the verified
digests. Thus, an unlabeled fork pull request does not remove the release gate.
Network Retry Policy
scripts/retry.sh supplies a bounded retry for
idempotent fetch operations. The default is three attempts. The default initial
delay is five seconds, and the delay doubles after each failure.
Workflows use retries for operations such as a toolchain install or a verified tool download. Checksum verification still follows the downloaded tools that use recorded checksums.
Do not add retries to deterministic tests, linters, or locked dependency checks. A retry can hide a repeatable defect and add delay.
Flaky Test Record
Use the flaky-test issue label for a confirmed nondeterministic failure. The
issue must name the test or lane. The issue must include the observed behavior.
The ci-insights.yml workflow creates a weekly flaky-test report. It combines:
- Open issues with the
flaky-testlabel. - Workflow runs in the selected period that failed or had more than one run attempt.
The second signal supplies candidates. It does not prove that a failure is
flaky. scripts/ci/flaky-report.sh creates the
read-only job summary.
CI Cost Report
The same workflow creates a weekly cost report. The report shows run count,
total wall-clock time, and average wall-clock time for each workflow. Queue time
is part of wall-clock time. scripts/ci/cost-report.sh
creates the read-only job summary.
Recorded Timing Estimate
The 2026-07-05 B8 estimate followed the fuzz change and the reproducible-build change. It used configuration and timeout values. A local host cannot run all hosted CI jobs. It did not claim an end-to-end measured result.
The expected result for an unlabeled pull request was:
- The change removes approximately 30 seconds of active fuzz time from the validation path.
- The change removes the approximately 45-minute reproducible-build matrix from the required pull-request critical path.
- The scheduled and on-demand workflow keeps active fuzz campaigns.
go test ./...keeps the fuzz seed tests.- Pushes to
mainand the release workflow keep reproducible builds.
Use the CI cost report for current measured history. Do not present the recorded estimate as a current service-level objective.