ci: run the offline Tor keygen in CI, add a non-blocking network e2e job

Split the rootless Tor e2e skip so the deterministic offline checks (the
real offline onion keygen and the production-flag guard) run whenever the
tor binary is present, while only the live onion round-trip stays gated on
LIM_E2E_TOR=1. The pytest job now installs tor so the keygen — which
validates the exact production keygen path — runs on every push. A separate
continue-on-error tor-network-e2e job exercises the full round-trip without
making the public Tor network a blocking merge gate.

The full QEMU build/boot/unlock e2e still needs root + KVM + Arch tooling
and stays local/opt-in.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kevin Veen-Birkenbach
2026-07-21 19:00:12 +02:00
parent 963f0a8da6
commit 05e9129f4e
2 changed files with 30 additions and 3 deletions

View File

@@ -18,5 +18,22 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: "3.12"
# tor lets the deterministic offline onion-keygen test run (it validates
# the real production keygen path); that test needs no network.
- run: sudo apt-get update && sudo apt-get install -y tor
- run: pip install pytest pyyaml
- run: make test
tor-network-e2e:
# The live onion round-trip depends on the public Tor network, so it is
# informational (continue-on-error) rather than a blocking merge gate.
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: sudo apt-get update && sudo apt-get install -y tor
- run: pip install pytest pyyaml
- run: LIM_E2E_TOR=1 make test-tor PYTHON=python