5 livrables d'industrialisation posés avant la phase 13 (client réel). - .gitlab-ci.yml : pipeline minimal (fmt-check + tests core + tests frontend nightly). Pas de cross-compile Redox dans le MVP. - rustfmt.toml + fmt.sh : config formatter racine + boucle sur les 23 crates ; fmt sweep appliqué (d'où les diffs cosmétiques). - tracing dans wayland-frontend : 22 println/eprintln remplacés par debug/info/warn/error selon sévérité. Préfixe "[frontend]" supprimé (le target tracing le fournit). - tracing-subscriber dans le compositor : TeeWriter écrit sur stdout + /scheme/debug, filtre via RUST_LOG (défaut info). DebugSink/dlog supprimés. - 15 tests unitaires xdg-shell après extraction de 2 helpers libres (clamp_to_min_max + should_throttle_configure). Couvre compute_resize_geom, contraintes min/max et throttling configure. - LICENSE (GPLv3 texte officiel FSF) + .editorconfig. Total tests : 27 → 42 automatisés (compositor-core + frontend). Leyoda 2026 – GPLv3
71 lines
2.6 KiB
YAML
71 lines
2.6 KiB
YAML
# Pipeline minimal redox-wayland-compositor.
|
|
#
|
|
# Le repo n'a pas de Cargo workspace racine (chaque crate dans crates/ est
|
|
# autonome — cf README pour la raison). Les jobs ci-dessous compilent et
|
|
# testent les crates qui sont indépendantes du target x86_64-unknown-redox
|
|
# (host-buildable). Pour valider la cross-compile Redox il faut redoxer +
|
|
# le sysroot Redox (~500 Mo) : volontairement laissé hors du MVP CI, à
|
|
# activer plus tard via un job `build-redox` avec image custom.
|
|
|
|
stages:
|
|
- lint
|
|
- test
|
|
|
|
# Cache partagé : évite de re-télécharger les deps wayland-rs/tracing/etc.
|
|
# à chaque push.
|
|
.cargo-cache: &cargo-cache
|
|
cache:
|
|
key: cargo-shared
|
|
paths:
|
|
- .cargo/registry/cache/
|
|
- .cargo/registry/index/
|
|
|
|
variables:
|
|
CARGO_HOME: $CI_PROJECT_DIR/.cargo
|
|
CARGO_TERM_COLOR: always
|
|
# Build wayland-rs depuis le clone local. La CI a besoin d'un clone
|
|
# frère ../wayland-rs (cf paths relatifs dans les Cargo.toml). On le
|
|
# provisionne explicitement dans le before_script de chaque job qui en
|
|
# a besoin.
|
|
WAYLAND_RS_REV: master
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Lint : formatage uniforme sur les 23 crates.
|
|
# ---------------------------------------------------------------------------
|
|
fmt-check:
|
|
stage: lint
|
|
image: rust:latest
|
|
<<: *cargo-cache
|
|
script:
|
|
- rustup component add rustfmt
|
|
- ./fmt.sh --check
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Tests compositor-core : pure Rust, zéro dep, stable suffit.
|
|
# 27 tests unitaires de la logique de composition / Z-order / hit-test.
|
|
# ---------------------------------------------------------------------------
|
|
test-core:
|
|
stage: test
|
|
image: rust:latest
|
|
<<: *cargo-cache
|
|
script:
|
|
- cd crates/redox-wl-compositor-core
|
|
- cargo test --release
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Tests wayland-frontend : 15 tests xdg-shell (compute_resize_geom,
|
|
# clamp_to_min_max, should_throttle_configure). Nightly requis à cause de
|
|
# redox-scheme (deps transitive via redox-wl-input) qui utilise
|
|
# #![feature(linked_list_cursors)].
|
|
# ---------------------------------------------------------------------------
|
|
test-frontend:
|
|
stage: test
|
|
image: rustlang/rust:nightly
|
|
<<: *cargo-cache
|
|
before_script:
|
|
# wayland-rs est référencé en path relatif (../../../wayland-rs/...).
|
|
# Le clone frère doit exister pour que cargo résolve les deps.
|
|
- git clone --depth 1 https://github.com/Smithay/wayland-rs.git ../wayland-rs
|
|
script:
|
|
- cd crates/redox-wl-wayland-frontend
|
|
- cargo test --lib
|