ci: artifact-based coverage and local Firecracker candidate flow #446
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Background
The current CI pipeline builds a compressed Firecracker infra candidate in a separate
build-infrajob, uploads the approximately 194 MB artifact, downloads it inintegration-firecracker, then downloads it again incoverage. Thecoveragejob also reruns the full unit and integration suites.In a representative run, candidate construction took about 122 seconds, upload took about 70 seconds, and the two downstream downloads took about 83 seconds combined. The repeated artifact transfer and duplicate test execution dominate the critical path.
This issue supersedes the artifact-based coverage task previously tracked in #414 and expands it around a locally built, exactly-once Firecracker candidate.
Target architecture
unit.coverage.unit.integration-docker.coverage.integration-docker.integration-firecracker.coverage.integration-firecracker.Use the existing local-build support (
BOT_BOTTLE_INFRA_BUILD=local) where appropriate rather than introducing a second build implementation. Provision host Docker on the KVM runner if this path requires it.coverageunit,integration-docker, andintegration-firecracker.coverage combine, the aggregate coverage report, andscripts/diff_coverage.py.publish-inframain, after all required lint, test, and coverage gates pass.integration-firecracker; do not rebuild it.Requirements
integration-dockerandintegration-firecracker.integration-firecracker.Verification
rootfs.ext4.gz.mainrun publishes the checksum of the exact rootfs used byintegration-firecracker.Related
docs/decisions/0004-coverage-policy.md