Skip to content

docs(spec): in-app feedback via github-proxy worker #381

docs(spec): in-app feedback via github-proxy worker

docs(spec): in-app feedback via github-proxy worker #381

Workflow file for this run

name: E2E
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
permissions:
contents: read
jobs:
e2e:
name: Playwright E2E
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
targets: wasm32-unknown-unknown
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '20'
- uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: e2e-${{ hashFiles('**/Cargo.lock') }}
restore-keys: e2e-
- name: Install just
uses: taiki-e/install-action@50b4a718b59c718df4ef27a3b445f86cd57b9f00 # v2.79.3 just
with:
tool: just
- name: Run full E2E flow (setup + tests + teardown)
id: e2e
shell: bash --noprofile --norc -eo pipefail {0}
# PLAYWRIGHT_WORKERS=1: the multi-peer + cross-browser specs
# share a single relay + iroh-gossip mesh, and parallel cold
# starts make two peer pairs race on the relay handshake, so
# the first 30–50 s of dial timeouts blow past the per-spec
# deadline. Sequential execution keeps the warm-relay path
# the dominant cost; the full suite settles in ~8–10 min on
# a fresh runner. PLAYWRIGHT_RETRIES=0 mirrors local CI runs
# and keeps failures actionable instead of papering over them
# with flake retries.
env:
PLAYWRIGHT_WORKERS: '1'
PLAYWRIGHT_RETRIES: '0'
run: just test-e2e-full 2>&1 | tee /tmp/e2e.log
- name: Surface E2E failure
if: failure() && steps.e2e.conclusion == 'failure'
run: |
{
echo "## Playwright E2E failed"
echo
echo '<details><summary>just / playwright output (last 300 lines)</summary>'
echo
echo '```'
tail -n 300 /tmp/e2e.log || echo "(no log captured)"
echo '```'
echo
echo '</details>'
for f in .dev/logs/relay.log .dev/logs/replay.log .dev/logs/storage.log .dev/logs/web.log; do
[ -f "$f" ] || continue
echo
echo "<details><summary>$f (last 100 lines)</summary>"
echo
echo '```'
tail -n 100 "$f"
echo '```'
echo
echo '</details>'
done
} >> "$GITHUB_STEP_SUMMARY"