Skip to content

Preview : les MP3 TTS manquants sont générés dans la PR - #107

Merged
isc merged 1 commit into
mainfrom
claude/tts-in-preview
Oct 3, 2026
Merged

isc merged 1 commit into
mainfrom
claude/tts-in-preview

Conversation

@isc

@isc isc commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Jusqu'ici, generate-tts.yml ne tournait que sur main, après la fusion. Une matière nouvelle se testait donc muette en preview, et il fallait ensuite fusionner, lancer le workflow et attendre son déploiement. Avec cette PR, la preview a déjà le son, et il n'y a plus qu'à fusionner.

Changements

  • preview.yml, nouveau job tts, qui tourne avant le build :
    • il lance scripts/generate-tts.mjs avec le secret MISTRAL_API_KEY. Le script est idempotent : sur une PR sans nouvelle clé, il ne génère rien et n'appelle pas l'API ;
    • les nouveaux fichiers, et seulement eux, passent au build de la preview par un artefact. La preview a donc le son ;
    • ils sont commités sur la branche de la PR, avec le message assets(tts): MP3 générés par la preview, depuis un worktree partant de la tête de branche (le checkout de PR est un commit de fusion). Si la branche a bougé entre-temps, le push échoue sans dommage et le push suivant régénère les fichiers ;
    • la CI est ensuite relancée sur ce commit (gh workflow run ci.yml --ref <branche>), puisqu'un push fait avec le GITHUB_TOKEN ne déclenche aucun workflow. Ça évite aussi toute boucle avec la preview ;
    • une génération partielle (par exemple une limite de débit de l'API) ne bloque pas la preview ;
    • les PR venues d'un fork n'ont pas le secret : le job est sauté et la preview se construit comme avant.
  • Concurrence : le groupe gh-pages (queue: max) passe au niveau du job build-and-deploy. La génération, qui peut prendre quelques minutes, ne retient donc plus les déploiements des autres PR ni de main.
  • ci.yml : ajout de workflow_dispatch, pour que la preview puisse relancer la CI.
  • CLAUDE.md : le nouveau mécanisme est documenté, y compris le git pull à faire avant de pousser à nouveau après un commit du bot. generate-tts.yml reste disponible à la main pour un rattrapage sur main.

Vérification

  • Sur main, aucun MP3 ne manque (995 fr et 775 en, vérifié avant d'ouvrir la PR). La preview de cette PR doit donc tourner sans rien générer.
  • Les tests des scripts passent, dont preview-slug.test.mjs (45 tests) ; les YAML se chargent sans erreur.
  • Pas encore vérifié : que GitHub accepte queue: max au niveau d'un job. La preview de cette PR le dira.
  • Le vrai test avec génération viendra après la fusion. En rapatriant main dans isc/tablito#101 (verbes irréguliers), sa preview devra générer les 128 MP3 irr-*.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RZKuXTJUA75jCTdpwDngjD


Generated by Claude Code

Jusqu'ici, generate-tts.yml ne tournait que sur main, après la fusion : une
matière nouvelle se testait muette en preview, puis il fallait fusionner,
lancer le workflow et attendre son déploiement.

Le nouveau job `tts` de preview.yml génère les MP3 manquants (idempotent :
rien sur une PR sans nouvelle clé), les passe au build de la preview, les
commite sur la branche de la PR et relance la CI sur ce commit. Hors du
groupe de concurrence gh-pages, pour ne pas retenir les déploiements pendant
la génération. Les PR de forks, sans le secret, s'en passent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZKuXTJUA75jCTdpwDngjD
@github-actions

github-actions Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Preview supprimée (PR fermée). Les URLs ne sont plus accessibles.

@isc
isc marked this pull request as ready for review October 3, 2026 19:16
@isc
isc merged commit c82cf6c into main Oct 3, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants