Skip to content

Visor: 80vh drawer on handhelds, unboxed larger app glyph #51

Visor: 80vh drawer on handhelds, unboxed larger app glyph

Visor: 80vh drawer on handhelds, unboxed larger app glyph #51

Workflow file for this run

# 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