Skip to content

Commit 227a648

Browse files
committed
test folder agent
1 parent 6ec0566 commit 227a648

File tree

2 files changed

+255
-0
lines changed

2 files changed

+255
-0
lines changed

docker-compose.test.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
version: '3.8'
2+
3+
services:
4+
azure-devops-agent:
5+
image: test-azure-agent:latest
6+
# image: hypolas/azure-devops-agent:latest
7+
container_name: azure-agent-test
8+
hostname: azure-agent-test
9+
restart: unless-stopped
10+
11+
# Variables d'environnement pour tester l'image
12+
environment:
13+
# Configuration Azure DevOps (OBLIGATOIRES pour un vrai test)
14+
# ⚠️ Remplacez ces valeurs par vos vraies valeurs
15+
- AZP_URL=https://dev.azure.com/your-org
16+
- AZP_TOKEN=test-token
17+
- AZP_POOL=aws-pool
18+
- AZP_AGENT_NAME=test-${HOSTNAME:-local}
19+
- AGENT_NUMBER=1
20+
- INSTANCE_ID=i-1234567890abcdef0
21+
22+
# Configuration AWS (OPTIONNELLES - pour récupérer le token depuis AWS Secrets Manager)
23+
# Si vous utilisez AWS Secrets Manager au lieu d'AZP_TOKEN direct :
24+
# - AWS_REGION=eu-west-1
25+
# - AZURE_DEVOPS_TOKEN_SECRET_ARN=arn:aws:secretsmanager:eu-west-1:account:secret:azure-devops-token
26+
27+
# Configuration EC2 (OPTIONNELLE - pour noms automatiques)
28+
# - INSTANCE_ID=i-1234567890abcdef0
29+
30+
# Configuration Docker-in-Docker
31+
- DEFAULT_CONTAINER_IMAGE=ubuntu:22.04
32+
- DEFAULT_VOLUMES=/var/run/docker.sock:/var/run/docker.sock,/cache:/cache,/data:/data
33+
34+
# Montages nécessaires
35+
volumes:
36+
# Socket Docker pour Docker-in-Docker
37+
- /var/run/docker.sock:/var/run/docker.sock
38+
# Cache et données persistantes
39+
- agent-test-cache:/cache
40+
- agent-test-data:/data
41+
- agent-test-work:/opt/azagent/_work
42+
43+
# Réseau isolé pour les tests
44+
networks:
45+
- azure-agent-test-network
46+
47+
# Healthcheck pour vérifier que l'agent fonctionne
48+
healthcheck:
49+
test: ["CMD-SHELL", "pgrep -f 'Agent.Listener' || exit 1"]
50+
interval: 30s
51+
timeout: 10s
52+
retries: 5
53+
start_period: 120s
54+
55+
# Limites de ressources pour les tests
56+
deploy:
57+
resources:
58+
limits:
59+
memory: 1G
60+
cpus: '1.0'
61+
reservations:
62+
memory: 512M
63+
cpus: '0.5'
64+
restart_policy:
65+
condition: on-failure
66+
delay: 5s
67+
max_attempts: 3
68+
window: 120s
69+
70+
# Service de test pour vérifier la connectivité réseau
71+
test-nginx:
72+
image: nginx:alpine
73+
container_name: test-nginx
74+
ports:
75+
- "8080:80"
76+
networks:
77+
- azure-agent-test-network
78+
profiles:
79+
- test
80+
environment:
81+
- NGINX_HOST=test-nginx
82+
- NGINX_PORT=80
83+
84+
volumes:
85+
agent-test-cache:
86+
driver: local
87+
agent-test-data:
88+
driver: local
89+
agent-test-work:
90+
driver: local
91+
92+
networks:
93+
azure-agent-test-network:
94+
driver: bridge
95+
ipam:
96+
config:
97+
- subnet: 172.20.0.0/16

test-docker-hub-image.sh

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
#!/bin/bash
2+
3+
# Script de test pour l'image Azure DevOps Agent
4+
# Usage: ./test-docker-hub-image.sh
5+
6+
set -e
7+
8+
echo "🐳 Test de l'image Azure DevOps Agent depuis Docker Hub"
9+
echo "=================================================="
10+
11+
# Couleurs pour les messages
12+
RED='\033[0;31m'
13+
GREEN='\033[0;32m'
14+
YELLOW='\033[1;33m'
15+
BLUE='\033[0;34m'
16+
NC='\033[0m' # No Color
17+
18+
# Fonction pour afficher les messages
19+
log_info() {
20+
echo -e "${BLUE}ℹ️ $1${NC}"
21+
}
22+
23+
log_success() {
24+
echo -e "${GREEN}$1${NC}"
25+
}
26+
27+
log_warning() {
28+
echo -e "${YELLOW}⚠️ $1${NC}"
29+
}
30+
31+
log_error() {
32+
echo -e "${RED}$1${NC}"
33+
}
34+
35+
# Vérifier si Docker est disponible
36+
if ! command -v docker &> /dev/null; then
37+
log_error "Docker n'est pas installé ou n'est pas dans le PATH"
38+
exit 1
39+
fi
40+
41+
# Vérifier si Docker Compose est disponible
42+
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
43+
log_error "Docker Compose n'est pas installé"
44+
exit 1
45+
fi
46+
47+
# Détecter la commande docker compose
48+
if docker compose version &> /dev/null; then
49+
DOCKER_COMPOSE="docker compose"
50+
else
51+
DOCKER_COMPOSE="docker-compose"
52+
fi
53+
54+
log_info "Utilisation de: $DOCKER_COMPOSE"
55+
56+
# Vérifier si le fichier .env existe
57+
if [ ! -f ".env" ]; then
58+
log_warning "Fichier .env non trouvé"
59+
if [ -f ".env.test" ]; then
60+
log_info "Copie de .env.test vers .env"
61+
cp .env.test .env
62+
log_warning "⚠️ IMPORTANT: Éditez le fichier .env avec vos vraies valeurs Azure DevOps"
63+
echo ""
64+
echo "Vous devez configurer au minimum :"
65+
echo " - AZP_URL=https://dev.azure.com/votre-organisation"
66+
echo " - AZP_TOKEN=votre-personal-access-token"
67+
echo ""
68+
read -p "Appuyez sur Entrée après avoir édité .env, ou Ctrl+C pour annuler..."
69+
else
70+
log_error "Fichier .env.test non trouvé"
71+
exit 1
72+
fi
73+
fi
74+
75+
echo ""
76+
log_info "Pulling de l'image depuis Docker Hub..."
77+
docker pull hypolas/azure-devops-agent:latest
78+
79+
echo ""
80+
log_info "Vérification de l'image..."
81+
docker inspect hypolas/azure-devops-agent:latest > /dev/null
82+
83+
echo ""
84+
log_info "Affichage des informations de l'image..."
85+
docker images hypolas/azure-devops-agent:latest
86+
87+
echo ""
88+
log_info "Nettoyage des anciens conteneurs de test..."
89+
$DOCKER_COMPOSE -f docker-compose.test.yml down --remove-orphans 2>/dev/null || true
90+
91+
echo ""
92+
log_info "Démarrage du conteneur de test..."
93+
$DOCKER_COMPOSE -f docker-compose.test.yml --env-file .env up -d
94+
95+
echo ""
96+
log_info "Attente du démarrage du conteneur..."
97+
sleep 10
98+
99+
echo ""
100+
log_info "Vérification du statut du conteneur..."
101+
if docker ps | grep azure-agent-test > /dev/null; then
102+
log_success "Conteneur en cours d'exécution"
103+
else
104+
log_error "Conteneur non démarré"
105+
echo ""
106+
log_info "Logs du conteneur :"
107+
docker logs azure-agent-test
108+
exit 1
109+
fi
110+
111+
echo ""
112+
log_info "Affichage des logs (10 dernières lignes)..."
113+
docker logs --tail 10 azure-agent-test
114+
115+
echo ""
116+
log_info "Test de la connectivité aws-ssm..."
117+
if docker exec azure-agent-test aws-ssm --version > /dev/null 2>&1; then
118+
log_success "aws-ssm installé et fonctionnel"
119+
else
120+
log_warning "aws-ssm non accessible (peut être normal selon la configuration)"
121+
fi
122+
123+
echo ""
124+
log_info "Test de la connectivité Docker..."
125+
if docker exec azure-agent-test docker --version > /dev/null 2>&1; then
126+
log_success "Docker CLI installé et fonctionnel"
127+
else
128+
log_error "Docker CLI non accessible"
129+
fi
130+
131+
echo ""
132+
log_info "Vérification de l'utilisateur..."
133+
USER_INFO=$(docker exec azure-agent-test whoami)
134+
log_info "Utilisateur actuel: $USER_INFO"
135+
136+
echo ""
137+
log_info "Vérification des processus..."
138+
docker exec azure-agent-test ps aux | head -10
139+
140+
echo ""
141+
echo "=================================================="
142+
log_success "Test terminé !"
143+
echo ""
144+
echo "Commandes utiles :"
145+
echo " • Voir les logs en temps réel : docker logs -f azure-agent-test"
146+
echo " • Entrer dans le conteneur : docker exec -it azure-agent-test bash"
147+
echo " • Arrêter le test : $DOCKER_COMPOSE -f docker-compose.test.yml down"
148+
echo " • Supprimer les volumes : $DOCKER_COMPOSE -f docker-compose.test.yml down -v"
149+
echo ""
150+
151+
# Optionnel: démarrer le service de test nginx
152+
read -p "Voulez-vous démarrer le service nginx de test ? (y/N): " -n 1 -r
153+
echo
154+
if [[ $REPLY =~ ^[Yy]$ ]]; then
155+
log_info "Démarrage du service nginx de test..."
156+
$DOCKER_COMPOSE -f docker-compose.test.yml --profile test up -d
157+
log_success "Service nginx démarré sur http://localhost:8080"
158+
fi

0 commit comments

Comments
 (0)