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.Nou-rc.Navant 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
- Mettre a jour
VERSION. - Completer
CHANGELOG.md. - Executer
python -m pytest. - Construire l'image avec
docker/build-release.ps1. - Verifier
/health/et sa cleversion. - Creer un commit et un tag Git
gmao-v<version>. - 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.