fix(linux): render UI correctly in AppImage (CSP + SVG sizing) (#4) #25
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 / PR Quality Check | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| env: | |
| # Opt into Node.js 24 now — forced on June 16 2026, removal Sep 16 2026 | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| jobs: | |
| # ---------------------------------------------------------------------------- | |
| # 1. Frontend: Node.js & Angular build check | |
| # ---------------------------------------------------------------------------- | |
| frontend-check: | |
| name: Frontend Lint & Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 9 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: 'pnpm' | |
| - name: Install Node Dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Run Build | |
| run: pnpm run build | |
| # ---------------------------------------------------------------------------- | |
| # 2. Backend: Rust & Tauri Quality Checks | |
| # ---------------------------------------------------------------------------- | |
| backend-check: | |
| name: Rust backend Clippy & Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Install Linux System Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libglib2.0-dev \ | |
| libgexiv2-dev \ | |
| libwebkit2gtk-4.1-dev \ | |
| build-essential \ | |
| curl \ | |
| wget \ | |
| file \ | |
| libxdo-dev \ | |
| libssl-dev \ | |
| libayatana-appindicator3-dev \ | |
| librsvg2-dev | |
| - name: Install Rust Toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy, rustfmt | |
| - name: Cache Rust target and registry | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| src-tauri/target | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo- | |
| - name: Create stub resource files for CI | |
| run: | | |
| mkdir -p src-tauri/resources | |
| touch src-tauri/resources/convnext.onnx | |
| touch src-tauri/resources/convnext_labels.json | |
| - name: Check Formatting | |
| run: cargo fmt --manifest-path src-tauri/Cargo.toml --all -- --check | |
| - name: Run Clippy Linter | |
| run: cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets -- -D warnings | |
| - name: Run Backend Tests | |
| run: cargo test --manifest-path src-tauri/Cargo.toml | |
| # ---------------------------------------------------------------------------- | |
| # 3. Python: Scripts Syntax Check | |
| # ---------------------------------------------------------------------------- | |
| python-check: | |
| name: Python Linting | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| - name: Install Linting Tools | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install flake8 black | |
| - name: Check code formatting with black | |
| run: black --check . | |
| - name: Lint with flake8 | |
| # stop the build if there are Python syntax errors or undefined names | |
| # exit-zero treats all errors as warnings. We will enforce basic syntax correctness. | |
| run: flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics |