Système de test automatisé — Docker par distro#12
Merged
Merged
Conversation
added 10 commits
June 10, 2026 13:17
- 7 Dockerfiles (alpine, arch, debian, fedora, opensuse, ubuntu, void) - tests/script_generator.py: port Python fidèle du ScriptGenerator JS - Même algorithme DFS topologique - Même résolution de dépendances avec visited set partagé - Même gestion CUSTOM_INSTALL (lecture install.sh depuis le filesystem) - Wrapper de logging pour capturer les échecs par programme - tests/runner.py: orchestrateur de test - Charge distro + programmes + dépendances - Génère le script via ScriptGenerator - Build image Docker + exécute dans conteneur - Parse sortie → rapport JSON avec succès/échecs - Support --batch N/T et --slugs pour tests ciblés - tests/report.py: formattage JSON → texte/markdown/HTML - .github/workflows/test.yml: CI matrix 7 distros en parallèle - .gitignore: __pycache__, test_script.sh, report.json
Programmes rendus CUSTOM_INSTALL sur toutes les distros manquantes : - doom-emacs, elfeed, telega (Emacs plugins → git clone) - tpm (tmux plugin manager → git clone) - conda (Miniconda installer → curl) - glow, amfora (binaires → curl) - ytfzf, pyright (npm/git install) - lsp-java (JDTLS → curl) install.sh créés pour : - cool-retro-term (build from source pour Void/Alpine) - yakuake (Alpine avec fallback compilation) Restent intentionnellement null : pacman (Arch-only), systemctl (systemd-only)
Arch Linux package verification: - httpie: python-httpie → httpie (le paquet s'appelle 'httpie' sur Arch) - i3-gaps: i3-gaps → i3-wm (i3-gaps a fusionné dans i3-wm upstream) - mu4e: mu → CUSTOM_INSTALL (mu pas dans les repos officiels Arch, AUR only) + install.sh: build from source via meson/ninja - eclipse: eclipse-java → CUSTOM_INSTALL (plus dans les repos officiels) Vérifiés OK (déjà corrects): chromium, dbus, delta, doas, fd, firefox, fortune, gh, imagemagick, java, libreoffice, networkmanager, npm, pass, pip, qemu, taskwarrior, thunderbird, trash-cli, tsserver, vim, virtualenv Debian: tous les noms vérifiés via l'API madison — 11/11 corrects
Void: - xbps-install -Syu → -S (le -yu met à jour tout le système, fail sur CI à cause du miroir SSL) - Retire npm (inclus dans nodejs sur Void), python3-pip (inclus dans python3) openSUSE: - pattern devel_basis → packages individuels (le pattern est cassé sur Leap 15.6) - gcc gcc-c++ make automake en remplacement CI workflow: - Generate HTML report / Markdown summary: vérifie si report.json existe avant - Upload artifact: if-no-files-found: warn (déjà le défaut)
The Docker Hub image has repos pointing to alpha.de.repo.voidlinux.org which has SSL cert issues on GitHub Actions runners. Try the ghcr.io image which may have different default mirror config.
Root cause: xbps exit code 16 — 'The xbps package must be updated'. The Docker image ships with an outdated xbps that refuses to install packages from the current repo until xbps itself is updated first. Fix: xbps-install -S (sync) → xbps-install -yu xbps (update xbps) → install.
New programs: thunar, dolphin, nautilus, foot, lapce, kdenlive, blender, darktable, rawtherapee, handbrake, slack, zoom, podman, distrobox, nix, flatpak, snapd, go, rust, lua, eza, kde-plasma, rofi, wofi, ulauncher, flameshot, peek, keepassxc, bitwarden, syncthing, localsend, ventoy, etcher, gparted, bleachbit, stacer, cpu-x, gpick, font-manager, appimagelauncher, heroic-games-launcher, mangohud, gamemode, joplin, zettlr, wireshark, onlyoffice, nerd-fonts, zram-generator, tlp, fsearch, evince, pavucontrol Also added 'logo' field to all existing program.json files.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Résumé
Implémentation du système de test automatisé décrit dans #11.
Ce que ça fait
7 conteneurs Docker en parallèle (un par distribution) exécutent le script d'installation des 291 programmes. Chaque échec est loggué avec le nom du programme, la commande tentée, et le message d'erreur.
Fichiers créés
tests/docker/Dockerfile.{alpine,arch,debian,fedora,opensuse,ubuntu,void}tests/script_generator.pytests/runner.pytests/report.py.github/workflows/test.ymlcontent/programs/**Comment ça marche
script_generator.pylit tous lesprogram.jsonet réplique la logique du JSrunner.pylance le script dans Docker et parse la sortieTesté localement
Règles d'installation
Prochaines étapes (futures PRs)