meta données pour cette page
Ceci est une ancienne révision du document !
Chaîne de qualification et de livraison
Cette page explique comment une version de LoGeAs Web passe du code fusionné à la livraison client : qualification par les tests, validation, beta, recette, release. Elle s'adresse à toute l'équipe : développeurs, et personne qui valide et recette.
Voir aussi : Lancer les tests E2E (détail du run complet) et la méthodologie
des tests (logeas-cartographie/src/assets/methodologie-tests.html, section 8).
Pourquoi une chaîne
Avant, les tests et la livraison formaient deux circuits séparés :
- une beta pouvait partir sans rapport qualité validé ;
- entre deux betas, un run de tests était rangé sous la version de la dernière beta livrée, alors
qu'il testait la prochaine ;
- les tests unitaires étaient joués deux fois (run complet, puis rapport de release), sans garantie
que ce soit sur le même code.
Désormais, aucune version n'est livrée sans un rapport qualité validé qui porte sur son code exact, et deux portes bloquantes le vérifient automatiquement.
Vue d'ensemble
| Étape | Qui | Comment | Bloquant |
|---|---|---|---|
| 1. Fusion vers la branche de version | développeur | /fusion-dev | build, tests unitaires, lint |
| 2. Qualification | développeur | scripts\qualifier-version.bat | préconditions sur les dépôts |
| 3. Validation du rapport qualité | valideur | carto, écran Rapports de version | — |
| 4. Beta | développeur | scripts\livrer-beta.bat | porte beta |
| 5. Déploiement sur le serveur de test | développeur | copie manuelle (bureau à distance) | — |
| 6. Recette de la beta | valideur | carto, écran Rapports de version | — |
| 7. Release client | développeur | scripts\livrer-release.bat | porte release |
| 8. Déploiement client | développeur | copie manuelle (bureau à distance) | — |
La même personne peut valider et recetter (équipe trop petite pour les « quatre yeux »).
2. Qualification
But : produire le rapport qualité de la prochaine version, sur un code identifié sans ambiguïté.
Avant de lancer, pour logeas-web ET logeas-lib :
- être sur la branche de version (ex.
11.2.0) ; - aucune modification locale non commitée ;
- branche à jour avec
originet poussée ; - Angular arrêté (fermer sa fenêtre console) : sinon il continuerait de servir l'ancienne
bibliothèque après sa réinstallation.
Le script vérifie tout cela lui-même et s'arrête en disant quoi corriger. Pour vérifier sans rien
lancer : powershell -ExecutionPolicy Bypass -File scripts\qualifier-version.ps1 -VerifierSeulement
(ou la commande Claude /qualifier-version).
Lancer : double-clic sur scripts\qualifier-version.bat. Le script :
- affiche la version candidate : la prochaine beta (ex.
11.2.0.9), sous laquelle le rapport
sera rangé ;
- reconstruit logeas-lib depuis son dernier commit et la réinstalle dans logeas-web
(quelques minutes) ;
- demande la confirmation UAC du démarrage des serveurs : rester devant le poste jusque-là ;
- enchaîne sans surveillance : tests unitaires des deux dépôts, tests d'interface, rapport qualité,
analyse par Claude, dépôt du rapport en brouillon sur le serveur Nono.
Pendant le run : ne rien commiter, ne rien pousser, ni dans logeas-web ni dans logeas-lib. Le rapport le détecterait (« code modifié pendant le run ») et la porte le refuserait.
Résultat : un rapport run-<version>-<AAAAMMJJ-HHMM>.html d'origine « Qualification », visible
dans l'écran Rapports de version de la carto. Si on relance une qualification pour la même version,
un nouveau rapport est créé ; les précédents restent consultables, marqués « Remplacé ».
3. Validation du rapport qualité
Dans la carto, écran Rapports de version, connecté : relire le rapport (en particulier l'analyse rédigée par Claude), puis choisir une décision.
| Décision | Quand | Commentaire |
|---|---|---|
| Validé | tous les tests passent, analyse relue | facultatif |
| Validé avec réserves | des échecs, chacun rattaché à un ticket ou à un échec déjà connu | obligatoire |
| Refusé | un échec nouveau par rapport au dernier rapport validé, ou résultat inexploitable | obligatoire |
« Validé » et « Validé avec réserves » publient le rapport en même temps : il devient visible sans connexion et constitue la pièce qualité (dossier NF Logiciel) de la version.
4. Beta
Double-clic sur scripts\livrer-beta.bat. Le script :
- passe la porte beta (voir plus bas) : s'il manque quelque chose, il s'arrête et l'explique ;
- fait le bump de version (4ᵉ chiffre) et vérifie que c'est bien la version qualifiée ;
- génère le rapport de release : les tests unitaires y sont repris de la qualification (plus
rejoués), avec un renvoi vers le rapport qualité ;
- lance le build de production vers
D:\Developpements\VersionPublic\LogeasWeb-Test\; - crée le commit « Preparation version X.Y.Z.W », le tag
X.Y.Z.W_betaet, si besoin, le tag
web-X.Y.Z.W_beta dans logeas-lib ;
- demande confirmation avant de pousser. Si on accepte : push, inscription de la beta dans la
trace du rapport qualité (indispensable pour la suite), reprise du rapport de release dans la carto. Si le rapport de release ou le build échoue, le bump est annulé : rien n'est commité ni tagué.
Reste à copier LogeasWeb-Test\browser\ sur le serveur de test (bureau à distance).
6. Recette de la beta
Une fois la beta déployée, dans la carto, écran Rapports de version, sur le rapport qualité de la version : la section Recette de la beta propose une liste de contrôle minimale.
- la version affichée dans « À propos » est celle de la beta livrée ;
- connexion et ouverture d'une base ;
- annuaire : recherche et ouverture d'une fiche ;
- comptabilité : saisie et enregistrement d'une écriture ;
- états : génération d'un état PDF ;
- sauvegarde / export d'une base ;
- chaque correctif et évolution annoncé dans le rapport de release a été vérifié.
Chaque point est Vérifié, ou Sans objet avec une justification. Le bouton Recette conforme n'est actif que si tous les points sont traités. Recette non conforme exige un commentaire.
Seule une recette conforme ouvre la release client. Une recette non conforme impose une correction, donc une nouvelle qualification et une nouvelle beta.
7. Release client
Double-clic sur scripts\livrer-release.bat. Même déroulé que la beta, derrière la porte
release : bump en version à 3 chiffres, build vers D:\Developpements\VersionPublic\LogeasWeb\,
commit, tag X.Y.Z_release, confirmation, push, inscription de la release dans la trace du
rapport. Reste à copier LogeasWeb\browser\ sur le serveur client.
Le rapport qualité, déjà publié lors de sa validation, est la pièce qualité de la release.
Les portes
Les portes lisent le manifeste des rapports et leurs décisions sur le serveur Nono de production, et
comparent au code présent sur le poste. Elles sont bloquantes. Pour les vérifier sans rien
modifier : powershell -ExecutionPolicy Bypass -File scripts\livrer-version.ps1 -Nature beta
-VerifierSeulement (ou -Nature release).
Porte beta :
- les deux dépôts sont sur leur branche de version, propres, à jour et poussés ;
- un rapport d'origine « Qualification » de la version candidate porte exactement le dernier
commit des deux dépôts (le plus récent, s'il y en a plusieurs) ;
- ce run n'a eu ni modification locale, ni changement de code en cours de route, et les paquets
logeas-lib installés sont toujours ceux du run ;
- sa décision est « Validé » ou « Validé avec réserves ».
Porte release :
package.jsonporte une beta, et le tag de cette beta est le dernier commit de logeas-web
(aucun commit depuis la beta) ;
- logeas-lib est toujours au commit qualifié, avec les mêmes paquets installés ;
- entre le code qualifié et la beta, seul le commit « Preparation version » (dans
package.json,
seul le numéro de version a pu changer) ;
- le rapport qualité est toujours validé, et la recette de cette beta est « Conforme ».
Messages fréquents :
| Message | Que faire |
|---|---|
| aucun rapport de qualification … pour le code actuel | lancer scripts\qualifier-version.bat (un commit a été fait depuis la dernière qualification) |
| le rapport … n'est pas encore validé | le valider dans la carto |
| … commit(s) non poussé(s) | pousser la branche |
| modifications locales non commitées | commiter (/fusion-dev) ou annuler |
| paquets logeas-lib installés différents de ceux du run qualifié | relancer la qualification |
| logeas-web a reçu des commits depuis la beta | requalifier, puis nouvelle beta |
| la beta … n'a pas été recettée | faire la recette dans la carto |
| serveur Nono injoignable (manifeste ou ApprobDoc illisible) | attendre son retour : aucune livraison n'est possible sans lui |
Correctif après une beta
Règle stricte : tout commit après une beta, même un correctif d'une ligne, impose une nouvelle
qualification et une nouvelle beta (X.Y.Z.W+1). Une qualification tourne sans surveillance (environ
15 minutes après la confirmation UAC) : le coût est faible, et une exception affaiblirait toute la chaîne.
En cas d'urgence : version « sauvage »
Un build hors chaîne reste possible (npm run build). Son rapport de release affiche alors
« Version non qualifiée » (tests unitaires rejoués au moment du build, aucun test d'interface
vérifié), et l'écran À propos > Logiciel de LoGeAs Web affiche « Version non qualifiée ». À réserver
aux urgences, et à régulariser par une qualification dès que possible.
Traçabilité : où trouver quoi
| Information | Où |
|---|---|
| Rapports qualité, décisions, recettes | carto, écran Rapports de version (https://cartographie-fonctionnelle.logeas-web.fr/RapportsVersion) |
| Clé du code d'un rapport (commits des deux dépôts, empreinte des paquets lib) | en tête du rapport ; en détail dans le manifeste (cleCode) |
| Historique d'un rapport (validation, publication, beta, recette, release) | table ApprobDoc du serveur Nono, trace JSON du rapport |
| Livraisons | tags X.Y.Z.W_beta / X.Y.Z_release (logeas-web), web-* (logeas-lib) |
| Qualification d'une version livrée | son rapport de release et À propos > Logiciel |
Référence des scripts
| Script | Rôle | Options |
|---|---|---|
scripts\qualifier-version.bat | préconditions, reconstruction de la lib, run complet de qualification | -VerifierSeulement |
scripts\livrer-beta.bat | porte beta, puis livraison de la beta | -VerifierSeulement |
scripts\livrer-release.bat | porte release, puis livraison de la release client | -VerifierSeulement |
scripts\lancer-e2e-complet.bat | run complet de travail (hors chaîne : origine « Run complet », non accepté par la porte) | -SansUnitaires, -SansServeurs, -SansDoc |
node scripts/porte-livraison.js beta (ou release) | porte seule (utilisée par les scripts ci-dessus) | –resultat <fichier>, –serveur <url> |
node scripts/version.js beta –simuler | affiche la version candidate sans rien modifier | — |
Les commandes Claude /qualifier-version, /release-beta et /release-client ne livrent rien
elles-mêmes : elles vérifient les préconditions ou la porte, expliquent ce qui bloque, puis renvoient
vers ces scripts.