name: bench
on:
workflow_dispatch:
jobs:
bench:
strategy:
fail-fast: false
matrix:
include:
- os: macos-14
label: macOS arm64 (WKWebView)
- os: windows-latest
label: Windows x64 (WebView2)
- os: ubuntu-24.04
label: Linux x64 (WebKitGTK)
runs-on: ${{ matrix.os }}
env:
BENCH_LABEL: ${{ matrix.label }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: install linux webkit deps
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev glib-networking xvfb curl dbus
- run: cargo build --release
- name: run bench
shell: bash
run: |
if [ "$RUNNER_OS" = "Linux" ]; then
WEBKIT_FORCE_SANDBOX=0 WEBKIT_DISABLE_DMABUF_RENDERER=1 GDK_PLATFORM=x11 \
setsid xvfb-run -a -s "-screen 0 1280x800x24" dbus-run-session -- \
python3 bench/bench.py
pkill -f "http.server" || true
pkill -x navette || true
pkill -x Xvfb || true
else
python3 bench/bench.py
pkill -f "http.server" || true
pkill -x navette || true
fi
exit 0