All checks were successful
wai-fleet service / does this change touch it (pull_request) Successful in 8s
WAI energy receipts / does this change touch it (pull_request) Successful in 9s
wai-audit collector and player integration / does this change touch it (pull_request) Successful in 11s
WAI operation catalogue / does this change touch it (pull_request) Successful in 10s
WAI conformance / does this change touch it (pull_request) Successful in 11s
smart-byte conformance gate / does this change touch it (pull_request) Successful in 13s
WAI examples / WAI examples · does this change touch them (pull_request) Successful in 12s
wai cross-architecture byte-equality / does this change touch it (pull_request) Successful in 13s
WAI HTTP delivery / WAI HTTP · does this change touch it (pull_request) Successful in 6s
WAI JPEG-AI whole decode (pinned inputs, required) / does this change touch it (pull_request) Successful in 6s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 19s
wai-key-proxy / does this change touch it (pull_request) Successful in 7s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (pull_request) Successful in 18s
standards workspaces build + test / macOS energy backends (pull_request) Has been skipped
wai-ledger service / does this change touch it (pull_request) Successful in 7s
WAI neural sink gates / does this change touch it (pull_request) Successful in 8s
WAI neural decoders end-to-end / does this change touch it (pull_request) Successful in 9s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 6s
wai-ops integer operators / does this change touch it (pull_request) Successful in 7s
wai-ops-npu integer operators on neural processors / does this change touch it (pull_request) Successful in 13s
wai-ops-gpu integer operators on GPUs / does this change touch it (pull_request) Successful in 14s
wai-quantum contract / does this change touch it (pull_request) Successful in 7s
wai-quantum dataflow member / does this change touch it (pull_request) Successful in 6s
wai-quantum command line / does this change touch it (pull_request) Successful in 11s
wai-quantum docs, course and locales / does this change touch it (pull_request) Successful in 8s
wai-quantum editors / does this change touch it (pull_request) Successful in 6s
wai-quantum signal processor / does this change touch it (pull_request) Successful in 9s
wai-quantum CUDA member / does this change touch it (pull_request) Successful in 12s
wai-quantum resource estimation / does this change touch it (pull_request) Successful in 6s
wai-quantum HIP member / does this change touch it (pull_request) Successful in 5s
wai-quantum other formats / does this change touch it (pull_request) Successful in 6s
wai-quantum FPGA member / does this change touch it (pull_request) Successful in 8s
wai-quantum for JavaScript / does this change touch it (pull_request) Successful in 10s
wai-quantum npu-cores member / does this change touch it (pull_request) Successful in 9s
wai-quantum OpenCL member / does this change touch it (pull_request) Successful in 9s
wai-quantum for Python / does this change touch it (pull_request) Successful in 8s
wai-quantum Metal member / does this change touch it (pull_request) Successful in 11s
wai-quantum OpenQASM reader / does this change touch it (pull_request) Successful in 14s
wai-quantum pulse and dynamics / does this change touch it (pull_request) Successful in 10s
wai-quantum error correction and mitigation / does this change touch it (pull_request) Successful in 8s
wai-quantum-qpu / does this change touch it (pull_request) Successful in 7s
wai-quantum neural-processor member / does this change touch it (pull_request) Successful in 15s
wai-quantum matrix-extension member / does this change touch it (pull_request) Successful in 5s
wai-quantum service / does this change touch it (pull_request) Successful in 6s
wai-quantum extension points / does this change touch it (pull_request) Successful in 7s
wai-quantum portable tensor program / does this change touch it (pull_request) Successful in 5s
wai-quantum studio and desktop / does this change touch it (pull_request) Successful in 6s
wai-quantum variational and algorithm library / does this change touch it (pull_request) Successful in 6s
wai-quantum CPU vector units / does this change touch it (pull_request) Successful in 7s
wai-sink-android native sink library / does this change touch it (pull_request) Successful in 6s
wai-quantum tensor-engine member / does this change touch it (pull_request) Successful in 11s
wai-quantum verdicts and repairs / does this change touch it (pull_request) Successful in 9s
WAI mbt2018_mean integer decode (regenerated vectors) / does this change touch it (pull_request) Successful in 6s
wai-sink-swift native sink package / does this change touch it (pull_request) Successful in 7s
WAI Studio / does this change touch it (pull_request) Successful in 7s
wai-quantum views in agent hosts / does this change touch it (pull_request) Successful in 13s
wai-web wasm32 / does this change touch it (pull_request) Successful in 9s
wai-vector vector graphics / does this change touch it (pull_request) Successful in 9s
wai-quantum WebGPU member / does this change touch it (pull_request) Successful in 14s
wai-fleet service / service · macos (pull_request) Successful in 1m24s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 35s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 4s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 43s
smart-byte conformance gate / Validate conformance JSON files (pull_request) Successful in 8s
smart-byte conformance gate / Second implementation reproduces every vector (pull_request) Successful in 6s
smart-byte conformance gate / Spec changes require vector-pack updates (pull_request) Successful in 9s
wai-quantum CUDA member / member · CUDA (jetson-hub) (pull_request) Successful in 1m44s
smart-byte conformance gate / VERSIONS.md and README.md must exist (pull_request) Successful in 5s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 2m18s
wai-audit collector and player integration / collector · linux (pull_request) Successful in 1m33s
wai-quantum CUDA member / member · CUDA (thor) (pull_request) Successful in 2m8s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (pull_request) Successful in 29s
wai-quantum OpenCL member / member · OpenCL GPU and CPU (jetson-hub) (pull_request) Successful in 38s
wai-fleet service / service · linux (pull_request) Successful in 2m13s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 49s
wai-quantum OpenCL member / member · OpenCL GPU and CPU (thor) (pull_request) Successful in 51s
WAI conformance / fast integer kernels, every x86_64 kernel set (AVX-512 silicon) (pull_request) Successful in 3m25s
wai-ops-npu integer operators on neural processors / neural processor (framework-128gb silicon) (pull_request) Successful in 10s
wai-key-proxy / proxy · linux (pull_request) Successful in 1m33s
wai-ledger service / service · linux (pull_request) Successful in 1m34s
wai-quantum service / service energy · linux packages (pull_request) Successful in 1m48s
WAI conformance / faces from keypoints under wasm32-wasip2 (wasmtime) (pull_request) Successful in 3m45s
wai-quantum HIP member / member · HIP (framework-128gb) (pull_request) Successful in 1m4s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 4m1s
wai-quantum portable tensor program / tensor program · GPUs (jetson-hub) (pull_request) Successful in 31s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (pull_request) Successful in 3m4s
WAI operation catalogue / the catalogue and every door · linux (pull_request) Successful in 4m48s
wai-ops integer operators / linux-x86_64 (pull_request) Successful in 58s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Successful in 1m38s
wai-ops integer operators / wasm32 under Node (pull_request) Successful in 21s
wai-ops integer operators / independent checker (Python) (pull_request) Successful in 12s
wai-quantum npu-cores member / member · npu-cores, neural processor (framework-128gb silicon) (pull_request) Successful in 1m20s
wai-ops integer operators / wasm32-wasip2 (wasmtime) (pull_request) Successful in 37s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 1m36s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 3m7s
wai-quantum contract / the policy is linked, and the deprecations page reads (pull_request) Successful in 4s
wai-quantum OpenCL member / member · OpenCL GPU (framework-128gb) (pull_request) Successful in 27s
wai-quantum portable tensor program / tensor program · integrated GPU (framework-128gb) (pull_request) Successful in 15s
wai-quantum CPU vector units / member · vector units, avx2 and avx512 (framework-128gb silicon) (pull_request) Successful in 20s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 54s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 6m25s
wai-quantum command line / command line · linux (pull_request) Successful in 2m17s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:401e) (pull_request) Successful in 1m47s
wai-ledger service / service · macos (pull_request) Successful in 2m38s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 4m18s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (pull_request) Successful in 9s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:b140) (pull_request) Successful in 4m18s
wai-quantum contract / API compatibility · linux (pull_request) Successful in 4m55s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 10m14s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 11m19s
wai-pack / wai-pack · linux (pull_request) Successful in 6m42s
wai-quantum CUDA member / member · CUDA absent (linux) (pull_request) Successful in 1m21s
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Successful in 2m22s
wai-ops integer operators / macos-arm64 (pull_request) Successful in 59s
wai-quantum FPGA member / member · FPGA simulation absent (linux) (pull_request) Successful in 26s
wai-quantum resource estimation / estimation and calibration · linux, release (pull_request) Successful in 1m54s
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Successful in 13m27s
wai-quantum editors / editors · linux (pull_request) Successful in 2m27s
wai-quantum other formats / the set under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m36s
wai-quantum contract / schemas and the committed tool lists · linux (pull_request) Successful in 7m27s
wai-quantum OpenCL member / member · OpenCL absent (linux) (pull_request) Successful in 30s
wai-quantum Metal member / member · Metal absent (linux) (pull_request) Successful in 32s
wai-quantum OpenQASM reader / corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m5s
wai-quantum WebGPU member / member · integrated GPU, Vulkan (framework-128gb) (pull_request) Successful in 8m8s
wai-quantum OpenQASM reader / reader and corpus · linux (pull_request) Successful in 2m18s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs · linux, release (pull_request) Successful in 1m48s
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 3m22s
wai-quantum neural-processor member / member · neural processor absent (linux) (pull_request) Successful in 25s
wai-pack / wai-pack · macos (pull_request) Successful in 6m24s
wai-quantum matrix-extension member / member · matrix extension, emulated (aarch64 Linux) (pull_request) Successful in 17s
wai-quantum for Python / python · linux (pull_request) Successful in 2m55s
wai-quantum-qpu / clients against their contracts (linux) (pull_request) Successful in 48s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m34s
wai-quantum dataflow member / member · dataflow device absent (macos) (pull_request) Successful in 55s
wai-quantum portable tensor program / tensor program · CPU, mutants, GPU builds (pull_request) Successful in 31s
wai-quantum extension points / the registry under wasm32-wasip2 (wasmtime) (pull_request) Successful in 59s
wai-quantum command line / command line · macos (pull_request) Successful in 3m11s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 13m51s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 16m57s
wai-quantum error correction and mitigation / codes, decoders, texts and mitigation · linux, release (pull_request) Successful in 3m9s
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Successful in 21s
wai-quantum OpenCL member / member · OpenCL GPU (macos) (pull_request) Successful in 24s
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Successful in 10s
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Successful in 45s
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Successful in 26s
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Successful in 10s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux, release (pull_request) Successful in 1m40s
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Successful in 26s
wai-quantum extension points / the registry and the example · linux (pull_request) Successful in 2m56s
wai-quantum editors / editors · macos (pull_request) Successful in 2m14s
wai-quantum FPGA member / member · FPGA datapath, simulated (macos) (pull_request) Successful in 2m40s
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m15s
wai-quantum for Python / python · macos (pull_request) Successful in 2m38s
wai-quantum verdicts and repairs / verdicts, repairs and the intent set · linux (pull_request) Successful in 1m47s
wai-quantum Metal member / member · Metal (macos) (pull_request) Successful in 1m21s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 55s
wai-quantum service / service · linux (pull_request) Successful in 4m58s
wai-quantum-qpu / credentials in the keychain (macos) (pull_request) Successful in 55s
wai-quantum pulse and dynamics / the same bits · macos (pull_request) Successful in 1m45s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 9m48s
wai-quantum matrix-extension member / member · matrix extension absent (macos) (pull_request) Successful in 26s
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Successful in 15s
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Successful in 15s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 9m55s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 6m12s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 15m19s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 5m0s
wai-quantum other formats / readers, writers and the set · linux (pull_request) Successful in 13m7s
wai-quantum views in agent hosts / views · the page and its engine (pull_request) Successful in 3m26s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 14m12s
wai-vector vector graphics / wasm32-wasip2 (wasmtime) (pull_request) Successful in 52s
wai-quantum views in agent hosts / views · a scripted host (pull_request) Successful in 3m32s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m55s
wai-vector vector graphics / fuzz, peak allocation, comparison count (pull_request) Successful in 19s
wai-quantum neural-processor member / member · neural processor (macos) (pull_request) Successful in 4m28s
wai-vector vector graphics / wasm32 under Node (pull_request) Successful in 49s
wai-vector vector graphics / linux-x86_64 (pull_request) Successful in 1m56s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 9m7s
wai-quantum WebGPU member / member · GPU, Vulkan (jetson-hub) (pull_request) Successful in 22m6s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 25m51s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m33s
wai-vector vector graphics / independent checker (Python) (pull_request) Successful in 3m6s
wai-quantum WebGPU member / member · GPU, Vulkan (thor) (pull_request) Successful in 24m41s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 5m43s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m41s
wai-quantum service / service · macos (pull_request) Successful in 6m58s
wai-vector vector graphics / wasm32 in three browser engines (pull_request) Successful in 4m17s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 6m51s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m28s
wai-vector vector graphics / macos-arm64 (pull_request) Successful in 2m12s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m31s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 3m36s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 32m11s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 12m29s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 18m22s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 9m4s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 4m26s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 16m0s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 30m23s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 14s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 30m3s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 41s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 6m11s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 7m32s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 2m24s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 21m41s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Successful in 8m47s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 9m59s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 40m28s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m56s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 9m18s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 2m1s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m50s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 30s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 16s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 48m29s
wai-ops integer operators / linux-aarch64 (pull_request) Successful in 1m41s
wai-ops-npu integer operators on neural processors / builds · no device is not a pass (linux-arm64) (pull_request) Successful in 1m0s
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Successful in 1m24s
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Successful in 2m14s
wai-quantum pulse and dynamics / the same bits · linux-arm64 (pull_request) Successful in 2m10s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 49m4s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 9m38s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Successful in 2m27s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 3m7s
wai-quantum extension points / the registry and the example · linux-arm64 (pull_request) Successful in 6m9s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m28s
wai-vector vector graphics / linux-aarch64 (pull_request) Successful in 4m14s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h41m35s
The commit before this one moved 55 gate jobs off `linux-arm64`. It found them by the name every gate carried, `does this change touch it`. Four workflows prefix theirs -- `WAI HTTP · does this change touch it`, `WAI breaking · does this change touch WAI`, `WAI examples · does this change touch them`, `wai-pack · does this change touch it` -- so a name match skipped them, and the fix that was meant to be exhaustive left five jobs behind. Searching on the job key instead of the display name finds them. They are the same shape as the 55: `fetch-depth: 0`, one call to pr-touches-paths.py, and every real job in the file declaring them in `needs`. The fifth is wai-http's `shards`, the accounting job that checks each patch and mutation lands in exactly one shard; it runs one bash script and gates nothing cheaper than itself, so it belongs on the same label as wai-formal-verification's. wai-http is the costly one to leave behind. Its six falsify shards are about an hour and a half of runner time, its gate decides whether they run at all, and the gate's own regex lists `.github/workflows/wai-http.yml`, so any branch that edits that file -- every Rust-toolchain branch edits all of them -- waits on an arm64 gate to find out it must then spend that hour and a half on arm64 too. Measured while this was written: `linux-arm64` 188 runs deep, `linux` idle, and the only jobs two pull requests still needed to merge were gate scripts of a few seconds each, queued behind hour-long work. The work stays where it is. Only the gates move. Verified: searching by job key now finds no gate-class job on `linux-arm64`, and all four files parse. Co-Authored-By: Claude Opus 5 <[email protected]>
196 lines
9.3 KiB
YAML
196 lines
9.3 KiB
YAML
name: WAI examples
|
|
|
|
# Every example in wai/examples/ run as a person runs it: `wai create` makes the project from
|
|
# the template the binary holds, and `wai dev` runs it (wai/quickstart/test/run-examples.sh).
|
|
# Each fails the job if its example stops working.
|
|
#
|
|
# - portable (linux): remote-desktop (a drawn screen shared into a room, the session accepted
|
|
# by the independent verifier), package-and-deliver (packed and verified), verify-receipts
|
|
# (the Rust verifier on this checkout's wai crate and the Python one, each refusing a changed
|
|
# byte), encoder-ingest (SRT into a room, every group verified against its receipt).
|
|
# - browser (macos): the room client built and packaged as the release packages it
|
|
# (wai/quickstart/build-web.sh, build.sh); the quickstart's readiness check, `wai dev
|
|
# --check`, from the unpacked archive in an empty directory; then video-room, watch-together,
|
|
# messaging, remote-desktop and package-and-deliver in the host's browser; and apple-app
|
|
# (the native sink's macOS slice, the SwiftUI app built, a recorded session replayed).
|
|
# - android (linux-arm64): android-app, the native sink's Kotlin API on the host JVM.
|
|
#
|
|
# Push filters match the push's delta, so every path an example builds on is listed.
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'wai/examples/**'
|
|
- 'wai/quickstart/**'
|
|
- 'wai/wai-rs/**'
|
|
- 'wai/wai-pack/**'
|
|
- 'wai/wai-live-web/**'
|
|
- 'wai/wai-quantum/**'
|
|
- 'wai/wai-ops/**'
|
|
- 'wai/wai-sink-swift/**'
|
|
- 'wai/wai-sink-android/**'
|
|
- 'wai/claim-conformance/_ed25519.py'
|
|
- 'wai/claim-conformance/_blake3.py'
|
|
- 'wai/live-conformance/remote_desktop_verify.py'
|
|
- 'wai/live-conformance/live_rooms_verify.py'
|
|
- 'wai/live-conformance/telemetry_aggregate_verify.py'
|
|
- 'wai/pack-conformance/packs/video-base-01/**'
|
|
- 'joule-code/joule-code-rs/**'
|
|
- '.github/workflows/wai-examples.yml'
|
|
schedule:
|
|
- cron: '17 5 * * *'
|
|
|
|
jobs:
|
|
# The path filters gate the trigger; this job gates the work from the pull request's own
|
|
# diff (scripts/pr-touches-paths.py, reading the list above), as wai-pack.yml explains.
|
|
relevant:
|
|
name: WAI examples · does this change touch them
|
|
runs-on: linux
|
|
outputs:
|
|
run: ${{ steps.gate.outputs.run }}
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: 0
|
|
- id: gate
|
|
run: |
|
|
set -euo pipefail
|
|
r=$(python3 scripts/pr-touches-paths.py .github/workflows/wai-examples.yml \
|
|
"${{ github.event.pull_request.base.sha }}" \
|
|
"${{ github.event.pull_request.head.sha }}")
|
|
echo "this change touches the examples: $r"
|
|
echo "run=$r" >> "$GITHUB_OUTPUT"
|
|
|
|
portable:
|
|
name: WAI examples · portable · linux
|
|
needs: relevant
|
|
if: needs.relevant.outputs.run == 'true'
|
|
runs-on: linux
|
|
timeout-minutes: 90
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- name: Install Rust 1.98.0
|
|
shell: bash
|
|
run: |
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
|
command -v rustup >/dev/null 2>&1 || \
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0
|
|
rustup toolchain install 1.98.0 --profile minimal
|
|
rustup default 1.98.0
|
|
SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo"
|
|
command -v python3 >/dev/null && command -v curl >/dev/null || { $SUDO apt-get update -qq; $SUDO apt-get install -y -qq python3 curl; }
|
|
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
|
# The binaries the archive holds, from this checkout. The portable examples load no page,
|
|
# so the room client's files are the source tree's (WAI_WEB), without its WebAssembly.
|
|
- name: Build wai, the relay, the room service, the remote host and the packager
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
b="$RUNNER_TEMP/bin"; mkdir -p "$b"
|
|
out() { (cd "$1" && cargo metadata --format-version 1 --no-deps --locked | python3 -c 'import json,sys; print(json.load(sys.stdin)["target_directory"])'); }
|
|
(cd wai/wai-rs && cargo build --locked --release --no-default-features --features quickstart --bin wai) && cp "$(out wai/wai-rs)/release/wai" "$b/"
|
|
(cd joule-code/joule-code-rs && cargo build --locked --release -p joule-moq-relay --bin wai-relay) && cp "$(out joule-code/joule-code-rs)/release/wai-relay" "$b/"
|
|
(cd joule-code/joule-code-rs/crates/joule-moq-room && cargo build --locked --release --bin wai-room) && cp "$(out joule-code/joule-code-rs/crates/joule-moq-room)/release/wai-room" "$b/"
|
|
(cd joule-code/joule-code-rs/crates/joule-moq-remote && cargo build --locked --release --bin wai-remote-host) && cp "$(out joule-code/joule-code-rs/crates/joule-moq-remote)/release/wai-remote-host" "$b/"
|
|
(cd wai/wai-pack && cargo build --locked --release --bin wai-pack) && cp "$(out wai/wai-pack)/release/wai-pack" "$b/"
|
|
echo "$b" >> "$GITHUB_PATH"
|
|
- name: The portable examples
|
|
shell: bash
|
|
env:
|
|
WAI_WEB: ${{ github.workspace }}/joule-code/joule-code-rs/crates/joule-moq-web/web
|
|
run: bash wai/quickstart/test/run-examples.sh portable
|
|
|
|
browser:
|
|
name: WAI examples · the archive, the readiness check, the browser and Apple · macos
|
|
needs: relevant
|
|
if: needs.relevant.outputs.run == 'true'
|
|
runs-on: macos
|
|
timeout-minutes: 120
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- name: Put cargo on PATH
|
|
shell: bash
|
|
run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
|
- name: wasm32 target and wasm-bindgen CLI 0.2.127
|
|
shell: bash
|
|
run: |
|
|
rustup target add wasm32-unknown-unknown
|
|
command -v wasm-bindgen >/dev/null && wasm-bindgen --version | grep -q ' 0\.2\.127$' || cargo install --locked wasm-bindgen-cli --version 0.2.127
|
|
- name: The room client and the archive, as the release builds them
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
nice -n 10 bash wai/quickstart/build-web.sh "$RUNNER_TEMP/web"
|
|
nice -n 10 bash wai/quickstart/build.sh "$RUNNER_TEMP/dist" --web "$RUNNER_TEMP/web"
|
|
mkdir -p "$RUNNER_TEMP/unpacked"
|
|
tar -C "$RUNNER_TEMP/unpacked" -xzf "$RUNNER_TEMP"/dist/wai-*.tar.gz
|
|
echo "WAI_DIST=$(ls -d "$RUNNER_TEMP"/unpacked/wai-*)" >> "$GITHUB_ENV"
|
|
# The quickstart's readiness check: from the archive alone, in an empty directory, the
|
|
# relay, the room service and the page on one origin, each piece checked through it.
|
|
- name: wai hello, wai verify and wai dev --check from the archive
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
d="$RUNNER_TEMP/clean"; rm -rf "$d"; mkdir -p "$d"; cd "$d"
|
|
"$WAI_DIST/bin/wai" hello h
|
|
"$WAI_DIST/bin/wai" verify h
|
|
mkdir p && cd p && "$WAI_DIST/bin/wai" dev --check --port 0
|
|
- name: The examples in the browser
|
|
shell: bash
|
|
env:
|
|
BROWSER_BIN: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome # allow-name: the macOS runner's browser executable, a file path
|
|
run: |
|
|
set -euo pipefail
|
|
test -x "$BROWSER_BIN" || { echo "::error::this runner has no browser at $BROWSER_BIN"; exit 1; }
|
|
nice -n 10 bash wai/quickstart/test/run-examples.sh browser
|
|
- name: apple-app
|
|
shell: bash
|
|
run: nice -n 10 bash wai/quickstart/test/run-examples.sh apple
|
|
|
|
android:
|
|
name: WAI examples · android-app · linux-arm64
|
|
needs: relevant
|
|
if: needs.relevant.outputs.run == 'true'
|
|
runs-on: linux-arm64
|
|
timeout-minutes: 60
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- name: Install Rust 1.98.0
|
|
shell: bash
|
|
run: |
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
|
command -v rustup >/dev/null 2>&1 || \
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0
|
|
rustup toolchain install 1.98.0 --profile minimal
|
|
rustup default 1.98.0
|
|
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
|
- name: JDK 17
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
j="/usr/lib/jvm/java-17-openjdk-$(dpkg --print-architecture)"
|
|
if [ ! -x "$j/bin/javac" ]; then
|
|
sudo=$(command -v sudo || true)
|
|
$sudo apt-get update -qq
|
|
$sudo apt-get install -y -qq --no-install-recommends openjdk-17-jdk-headless >/dev/null
|
|
fi
|
|
echo "JAVA_HOME=$j" >> "$GITHUB_ENV"
|
|
- name: wai
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
(cd wai/wai-rs && cargo build --locked --release --no-default-features --features quickstart --bin wai)
|
|
t=$(cd wai/wai-rs && cargo metadata --format-version 1 --no-deps --locked | python3 -c 'import json,sys; print(json.load(sys.stdin)["target_directory"])')
|
|
echo "$t/release" >> "$GITHUB_PATH"
|
|
- name: android-app
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
cache=/ci-cache/wai-sink-android
|
|
mkdir -p "$cache" 2>/dev/null || cache="$RUNNER_TEMP/wai-sink-android"
|
|
export WAI_SINK_GRADLE_DISTS="$cache/dists" GRADLE_USER_HOME="$cache/gradle-home"
|
|
bash wai/quickstart/test/run-examples.sh android
|