Skip to content

Repro conteneur : fiabiliser le téléchargement du SDK Windows (xwin) et finaliser la preuve inter-machines #174

Description

@Akmot9

Note

Statut synchronisé le 08/08/2026 sur main@789bee92 — implémentation livrée, preuve locale ↔ CI restante.

Acquis : le toolchain Windows est épinglé, le rebuild applicatif est hors réseau et le run 30493190217 prouve quatre builds CI cross identiques. Docker 29.6.2 est maintenant disponible sur le poste local.

Reste : exécuter deux builds locaux conteneurisés d’un même commit, extraire leur SHA-256 puis relancer repro-container.yml sur ce commit avec windows_reference_sha256. La fermeture exige l’égalité du hash local avec les quatre hashes CI.

Le contenu détaillé ci-dessous reste la référence ; ce bandeau prévaut lorsqu’il décrit un état historique.


Statut — implémentation livrée, preuve CI inter-machines acquise

Mise à jour du 29/07/2026 sur main :

Acquis

  • cargo-xwin 0.23.0 et xwin 0.9.0 via son lockfile amont ;
  • manifeste Visual Studio 17, SDK 10.0.26100, CRT 14.44.17.14 et architecture x86_64 épinglés ;
  • retries complets du téléchargement xwin ;
  • couche windows-toolchain indépendante des sources applicatives ;
  • compilation applicative exécutée avec RUN --network=none ;
  • frontend Dockerfile et image Rust verrouillés par version et digest ;
  • plateforme hôte Docker fixée à linux/amd64 ;
  • deux runners hébergés, deux builds cross chacun, avec comparaison obligatoire des quatre manifests ;
  • build Windows natif reproductible et double build Linux également validés.

Les quatre builds Windows cross du commit 42726ae produisent exactement :

5037d8f9b76401a60f8fbf5412af12a95bb793d7846be945b4e8e9bc62395ddd  ./windows/sonar.exe

Reliquat avant fermeture — preuve locale ↔ CI au même commit

Le workflow accepte une référence locale et Docker 29.6.2 est maintenant disponible sur le poste actuel. Il reste donc à produire un hash local conteneurisé pour un commit précis :

REF=<commit> RUNS=2 NO_CACHE=1 PLATFORM=windows OUT=repro-windows \
  ./script/release/repro-build-container.sh
awk '$2 == "./windows/sonar.exe" { print $1 }' \
  repro-windows/run1/SHA256SUMS

Relancer ensuite .github/workflows/repro-container.yml sur le même commit avec ce hash dans windows_reference_sha256. Le comparateur exigera son égalité avec les quatre hashes CI.

L'issue reste ouverte uniquement pour cette dernière preuve locale ↔ CI. Le bootstrap initial de windows-toolchain reste une opération en ligne vers le manifeste Visual Studio et le CDN Microsoft ; le rebuild applicatif, lui, est désormais prouvé hors réseau.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggithub_actionsPull requests that update GitHub Actions codepriority: P2Important mais acceptable après la 1.0 initialerustPull requests that update Rust codev2

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions