Browse Source

Les tests passent avant de publier l'image Docker

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Johnounet 20 hours ago
parent
commit
aa861f744b
2 changed files with 15 additions and 0 deletions
  1. 13 0
      .github/workflows/docker-image.yml
  2. 2 0
      CHANGELOG.md

+ 13 - 0
.github/workflows/docker-image.yml

@@ -19,6 +19,19 @@ jobs:
         with:
           persist-credentials: false
 
+      # Même version que le Dockerfile. Si les tests échouent, le job
+      # s'arrête ici : rien n'est construit ni poussé sur Docker Hub.
+      - name: Set up Python
+        uses: actions/setup-python@v6
+        with:
+          python-version: "3.15"
+
+      - name: Install dependencies
+        run: pip install -r requirements.txt
+
+      - name: Run tests
+        run: python -m unittest
+
       - name: Log in to DockerHub
         env:
           DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}

+ 2 - 0
CHANGELOG.md

@@ -18,6 +18,8 @@ Les versions les plus récentes sont en haut. Chaque entrée commence par un ré
 
 ### Corrections
 
+- **L'image Docker n'est plus publiée si les tests échouent.** Chaque push sur `main` construisait et poussait l'image sur Docker Hub (`latest`, celle de la production, et le sha du commit) sans lancer les tests : une régression partait directement en production. Le workflow GitHub installe maintenant Python 3.15 (la version du Dockerfile) et les dépendances, puis lance `python -m unittest` ; si un test échoue, l'image n'est ni construite ni poussée.
+
 - **Deux bots ne tournent plus en boucle.** Rika répond aux autres bots quand ils la mentionnent ou répondent à l'un de ses messages, sans aucune limite : face à un bot qui répond à tout avec « Répondre » (et donc la pinge), chaque réponse déclenchait la suivante, avec un appel à Claude toutes les quelques secondes jusqu'à ce que quelqu'un coupe un des bots. Elle ne répond plus à plus de 5 messages de bots d'affilée dans un salon ; le compte repart de zéro au premier message d'un membre dans ce salon, ou après 10 minutes sans message de bot. Le journal le signale une fois par série.
 
 - **Une rafale de mentions ne lance plus un appel par message.** Hors du salon dédié, chaque mention lançait son propre appel à Claude, en parallèle : 10 « @Rika ? » envoyés en 5 secondes dans #général donnaient 10 appels, chacun avec ses 20 messages de contexte, puis 10 réponses à la suite. Les mentions fonctionnent maintenant comme le salon dédié : une seule réponse à la fois par salon, et les mentions arrivées pendant qu'elle écrit partent ensemble dans l'appel suivant, avec leurs pièces jointes (deux appels au lieu de dix). La réponse groupée relit aussi celle que Rika vient de poster : elle ne se répète pas et ne se contredit pas. Si une pièce jointe est refusée, seule cette mention est retirée. Les mentions reçues pendant une absence reçoivent aussi une seule réponse au lieu d'une par message.