Visor: 80vh drawer on handhelds, unboxed larger app glyph #51
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Runs the justfile recipes; new gates belong in the justfile, not here. | |
| name: ci | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| gates: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| # Reads rust-toolchain.toml for channel/components/targets. | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - uses: denoland/setup-deno@v2 | |
| with: | |
| deno-version: v2.x | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: wasm-tools,just,wac-cli | |
| - uses: Swatinem/rust-cache@v2 | |
| # The endpoint component is built from polymorph-iroh's source, not | |
| # taken from its jsr package (justfile `endpoint`: the interface the | |
| # runtime binds is feature-gated). That is a ~20 s cargo build of a | |
| # second dependency tree; the 2 MB artifact is what the composition | |
| # actually needs, so cache the artifact rather than the checkout. The | |
| # key is the justfile because the pinned revision lives there — a | |
| # justfile edit costs one rebuild, a stale artifact is impossible | |
| # (`endpoint` looks for the revision's own filename). | |
| - uses: actions/cache@v4 | |
| with: | |
| path: target/iroh_endpoint-*.wasm | |
| key: iroh-endpoint-${{ runner.os }}-${{ hashFiles('justfile') }} | |
| - run: just ci | |
| e2e: | |
| needs: gates | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - uses: denoland/setup-deno@v2 | |
| with: | |
| deno-version: v2.x | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: wasm-tools,just,wac-cli | |
| - uses: Swatinem/rust-cache@v2 | |
| # The endpoint component is built from polymorph-iroh's source, not | |
| # taken from its jsr package (justfile `endpoint`: the interface the | |
| # runtime binds is feature-gated). That is a ~20 s cargo build of a | |
| # second dependency tree; the 2 MB artifact is what the composition | |
| # actually needs, so cache the artifact rather than the checkout. The | |
| # key is the justfile because the pinned revision lives there — a | |
| # justfile edit costs one rebuild, a stale artifact is impossible | |
| # (`endpoint` looks for the revision's own filename). | |
| - uses: actions/cache@v4 | |
| with: | |
| path: target/iroh_endpoint-*.wasm | |
| key: iroh-endpoint-${{ runner.os }}-${{ hashFiles('justfile') }} | |
| # Chromium plus its shared-library deps, at the exact version deno.json | |
| # imports — a newer CLI fetches a build the library will not find. | |
| - run: npx -y playwright@1.62.1 install --with-deps chromium | |
| # The relay the e2e scenarios bind their endpoints through: the harness | |
| # spawns `iroh-relay --dev` from PATH, so the binary only has to be | |
| # there. Taken from the upstream release asset rather than built: | |
| # `cargo install iroh-relay` is a multi-minute compile of the whole | |
| # iroh tree on every cache miss, and `cargo binstall` would resolve to | |
| # this same asset through one more tool. Pinned to the version | |
| # developers run locally. | |
| - name: install iroh-relay | |
| run: | | |
| curl -fsSL -o /tmp/iroh-relay.tar.gz \ | |
| https://github.com/n0-computer/iroh/releases/download/v1.1.0/iroh-relay-v1.1.0-x86_64-unknown-linux-gnu.tar.gz | |
| mkdir -p /tmp/iroh-relay && tar -xzf /tmp/iroh-relay.tar.gz -C /tmp/iroh-relay --no-same-owner --no-same-permissions | |
| install -m 0755 /tmp/iroh-relay/iroh-relay "$HOME/.cargo/bin/iroh-relay" | |
| iroh-relay --version | |
| - run: just e2e |