gmao/docs/DEPLOYMENT.md
2026-08-14 16:02:25 +00:00

1.9 KiB

Developpement, production et versions

Version courante

La source de verite est le fichier VERSION. Le projet suit le versionnement semantique :

  • MAJEURE : changement incompatible ou migration majeure ;
  • MINEURE : fonctionnalite compatible ;
  • CORRECTIF : correction compatible ;
  • suffixe -dev.N, -alpha.N ou -rc.N avant une version stable.

La version est incluse dans le tag Docker, les labels OCI et la reponse GET /health/.

Developpement

Le code reste sur la machine et est monte dans le conteneur. Gunicorn surveille les fichiers Python par interrogation periodique et recharge ses workers.

docker compose up -d --build

Une modification Python, HTML, CSS ou JavaScript ne necessite pas de rebuild. Une modification de requirements.txt, du Dockerfile ou des paquets systeme necessite une reconstruction.

Production

Le Compose principal n'utilise aucun volume de code. Seuls MariaDB, les televersements, l'instance Flask, les donnees de fonctionnement et les sauvegardes sont persistants.

Construire une version immuable :

.\docker\build-release.ps1

Sous Debian :

./docker/build-release.sh

Deployer la version indiquee dans VERSION :

$env:GMAO_VERSION = (Get-Content .\VERSION -Raw).Trim()
docker compose -f docker-compose.yml up -d

Ne jamais monter les sources ni activer --reload en production.

Procedure de publication

  1. Mettre a jour VERSION.
  2. Completer CHANGELOG.md.
  3. Executer python -m pytest.
  4. Construire l'image avec docker/build-release.ps1.
  5. Verifier /health/ et sa cle version.
  6. Creer un commit et un tag Git gmao-v<version>.
  7. Conserver l'image versionnee ; ne pas deployer uniquement avec latest.

Pour une version stable, build-release.ps1 -TagLatest ajoute aussi le tag latest. Le script refuse ce tag pour une preversion.