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>
40 lines
1.1 KiB
YAML
40 lines
1.1 KiB
YAML
name: tests
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: astral-sh/ruff-action@v3
|
|
|
|
pytest:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- 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
|