bdd-container-update

Par nvidia-ai-blueprints · video-search-and-summarization

Mets à jour l'image Docker du conteneur de tests BDD lorsque ses dépendances ou son environnement d'exécution changent. Détermine le type de bump de version (major, minor ou patch), reconstruit l'image Docker, la pousse vers le registre GitLab et met à jour le tag de l'image dans start_test.sh. Le code source des tests (tests/, features/, scripts/, data/, conftest.py) est monté en bind-mount depuis le repo hôte au moment de l'exécution, donc les modifications purement liées aux tests ne nécessitent PAS de reconstruction du conteneur. À utiliser uniquement lorsque des fichiers intégrés dans l'image sont modifiés : Dockerfile, docker-entrypoint.sh, pyproject.toml, poetry.lock.

npx skills add https://github.com/nvidia-ai-blueprints/video-search-and-summarization --skill bdd-container-update

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/Dockerfile
  • test/bdd_tests/docker-entrypoint.sh
  • test/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.py
  • test/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)

Skills similaires