Files
xtremflow/.github/workflows/ci.yml
T
2026-10-13 00:32:20 +02:00

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