diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 249d9e7..cdb090b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,6 +64,43 @@ jobs: # Real Proton credentials and /dev/fuse deliberately do not run on pull # requests. Follow docs/TESTING.md on a dedicated test-account runner. + # The seeded simulation runs (docs/MILESTONE-3.0.0.md ยง8.2): real FUSE + # daemons against an in-memory Drive, so they need /dev/fuse but no account. + simulation: + if: github.event_name != 'pull_request' + runs-on: ubuntu-24.04 + timeout-minutes: 30 + + steps: + - uses: actions/checkout@v7 + + - name: Install native dependencies + run: | + sudo apt-get update + sudo apt-get install -y \ + pkg-config \ + fuse3 \ + libfuse3-dev \ + libgtk-4-dev \ + libadwaita-1-dev \ + libwebkitgtk-6.0-dev \ + libsecret-1-dev \ + libdbus-1-dev + + - name: Install minimum supported Rust + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: '1.96' + cache: false + + - uses: swatinem/rust-cache@v2 + with: + shared-key: debug + save-if: false + + - name: Simulation runs + run: cargo test -p pdfs-fuse --lib --locked sim:: -- --ignored --test-threads=1 + # Keeps the release-profile dependencies cached on main, where the release # workflow can restore them; a tag cannot reuse the caches of earlier tags. release-cache: