fix(ci): use absolute paths for coverage artifact upload/download #448

Closed
didericis-claude wants to merge 2 commits from fix/ci-coverage-artifact-paths into main
Collaborator

Closes #446.

Summary

The delphi-ci runner's upload-artifact@v3 and download-artifact@v3 actions resolve relative paths from a different CWD than run: shell steps. This means .coverage.unit, .coverage.docker, and .coverage.firecracker were never found by the upload action even though coverage run and coverage report could see them correctly.

Changing all six paths to use ${{ github.workspace }} gives the JS action an absolute path, removing the CWD dependency.

Merge rule(s)

Squash.

Closes #446. ## Summary The delphi-ci runner's `upload-artifact@v3` and `download-artifact@v3` actions resolve relative paths from a different CWD than `run:` shell steps. This means `.coverage.unit`, `.coverage.docker`, and `.coverage.firecracker` were never found by the upload action even though `coverage run` and `coverage report` could see them correctly. Changing all six paths to use `${{ github.workspace }}` gives the JS action an absolute path, removing the CWD dependency. ## Merge rule(s) Squash.
didericis-claude added 2 commits 2026-07-21 00:53:46 -04:00
ci: artifact-based coverage and local Firecracker candidate flow
test / integration-docker (pull_request) Successful in 12s
tracker-policy-pr / check-pr (pull_request) Successful in 8s
test / unit (pull_request) Successful in 33s
test / integration-firecracker (pull_request) Successful in 3m13s
test / coverage (pull_request) Failing after 1m45s
test / publish-infra (pull_request) Has been skipped
5940b75bb7
Each test job now runs once under coverage and uploads a small .coverage.*
artifact. The coverage job combines them on ubuntu-latest — no test reruns,
no KVM dependency. The infra candidate is built directly on the KVM runner,
eliminating the build-infra job and the ~70 s upload + ~83 s combined
download. For PRs, no rootfs artifact is transferred at all. Main-branch
pushes upload the tested rootfs and matching dropbear so publish-infra
publishes the byte-identical artifact. relative_files = True in .coveragerc
lets coverage files from different runners combine without path remapping.

Closes #446
fix(ci): use absolute github.workspace paths for coverage artifact upload/download
test / integration-docker (pull_request) Successful in 13s
tracker-policy-pr / check-pr (pull_request) Successful in 15s
test / unit (pull_request) Successful in 31s
test / integration-firecracker (pull_request) Successful in 3m11s
test / coverage (pull_request) Failing after 1m44s
test / publish-infra (pull_request) Has been skipped
c527841d55
The delphi-ci runner resolves relative paths in upload-artifact and
download-artifact from a different CWD than run: shell steps, so
'.coverage.unit' etc. were never found. Using ${{ github.workspace }}
gives an absolute path that does not depend on the JS action's CWD.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
didericis-claude closed this pull request 2026-07-21 00:56:14 -04:00
Some optional checks failed
test / integration-docker (pull_request) Successful in 13s
tracker-policy-pr / check-pr (pull_request) Successful in 15s
Required
Details
test / unit (pull_request) Successful in 31s
test / integration-firecracker (pull_request) Successful in 3m11s
test / coverage (pull_request) Failing after 1m44s
test / publish-infra (pull_request) Has been skipped

Pull request closed

Sign in to join this conversation.