From 050d583b6bf1dd3f268dbad371acd2ca065fae16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Sat, 25 Jul 2026 22:33:01 +0400 Subject: [PATCH] ci: keep only PHP/JS lint in CI, move rest to local checks --- .gitea/workflows/check-pr.yml | 17 ----------------- .gitea/workflows/deploy-prod.yml | 17 ----------------- DEPLOY.adoc | 8 ++++---- scripts/check.sh | 10 +++++++--- 4 files changed, 11 insertions(+), 41 deletions(-) diff --git a/.gitea/workflows/check-pr.yml b/.gitea/workflows/check-pr.yml index 2a3f99e..d592406 100644 --- a/.gitea/workflows/check-pr.yml +++ b/.gitea/workflows/check-pr.yml @@ -36,20 +36,3 @@ jobs: node --check "$f" || exit 1 done echo "JS lint OK" - - - name: Installer Asciidoctor - run: sudo gem install asciidoctor - - - name: Valider README.adoc - run: asciidoctor -o /tmp/readme.html README.adoc - - - name: Valider JSON et XML - run: | - sudo apt-get update && sudo apt-get install -y libxml2-utils - python3 -m json.tool site.webmanifest.sample > /dev/null - xmllint --noout sitemap.xml.sample browserconfig.xml - - - name: Shellcheck (scripts shell) - run: | - sudo apt-get install -y shellcheck - shellcheck docs/generate-readme-pdf.sh scripts/check.sh diff --git a/.gitea/workflows/deploy-prod.yml b/.gitea/workflows/deploy-prod.yml index 8314b76..fcd90ec 100644 --- a/.gitea/workflows/deploy-prod.yml +++ b/.gitea/workflows/deploy-prod.yml @@ -37,23 +37,6 @@ jobs: done echo "JS lint OK" - - name: Installer Asciidoctor - run: sudo gem install asciidoctor - - - name: Valider README.adoc - run: asciidoctor -o /tmp/readme.html README.adoc - - - name: Valider JSON et XML - run: | - sudo apt-get update && sudo apt-get install -y libxml2-utils - python3 -m json.tool site.webmanifest.sample > /dev/null - xmllint --noout sitemap.xml.sample browserconfig.xml - - - name: Shellcheck (scripts shell) - run: | - sudo apt-get install -y shellcheck - shellcheck docs/generate-readme-pdf.sh scripts/check.sh - deploy: needs: check runs-on: ubuntu-latest diff --git a/DEPLOY.adoc b/DEPLOY.adoc index 7143094..b3dd4e1 100644 --- a/DEPLOY.adoc +++ b/DEPLOY.adoc @@ -19,7 +19,7 @@ L'architecture retenue (identique à celle de pawol.nu) : └─────────────┘ └──────────────────┘ └─────────────┘ ---- -. *Vérification* (`check-pr.yml` + job `check` de `deploy-prod.yml`) : lint PHP/JS, validation AsciiDoc, JSON, XML, shellcheck. Les mêmes vérifications sont exécutables en local avec `scripts/check.sh`. +. *Vérification* (`check-pr.yml` + job `check` de `deploy-prod.yml`) : lint PHP/JS. Les validations AsciiDoc, JSON, XML et shellcheck ne sont plus exécutées dans le CI : elles doivent être passées en local avec `scripts/check.sh`. . *Déploiement* (`deploy-prod.yml`) : le runner se connecte en SSH au serveur, qui tient *un clone du dépôt*, fait `git pull --ff-only`, puis *bumpe la version des caches* du Service Worker (`sw.js`) pour déclencher le modal de mise à jour PWA chez les visiteurs. Pourquoi un `git pull` sur le serveur plutôt qu'un rsync : tous les fichiers propres à l'instance (`config.local.php`, `.htaccess`, `sitemap.xml`, `robots.txt`, `site.webmanifest`, `mentions-legales.php`, `dons.php`, `uploads/`, `cache/`) sont ignorés par Git — un pull ne les écrase jamais. Le déploiement est ainsi sans risque pour la configuration de production. @@ -308,13 +308,13 @@ grep STATIC_CACHE_NAME sw.js # le suffixe de version a été bumpé à l'heure d | Événement | Résultat | Pull request vers `main` -| Workflow *Vérification PR* : lints et validations bloquants en cas d'erreur +| Workflow *Vérification PR* : lint PHP et JS bloquants en cas d'erreur | Push sur `main` -| Workflow *Déploiement PROD* : mêmes vérifications, puis SSH → `git pull --ff-only` → bump de la version des caches `sw.js` → modal de mise à jour chez les visiteurs +| Workflow *Déploiement PROD* : lint PHP et JS, puis SSH → `git pull --ff-only` → bump de la version des caches `sw.js` → modal de mise à jour chez les visiteurs | En local, avant de pousser -| `scripts/check.sh` exécute les mêmes vérifications que le CI +| `scripts/check.sh` exécute l'ensemble des vérifications qualité (PHP, JS, AsciiDoc, JSON, XML, shellcheck) |=== Le bump de version dans `sw.js` est fait *sur le serveur uniquement* : le dépôt garde sa valeur de référence, le working tree du serveur est nettoyé (`git checkout -- sw.js`) avant chaque pull pour garantir le fast-forward. diff --git a/scripts/check.sh b/scripts/check.sh index f74fa2f..5d3893c 100755 --- a/scripts/check.sh +++ b/scripts/check.sh @@ -1,10 +1,14 @@ #!/usr/bin/env bash -# Lance en local les mêmes vérifications que le CI (.gitea/workflows/). +# Lance en local l'ensemble des vérifications qualité du projet. # À exécuter avant de pousser : scripts/check.sh # +# Le CI (.gitea/workflows/) ne conserve que PHP lint et JS lint ; les autres +# vérifications (AsciiDoc, JSON, XML, shellcheck) sont désormais réservées au +# local et doivent être passées manuellement avec ce script. +# # Un outil manquant n'est pas bloquant : le check correspondant est ignoré -# avec un avertissement (le CI, lui, exécute tout). Le script retourne un -# code non nul si une vérification échoue. +# avec un avertissement. Le script retourne un code non nul si une vérification +# échoue. set -u cd "$(dirname "$0")/.." || exit 1