mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-18 12:49:54 +02:00
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, rustfmt
|
|
- 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
|