zfs-sync-nfs-ha/.forgejo/workflows/test.yml
Tellsanguis c2fb2dfdda
All checks were successful
Tests et Vérifications / Tests unitaires BATS (push) Successful in 15s
Tests et Vérifications / Vérification ShellCheck (push) Successful in 7s
Tests et Vérifications / Vérification syntaxe Bash (push) Successful in 3s
Tests et Vérifications / Résumé des tests (push) Successful in 1s
Suppression upload artifacts inutile (BATS ne génère pas de logs)
2025-12-29 13:09:16 +01:00

97 lines
2.3 KiB
YAML

name: Tests et Vérifications
on:
push:
branches:
- main
workflow_dispatch:
jobs:
tests:
name: Tests unitaires BATS
runs-on: self-hosted
steps:
- name: Checkout du code
uses: actions/checkout@v4
- name: Installation de BATS
run: |
apt-get update
apt-get install -y bats
- name: Afficher version BATS
run: bats --version
- name: Exécuter tests unitaires
run: |
cd tests
bats *.bats
shellcheck:
name: Vérification ShellCheck
runs-on: self-hosted
steps:
- name: Checkout du code
uses: actions/checkout@v4
- name: Installation de ShellCheck
run: |
apt-get update
apt-get install -y shellcheck
- name: Afficher version ShellCheck
run: shellcheck --version
- name: Vérifier le script principal
run: |
shellcheck -x zfs-nfs-replica.sh || true
- name: Vérifier les scripts de test
run: |
shellcheck -x tests/*.bash || true
syntax:
name: Vérification syntaxe Bash
runs-on: self-hosted
steps:
- name: Checkout du code
uses: actions/checkout@v4
- name: Vérifier syntaxe du script principal
run: |
bash -n zfs-nfs-replica.sh
- name: Vérifier syntaxe des helpers de test
run: |
bash -n tests/test_helper.bash
summary:
name: Résumé des tests
runs-on: self-hosted
needs: [tests, shellcheck, syntax]
if: always()
steps:
- name: Afficher résumé
run: |
echo "=========================================="
echo "RÉSUMÉ DES TESTS"
echo "=========================================="
echo ""
echo "Tests unitaires: ${{ needs.tests.result }}"
echo "ShellCheck: ${{ needs.shellcheck.result }}"
echo "Syntaxe Bash: ${{ needs.syntax.result }}"
echo ""
if [[ "${{ needs.tests.result }}" == "success" ]] && \
[[ "${{ needs.shellcheck.result }}" == "success" ]] && \
[[ "${{ needs.syntax.result }}" == "success" ]]; then
echo "✓ Tous les tests sont passés avec succès"
exit 0
else
echo "✗ Certains tests ont échoué"
exit 1
fi