Mise à jour du conteneur de test BDD
Le conteneur de test BDD exécute bdd_test depuis
<INTERNAL_REGISTRY>/bdd_tests:<TAG>. Puisque le runner CI monte en bind le répertoire de test du host dans /app/, l'image ne doit être reconstruite que si les éléments qu'elle contient changent.
Quand reconstruire
Reconstruction requise -- fichiers inclus dans l'image :
test/bdd_tests/Dockerfiletest/bdd_tests/docker-entrypoint.shtest/bdd_tests/pyproject.toml(tout changement -- dépendances ou config pytest)test/bdd_tests/poetry.lock
Reconstruction NON requise -- montés en bind au runtime par
cicd_files/docker-compose-test/start_test.sh :
test/bdd_tests/tests/**test/bdd_tests/features/**test/bdd_tests/scripts/**test/bdd_tests/data/**test/bdd_tests/conftest.pytest/bdd_tests/config.json
Si une modification touche uniquement des fichiers de la deuxième liste, arrête-toi ici -- aucun travail sur le conteneur n'est nécessaire et start_test.sh n'a pas changé.
1. Identifier le tag de l'image actuelle
Le tag de l'image se trouve dans cicd_files/docker-compose-test/start_test.sh à l'intérieur de la fonction update_docker_compose(), sur la ligne qui définit l'image du service test :
image: <INTERNAL_REGISTRY>/bdd_tests:v<MAJOR>.<MINOR>.<PATCH>_x86
Extrais les numéros MAJOR, MINOR et PATCH actuels.
2. Déterminer le changement de version
Classe les changements effectués sous test/bdd_tests/ :
| Type de changement | Changement | Exemples |
|---|---|---|
| Major | Incrémenter MAJOR, réinitialiser MINOR et PATCH à 0 | Changement de l'image de base du Dockerfile, réécriture de l'entrypoint, mise à niveau de version majeure de Python, upgrade de version majeure de dépendance (ex. poetry major), nouveau package au niveau système ajouté au Dockerfile |
| Minor | Incrémenter MINOR, réinitialiser PATCH à 0 | Nouvelle dépendance runtime dans pyproject.toml, mises à jour de version mineure de dépendance dans pyproject.toml/poetry.lock, nouveau plugin pytest dans les dépendances, ajouts au Dockerfile qui ne cassent pas les tests existants |
| Patch | Incrémenter PATCH | Upgrades de version patch de dépendance, petit nettoyage du Dockerfile, éditions de commentaires uniquement dans le Dockerfile/entrypoint, pinning d'une dépendance transitive dans poetry.lock |
En cas de doute entre major et minor, préfère minor. En cas de doute entre minor et patch, préfère patch.
3. Construire la nouvelle image de conteneur
cd test/bdd_tests
docker build -t <INTERNAL_REGISTRY>/bdd_tests:v<NEW_VERSION>_x86 .
Remplace <NEW_VERSION> par la valeur calculée MAJOR.MINOR.PATCH.
4. Pousser vers le registre GitLab
docker push <INTERNAL_REGISTRY>/bdd_tests:v<NEW_VERSION>_x86
Assure-toi d'être connecté au registre GitLab au préalable :
docker login <INTERNAL_REGISTRY>
5. Mettre à jour le tag de l'image dans start_test.sh
Dans cicd_files/docker-compose-test/start_test.sh, localise la ligne à l'intérieur de la fonction update_docker_compose() :
image: <INTERNAL_REGISTRY>/bdd_tests:v<OLD_VERSION>_x86
Remplace <OLD_VERSION> par <NEW_VERSION>.
Seule cette ligne doit changer. Ne modifie aucune autre partie du fichier.
6. Résumé
Après avoir complété la mise à jour, rapporte :
- Tag précédent :
v<OLD_VERSION>_x86 - Nouveau tag :
v<NEW_VERSION>_x86 - Type de changement : major / minor / patch
- Raison : description d'une ligne expliquant pourquoi ce niveau de changement a été choisi
- Fichiers modifiés :
cicd_files/docker-compose-test/start_test.sh(tag de l'image)
Référence rapide
| Élément | Valeur |
|---|---|
| Registre | <INTERNAL_REGISTRY>/bdd_tests |
| Format du tag | v<MAJOR>.<MINOR>.<PATCH>_x86 |
| Dockerfile | test/bdd_tests/Dockerfile |
| Localisation du tag | cicd_files/docker-compose-test/start_test.sh -- fonction update_docker_compose() |
| Nom du conteneur | bdd_test |
| Répertoire source du bind-mount | test/bdd_tests/ -> /app/ (sous-répertoires montés, .venv et dépendances conservés) |