ci: fix CI on the Forgejo runner (BoringSSL build deps + unmirrored actions) #144
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
femboy/yip!144
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/ci-forgejo-build-deps"
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?
All open PRs are red from CI infrastructure, not their content — a trivial
libcpatch bump (#122) fails the exact same checks as a major crypto bump (#139). The GitHub→Forgejo migration left the CI unable to build. Localcargo fmt/clippy/build/testare fully green.Two root causes (from the runner logs), both fixed repo-side:
1. BoringSSL build deps missing on the runner
The runner image
catthehacker/ubuntu:act-22.04ships nocmakeand nolibclang, both of whichboring-sysneeds (cmake builds BoringSSL; libclang drives its bindgen).build-testdied withcmake … No such file or directory. Addedapt-get install cmake clang libclang-dev pkg-configto every job that compiles a boring-linking crate:ci/build-test,coverage,mutants, and integration'snetem-comparison/netns-tunnel-test/dpi-undetectability(the latter two had cmake but not libclang).2. Unmirrored composite actions
Actions resolve from the instance (
https://virus.ad/<action>), not github.com.actions/checkoutanddtolnay/rust-toolchainare mirrored (clone fine);taiki-e/install-action(shear/coverage/mutants) andEmbarkStudios/cargo-deny-action(deny) are "Not found". Replaced them with directcargo install <tool> --lockedsteps.Only the two mirrored actions remain across all workflows.
Caveats
cargo install --lockedcompiles the tools from source (slower CI). Instance-side (per our plan): mirrortaiki-e/install-action+ bake the build deps into the runner image → restores the fast path and lets these workarounds be dropped.netns-tunnel-test/dpijobs also need privileged netns + external tools; if they still fail after this, that's the runner-privilege side (instance-side), not the build.Merge this first — it unblocks CI for every other open PR. The trivial dep bumps should then go green; the major crypto bumps (ed25519-dalek v3, x25519-dalek v3, boring v5, …) will surface real build failures to migrate individually.