docs: add server install guide and update navigation #158
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
| 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 | |
| # 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 |