Skip to content

feat(panel): read corridor list from Textile API with embedded fallback #240

feat(panel): read corridor list from Textile API with embedded fallback

feat(panel): read corridor list from Textile API with embedded fallback #240

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: stable
components: rustfmt
- uses: Swatinem/rust-cache@42dc69e1aa15d09112580998cf2ef0119e2e91ae # v2
- name: Check formatting
run: cargo fmt -- --check
- name: Run tests
run: cargo test
- name: Build release binary
run: cargo build --release --bin stitch
- name: Upload Linux binary artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: stitch-linux-x86_64-${{ github.sha }}
path: target/release/stitch
retention-days: 1
# Stitch (web UI) is behind a cargo feature, so the job above never compiles it.
# Its own job keeps the bot's CI fast while still gating the panel's tests and
# the frontend typecheck.
panel:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: stable
- uses: Swatinem/rust-cache@42dc69e1aa15d09112580998cf2ef0119e2e91ae # v2
with:
key: panel
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 22
cache: npm
cache-dependency-path: web/package-lock.json
# Typecheck and bundle first: cargo embeds whatever is in web/dist, so
# building the frontend here also proves the embed path works.
- name: Build the frontend
working-directory: web
run: |
npm ci --no-audit --no-fund
npm run build
- name: Run panel tests
run: cargo test --features panel
# stitch-desktop: tray-icon → GTK / libappindicator / libxdo; wry → WebKitGTK.
- name: Install Linux desktop build deps
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libayatana-appindicator3-dev \
libxdo-dev \
libxcb-render0-dev \
libxcb-shape0-dev \
libxcb-xfixes0-dev \
libxkbcommon-dev \
libwebkit2gtk-4.1-dev
- name: Build the panel and desktop binaries
run: |
cargo build --release --features panel,desktop \
--bin stitch-panel --bin stitch-desktop