Étape 0a.2 : gnubg de référence et 32 positions de référence

Fusion du travail du sous-agent (branche moteur-reference-travail) ; plan
supprimé à la clôture, son résultat est repris dans la merge request.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-02 14:00:06 +01:00
co-authored by Claude Opus 5.5
40 changed files with 8088 additions and 4 deletions
+15 -2
View File
@@ -13,15 +13,17 @@ BUILD_DIR := build
SHELLCHECK_IMAGE := koalaman/shellcheck-alpine:v0.10.0
# Image construite ici : changer le numéro à chaque modification de docker/gherkin/.
GHERKIN_IMAGE := ustagammon/gherkin:2
# GNU Backgammon de référence, compilé au commit figé par l'ADR 0005.
REFERENCE_IMAGE := ustagammon/gnubg-reference:14b6798
export SHELLCHECK_IMAGE GHERKIN_IMAGE
.PHONY: help setup build test lint deploy clean
.PHONY: help setup build test lint deploy clean reference-image reference
help: ## Liste les commandes disponibles
@echo "Ustagammon : commandes disponibles"
@grep -E '^[a-zA-Z0-9_-]+:.*## ' $(MAKEFILE_LIST) \
| awk 'BEGIN { FS = ":.*## " } { printf " make %-12s %s\n", $$1, $$2 }'
| awk 'BEGIN { FS = ":.*## " } { printf " make %-16s %s\n", $$1, $$2 }'
setup: ## Installe la chaîne d'outils (images Docker) ; sans effet si déjà fait
@command -v docker >/dev/null || { echo "Docker est requis : sudo apt install docker.io"; exit 1; }
@@ -29,6 +31,7 @@ setup: ## Installe la chaîne d'outils (images Docker) ; sans effet si déjà fa
|| docker pull $(SHELLCHECK_IMAGE)
@docker image inspect $(GHERKIN_IMAGE) >/dev/null 2>&1 \
|| docker build -q -t $(GHERKIN_IMAGE) docker/gherkin
@$(MAKE) reference-image
@echo "Chaîne d'outils prête."
build: ## Compile le moteur (si nécessaire) puis l'application
@@ -46,3 +49,13 @@ deploy: ## Installe l'application sur le téléphone (pas encore disponible)
clean: ## Supprime les artefacts de build (garde les images Docker)
rm -rf $(BUILD_DIR)
reference-image: ## Construit l'image Docker du gnubg de référence (cache Docker : rapide si à jour)
docker build -t $(REFERENCE_IMAGE) docker/gnubg-reference
@echo "Image $(REFERENCE_IMAGE) prête."
reference: reference-image ## Régénère tests/reference/results/ avec le gnubg de référence
rm -rf tests/reference/results
docker run --rm --user "$$(id -u):$$(id -g)" -e HOME=/tmp \
-v "$(CURDIR)/tests/reference:/reference" $(REFERENCE_IMAGE) \
gnubg --tty --quiet --no-rc --python=/reference/generate.py