Le container Qdrant lancé pour les tests d'intégration n'est jamais nettoyé après l'exécution du workflow, que la run réussisse ou échoue. Sur un runner partagé, le container qdrant d'une run précédente persiste et bloque le démarrage du suivant :
docker: Error response from daemon: Conflict. The container name "/qdrant" is already in use...
docker rm -f qdrant avant docker run — tue le container s'il existe encore avant d'en lancer un nouveau
Step Cleanup Qdrant avec if: always() — nettoie le container après les tests, que les tests passent ou échouent
Les deux étapes utilisent 2>/dev/null || true pour ne jamais casser la pipeline si le container n'existe pas.
## Problème
Le container Qdrant lancé pour les tests d'intégration n'est jamais nettoyé après l'exécution du workflow, que la run réussisse ou échoue. Sur un runner partagé, le container `qdrant` d'une run précédente persiste et bloque le démarrage du suivant :
```
docker: Error response from daemon: Conflict. The container name "/qdrant" is already in use...
```
Voir run #1958 job #4795.
## Solution
Deux mesures de protection :
1. **`docker rm -f qdrant` avant `docker run`** — tue le container s'il existe encore avant d'en lancer un nouveau
2. **Step `Cleanup Qdrant` avec `if: always()`** — nettoie le container après les tests, que les tests passent ou échouent
Les deux étapes utilisent `2>/dev/null || true` pour ne jamais casser la pipeline si le container n'existe pas.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problème
Le container Qdrant lancé pour les tests d'intégration n'est jamais nettoyé après l'exécution du workflow, que la run réussisse ou échoue. Sur un runner partagé, le container
qdrantd'une run précédente persiste et bloque le démarrage du suivant :Voir run #1958 job #4795.
Solution
Deux mesures de protection :
docker rm -f qdrantavantdocker run— tue le container s'il existe encore avant d'en lancer un nouveauCleanup Qdrantavecif: always()— nettoie le container après les tests, que les tests passent ou échouentLes deux étapes utilisent
2>/dev/null || truepour ne jamais casser la pipeline si le container n'existe pas.