mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-13 10:16:56 +02:00
Le serveur Dart (bin/) est remplacé par un serveur Rust (server/) : tokio + axum, reqwest/rustls, SQLite embarqué via rusqlite. Même API, mêmes routes et mêmes réponses : le front Flutter ne change pas. La base de production est reprise telle quelle : schéma, migrations et formats de dates (DateTime.toIso8601String de Dart) sont reproduits à l'identique, les sessions et hachages existants restent valides. Comportement conservé : cascade de routage, anti-SSRF, logs masqués, rate limits, transcodage HLS/turbo.ts avec repli GPU, quotas fournisseur, enregistrements (reprise, relances, fusion), season passes, EPG, logos de repli, arrêt gracieux sur SIGTERM. Tests Dart portés (132 tests Rust) ; la CI exécute fmt, test et clippy -D warnings, l'image Docker compile le serveur dans un étage rust:1.98.1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
58 lines
1.8 KiB
YAML
58 lines
1.8 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
# Un push qui en suit un autre annule le run précédent : inutile de
|
|
# consommer un runner pour un commit déjà obsolète.
|
|
concurrency:
|
|
group: ci-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
frontend:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: subosito/flutter-action@v2
|
|
with:
|
|
# Version épinglée : `channel: stable` seul fait dériver le SDK au
|
|
# fil du temps (une release Flutter peut casser la CI sans aucun
|
|
# changement dans le dépôt). Le cache évite de retélécharger SDK et
|
|
# dépendances pub à chaque run.
|
|
flutter-version: 3.47.6
|
|
channel: stable
|
|
cache: true
|
|
- run: flutter pub get
|
|
# Infos (pre-existing withOpacity/dart:html deprecations) are not
|
|
# fatal; errors and warnings still fail the build.
|
|
- run: flutter analyze --no-fatal-infos
|
|
- run: flutter test
|
|
# Moteur de lecture web (web/xf-player-core.js) : Node est préinstallé
|
|
# sur les runners ubuntu, aucune dépendance npm.
|
|
- run: node --test "test/web/*_test.mjs"
|
|
- run: flutter build web --release
|
|
|
|
backend:
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
working-directory: server
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
# Toolchain épinglée : la même que l'image Docker (rust:1.98.1).
|
|
- uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: 1.98.1
|
|
components: clippy
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: server
|
|
- run: cargo fmt --check
|
|
- run: cargo build --locked
|
|
- run: cargo test --locked
|
|
- run: cargo clippy --locked -- -D warnings
|