diff --git a/scripts/local/run_agents_for_project.sh b/scripts/local/run_agents_for_project.sh index 6d4b05e..e73fa50 100755 --- a/scripts/local/run_agents_for_project.sh +++ b/scripts/local/run_agents_for_project.sh @@ -7,29 +7,44 @@ set -euo pipefail PROJECT_PATH="${1:-.}" OUTPUT_DIR="${2:-tests/reports/agents}" TEMPLATE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +MODULE_LAST_IMAGE_FILE="$(cd "$TEMPLATE_DIR/.." && pwd)/modules/4NK_template/.last_image" if [[ ! -d "$PROJECT_PATH" ]]; then echo "Erreur: Le projet '$PROJECT_PATH' n'existe pas" >&2 exit 1 fi +mkdir -p "$PROJECT_PATH/$OUTPUT_DIR" + echo "=== Lancement des agents 4NK_template sur: $PROJECT_PATH ===" -# Exécuter les agents via le conteneur CI de 4NK_template -cd "$TEMPLATE_DIR" - -if command -v docker >/dev/null 2>&1; then - # Construire l'image si nécessaire - docker compose -f docker-compose.ci.yml build --no-cache - - # Lancer les agents sur le projet externe - docker compose -f docker-compose.ci.yml run --rm \ - -v "$(realpath "$PROJECT_PATH"):/work" \ - -v "$(realpath "$PROJECT_PATH/$OUTPUT_DIR"):/work/$OUTPUT_DIR" \ - project-ci bash -c "cd /work && scripts/agents/run.sh /work /work/$OUTPUT_DIR all" -else +if ! command -v docker >/dev/null 2>&1; then echo "Docker requis pour exécuter les agents via conteneur." >&2 exit 2 fi +# Si une image du module existe, l'utiliser en priorité +if [[ -f "$MODULE_LAST_IMAGE_FILE" ]]; then + IMAGE_NAME="$(cat "$MODULE_LAST_IMAGE_FILE" | tr -d '\r\n')" + echo "Utilisation de l'image du module: $IMAGE_NAME" + # Préparer montage du fichier d'env si présent + ENV_MOUNT="" + if [[ -f "$HOME/.4nk_template/.env" ]]; then + ENV_MOUNT="-v $HOME/.4nk_template/.env:/root/.4nk_template/.env:ro" + fi + # Lancer le conteneur en forçant l'entrypoint bash pour appeler run.sh + docker run --rm \ + -v "$(realpath "$PROJECT_PATH"):/work" \ + $ENV_MOUNT \ + --entrypoint bash \ + "$IMAGE_NAME" -lc "cd /work && scripts/agents/run.sh /work /work/$OUTPUT_DIR all" \ + || true +else + echo "Aucune image de module détectée, fallback docker compose dans 4NK_template" + cd "$TEMPLATE_DIR" + docker compose -f docker-compose.ci.yml build + RUNNER_MODE="agents" TARGET_DIR="/work" OUTPUT_DIR="/work/$OUTPUT_DIR" \ + docker compose -f docker-compose.ci.yml run --rm project-ci || true +fi + echo "=== Agents terminés → $PROJECT_PATH/$OUTPUT_DIR ==="