ci: keep only PHP/JS lint in CI, move rest to local checks
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+4
-4
@@ -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.
|
||||
|
||||
+7
-3
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user