chore(ci): add Woodpecker pipeline (#42) #44

Merged
Reliodas merged 1 commit from chore/42-woodpecker-ci into develop 2026-07-01 07:24:08 +00:00
Owner

Implémente le ticket #42 (CI Woodpecker exécutant les smoke tests + validation visuelle).

Ce que fait la PR

Ajoute .woodpecker.yml : pipeline déclenché sur push et pull request vers develop et main, avec deux étapes :

  1. smoke-testsnode scripts/smoke-test.js sur une image Node minimale (aucune dépendance) ;
  2. visual-validationnpm ci puis node tests/visual-validation.js sur l'image officielle Playwright (v1.61.1-noble, Chromium préinstallé, version alignée sur la devDependency du dépôt).

Le pipeline ne construit rien et ne produit aucun artefact : il valide uniquement l'application statique.

Détails

  • tests/visual-validation.js : ajout de --no-sandbox au lancement Chromium (requis quand le conteneur CI tourne en root ; inoffensif en local/headless).
  • Documentation : section « Intégration continue » du README (rôle du pipeline + pré-requis instance/runner) et arborescence ; entrée CHANGELOG.

Vérification locale

  • PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm ci : lockfile valide (comme en CI).
  • node scripts/smoke-test.js : OK.
  • node tests/visual-validation.js (avec --no-sandbox) : 8/8 pages OK.
  • YAML .woodpecker.yml : syntaxe validée.

Le déclenchement réel du pipeline (vert/rouge) est à confirmer sur l'instance Woodpecker connectée au dépôt — l'ouverture de cette PR devrait produire le premier run.

Closes #42

🤖 Generated with Claude Code

Implémente le ticket #42 (CI Woodpecker exécutant les smoke tests + validation visuelle). ## Ce que fait la PR Ajoute `.woodpecker.yml` : pipeline déclenché sur **push** et **pull request** vers `develop` et `main`, avec deux étapes : 1. `smoke-tests` — `node scripts/smoke-test.js` sur une image Node minimale (aucune dépendance) ; 2. `visual-validation` — `npm ci` puis `node tests/visual-validation.js` sur l'image officielle Playwright (`v1.61.1-noble`, Chromium préinstallé, version alignée sur la devDependency du dépôt). Le pipeline ne construit rien et ne produit aucun artefact : il valide uniquement l'application statique. ## Détails - `tests/visual-validation.js` : ajout de `--no-sandbox` au lancement Chromium (requis quand le conteneur CI tourne en root ; inoffensif en local/headless). - Documentation : section « Intégration continue » du README (rôle du pipeline + pré-requis instance/runner) et arborescence ; entrée CHANGELOG. ## Vérification locale - `PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm ci` : lockfile valide (comme en CI). - `node scripts/smoke-test.js` : OK. - `node tests/visual-validation.js` (avec `--no-sandbox`) : 8/8 pages OK. - YAML `.woodpecker.yml` : syntaxe validée. Le déclenchement réel du pipeline (vert/rouge) est à confirmer sur l'instance Woodpecker connectée au dépôt — l'ouverture de cette PR devrait produire le premier run. Closes #42 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Add .woodpecker.yml running the existing validations on every push and
pull request to develop and main:
  - smoke-tests: node scripts/smoke-test.js on a minimal Node image;
  - visual-validation: npm ci + node tests/visual-validation.js on the
    official Playwright image (Chromium preinstalled, version aligned with
    the repo dev dependency).

The pipeline builds nothing and produces no artefact; it only validates
the static app. It requires a Woodpecker instance and runner connected to
the Forgejo repo. Pass --no-sandbox to Chromium so the visual step works
when the CI container runs as root (harmless locally). Documented in the
README and CHANGELOG.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019fEfJomg2UxRUoR6fduyAC
Reliodas merged commit 67e9347e1d into develop 2026-07-01 07:24:08 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: dnd/cards#44
No description provided.