CI / lint (push) Failing after 16s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 18s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- frontend/index.html : splash #boot-splash 100% inline (CSS+JS), scripts CDN en defer pour ne pas bloquer le premier paint - frontend/js/app.js : signale le boot terminé via __OBSIGATE_BOOTED (try/finally) - desktop/src/main.rs : met à jour le statut du splash avant la redirection vers le backend - ci: stage backend/ + frontend/ sous desktop/ avant tauri build (resources backend/** et frontend/**) dans desktop-build.yml et build-linux.sh - desktop/gen/schemas/windows-schema.json : régénéré (permissions store/updater) - docs: README, README.fr, ROADMAP
66 lines
3.0 KiB
Bash
Executable File
66 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# ============================================================
|
|
# ObsiGate Desktop — Build Linux (.deb + .AppImage)
|
|
# Prérequis : Rust, Tauri CLI, libwebkit2gtk, Python 3.11
|
|
# ============================================================
|
|
set -e
|
|
|
|
echo "========================================"
|
|
echo " ObsiGate Desktop — Build Linux"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
# ── 1. Vérifier les prérequis ─────────────────────────────────
|
|
echo "[1/5] Verifying prerequisites..."
|
|
command -v cargo >/dev/null 2>&1 || { echo "❌ Rust/Cargo not found. Install: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh"; exit 1; }
|
|
command -v tauri >/dev/null 2>&1 || cargo install tauri-cli
|
|
|
|
# Check system deps
|
|
if command -v apt-get >/dev/null 2>&1; then
|
|
sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev curl 2>/dev/null
|
|
fi
|
|
echo "✅ Dependencies OK"
|
|
|
|
# ── 2. Préparer Python 3.11 ────────────────────────────────────
|
|
echo "[2/5] Preparing Python environment..."
|
|
python3 -m venv python-embed/venv
|
|
source python-embed/venv/bin/activate
|
|
pip install --upgrade pip -q
|
|
pip install -r ../backend/requirements.txt -q
|
|
echo "✅ Python environment ready"
|
|
|
|
# ── 2b. Stage backend + frontend pour le bundle ───────────────
|
|
# tauri.conf.json embarque backend/** et frontend/** depuis desktop/ :
|
|
# sans ce staging, tauri_build échoue (« glob pattern backend/**/* path not found »).
|
|
echo "[2b/5] Staging backend + frontend for bundle..."
|
|
rm -rf backend frontend
|
|
cp -r ../backend backend
|
|
cp -r ../frontend frontend
|
|
echo "✅ Staged"
|
|
|
|
# ── 3. Build Tauri ────────────────────────────────────────────
|
|
echo "[3/5] Building Tauri application..."
|
|
cargo tauri build --target x86_64-unknown-linux-gnu --bundles deb,appimage
|
|
echo "✅ Build successful"
|
|
|
|
# ── 4. Copier le runtime à côté de l'exécutable ───────────────
|
|
OUTDIR="target/x86_64-unknown-linux-gnu/release"
|
|
echo "[4/5] Copying runtime to $OUTDIR..."
|
|
rm -rf "$OUTDIR/python-embed" "$OUTDIR/backend" "$OUTDIR/frontend"
|
|
cp -r python-embed "$OUTDIR/"
|
|
cp -r ../backend "$OUTDIR/"
|
|
cp -r ../frontend "$OUTDIR/"
|
|
echo "✅ Runtime + frontend copied"
|
|
|
|
# ── 4b. Nettoyer les dossiers stagés ──────────────────────────
|
|
rm -rf backend frontend
|
|
echo "✅ Cleaned"
|
|
|
|
# ── 5. Résultats ───────────────────────────────────────────────
|
|
OUTDIR="target/x86_64-unknown-linux-gnu/release"
|
|
echo "[5/5] Results:"
|
|
ls -lh "$OUTDIR/bundle/deb/"*.deb 2>/dev/null
|
|
ls -lh "$OUTDIR/bundle/appimage/"*.AppImage 2>/dev/null
|
|
echo ""
|
|
echo "✅ Done! Check $OUTDIR/bundle/"
|