-
Notifications
You must be signed in to change notification settings - Fork 1
105 lines (93 loc) · 3.29 KB
/
Copy pathci.yml
File metadata and controls
105 lines (93 loc) · 3.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
name: CI — TP Bash
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
# ── 1. Vérifier que tous les scripts attendus sont présents ──────────
- name: Vérification des scripts attendus
run: |
scripts=(
"mon-projet/src/info.sh"
"mon-projet/src/check-logs.sh"
"mon-projet/src/analyse-niveaux.sh"
"mon-projet/src/rapport.sh"
"mon-projet/src/couleurs.sh"
"mon-projet/src/check-env.sh"
"setup.sh"
)
all_present=true
for script in "${scripts[@]}"; do
if [ -f "$script" ]; then
echo "✅ $script"
else
echo "❌ $script — manquant"
all_present=false
fi
done
if [ "$all_present" = false ]; then
echo ""
echo "❌ Certains scripts sont manquants. Vérifiez votre travail."
exit 1
fi
echo ""
echo "✅ Tous les scripts attendus sont présents !"
# ── 2. Analyse syntaxique avec ShellCheck ────────────────────────────
- name: Analyse syntaxique avec ShellCheck
run: |
sudo apt-get install -y shellcheck -qq
echo "=== Résultats ShellCheck ==="
errors=false
while IFS= read -r script; do
echo ""
echo "▶ $script"
if shellcheck "$script"; then
echo " ✅ Syntaxe correcte"
else
echo " ❌ Erreurs de syntaxe détectées"
errors=true
fi
done < <(find . -name "*.sh" -not -path "./.git/*" | sort)
if [ "$errors" = true ]; then
echo ""
echo "❌ Des erreurs de syntaxe ont été trouvées. Corrigez-les avant de continuer."
exit 1
fi
# ── 3. Exécution des scripts ─────────────────────────────────────────
- name: Exécution des scripts
run: |
mkdir -p mon-projet/logs
echo "=== Exécution des scripts ==="
errors=false
run_script() {
local script="$1"
chmod +x "$script"
echo ""
echo "▶ $script"
if bash "$script"; then
echo " ✅ Exécution réussie"
else
echo " ❌ Le script a retourné une erreur"
errors=true
fi
}
run_script "mon-projet/src/info.sh"
run_script "mon-projet/src/check-logs.sh"
run_script "mon-projet/src/analyse-niveaux.sh"
run_script "mon-projet/src/rapport.sh"
run_script "mon-projet/src/couleurs.sh"
run_script "mon-projet/src/check-env.sh"
run_script "setup.sh"
if [ "$errors" = true ]; then
echo ""
echo "❌ Un ou plusieurs scripts ont échoué à l'exécution."
exit 1
fi
echo ""
echo "✅ Tous les scripts s'exécutent sans erreur !"