feat: add Gitea Actions CI/CD, local checks and deploy guide
This commit is contained in:
+46
@@ -151,6 +151,8 @@ Toutes ces sources sont modifiables dans `includes/config.local.php` (voir <<fr-
|
||||
|
||||
[source]
|
||||
----
|
||||
├── .gitea/
|
||||
│ └── workflows/ # CI/CD Gitea Actions (check-pr, deploy-prod)
|
||||
├── ajax/
|
||||
│ └── load-more-videos.php # Endpoint AJAX « Voir plus » (CSRF + Origin)
|
||||
├── conf/
|
||||
@@ -194,6 +196,8 @@ Toutes ces sources sont modifiables dans `includes/config.local.php` (voir <<fr-
|
||||
│ ├── mastodon-timeline.umd.js # mastodon-embed-timeline v4.7.0 (vendored)
|
||||
│ ├── pleroma-adapter.js # Adaptateur Pleroma → API Mastodon
|
||||
│ └── pwa-update.js # Enregistrement SW + modal de mise à jour
|
||||
├── scripts/
|
||||
│ └── check.sh # Vérifications du CI en local (avant push)
|
||||
├── uploads/ # Images d'annonces (non versionné, hors .gitkeep)
|
||||
├── index.php # Page d'accueil (agrégateur)
|
||||
├── video.php # Page de lecture d'une vidéo
|
||||
@@ -209,6 +213,7 @@ Toutes ces sources sont modifiables dans `includes/config.local.php` (voir <<fr-
|
||||
├── mentions-legales.php.sample # Exemple de mentions légales
|
||||
├── dons.php.sample # Exemple de page de dons
|
||||
├── LICENSE # GNU AGPL v3
|
||||
├── DEPLOY.adoc # Guide de déploiement serveur + CI/CD
|
||||
└── README.adoc
|
||||
----
|
||||
|
||||
@@ -901,6 +906,24 @@ Prérequis : `asciidoctor`, `chromium` (rendu headless) et le paquet `fonts-noto
|
||||
|
||||
NOTE: `asciidoctor-pdf` (utilisé par l'extension AsciiDoc de VSCodium) n'est pas utilisable ici : son moteur Prawn ne sait pas embarquer les polices emoji couleur (CBDT/COLR), les émojis disparaissent du PDF. Chromium les gère nativement.
|
||||
|
||||
==== ✅ Vérifications locales et CI/CD
|
||||
|
||||
Avant de pousser, exécutez les mêmes vérifications que le CI :
|
||||
|
||||
[source,bash]
|
||||
----
|
||||
scripts/check.sh
|
||||
----
|
||||
|
||||
Ce script lance : lint PHP (`php -l` sur tous les fichiers, samples inclus), lint JS (`node --check`), rendu AsciiDoc, validation JSON (`site.webmanifest.sample`) et XML (`sitemap.xml.sample`, `browserconfig.xml`), shellcheck. Un outil manquant est signalé et le check correspondant ignoré ; le CI, lui, exécute tout.
|
||||
|
||||
Pipelines Gitea Actions (`.gitea/workflows/`) :
|
||||
|
||||
- *Vérification PR* (`check-pr.yml`) : sur toute pull request vers `main`
|
||||
- *Déploiement PROD* (`deploy-prod.yml`) : sur push sur `main` — mêmes vérifications, puis déploiement en SSH sur le serveur (`git pull --ff-only` + bump de version du Service Worker, qui déclenche le modal de mise à jour chez les visiteurs)
|
||||
|
||||
La mise en place complète du serveur de production (clone, fichiers d'instance, clés SSH, secrets Gitea) est documentée dans link:DEPLOY.adoc[DEPLOY.adoc].
|
||||
|
||||
=== 📜 Licence
|
||||
|
||||
Copyright (C) 2025 Cédric Famibelle-Pronzola & *ORGANISATION KA INTERNATIONALE*
|
||||
@@ -1055,6 +1078,8 @@ All of these sources can be changed in `includes/config.local.php` (see <<en-con
|
||||
|
||||
[source]
|
||||
----
|
||||
├── .gitea/
|
||||
│ └── workflows/ # Gitea Actions CI/CD (check-pr, deploy-prod)
|
||||
├── ajax/
|
||||
│ └── load-more-videos.php # "Load more" AJAX endpoint (CSRF + Origin)
|
||||
├── conf/
|
||||
@@ -1098,6 +1123,8 @@ All of these sources can be changed in `includes/config.local.php` (see <<en-con
|
||||
│ ├── mastodon-timeline.umd.js # mastodon-embed-timeline v4.7.0 (vendored)
|
||||
│ ├── pleroma-adapter.js # Pleroma → Mastodon API adapter
|
||||
│ └── pwa-update.js # SW registration + update modal
|
||||
├── scripts/
|
||||
│ └── check.sh # CI checks run locally (before pushing)
|
||||
├── uploads/ # Announcement images (not versioned, except .gitkeep)
|
||||
├── index.php # Homepage (aggregator)
|
||||
├── video.php # Video playback page
|
||||
@@ -1113,6 +1140,7 @@ All of these sources can be changed in `includes/config.local.php` (see <<en-con
|
||||
├── mentions-legales.php.sample # Legal notice sample
|
||||
├── dons.php.sample # Donation page sample
|
||||
├── LICENSE # GNU AGPL v3
|
||||
├── DEPLOY.adoc # Server deployment + CI/CD guide
|
||||
└── README.adoc
|
||||
----
|
||||
|
||||
@@ -1805,6 +1833,24 @@ Requirements: `asciidoctor`, `chromium` (headless rendering) and the `fonts-noto
|
||||
|
||||
NOTE: `asciidoctor-pdf` (used by VSCodium's AsciiDoc extension) cannot be used here: its Prawn engine cannot embed color-emoji fonts (CBDT/COLR), so emoji disappear from the PDF. Chromium handles them natively.
|
||||
|
||||
==== ✅ Local checks and CI/CD
|
||||
|
||||
Before pushing, run the same checks as the CI:
|
||||
|
||||
[source,bash]
|
||||
----
|
||||
scripts/check.sh
|
||||
----
|
||||
|
||||
This script runs: PHP lint (`php -l` on every file, samples included), JS lint (`node --check`), AsciiDoc rendering, JSON (`site.webmanifest.sample`) and XML (`sitemap.xml.sample`, `browserconfig.xml`) validation, shellcheck. A missing tool is reported and its check skipped; the CI runs everything.
|
||||
|
||||
Gitea Actions pipelines (`.gitea/workflows/`):
|
||||
|
||||
- *PR check* (`check-pr.yml`): on every pull request to `main`
|
||||
- *PROD deployment* (`deploy-prod.yml`): on push to `main` — same checks, then SSH deployment to the server (`git pull --ff-only` + Service Worker version bump, which triggers the update modal for visitors)
|
||||
|
||||
The full production server setup (clone, instance files, SSH keys, Gitea secrets) is documented in link:DEPLOY.adoc[DEPLOY.adoc].
|
||||
|
||||
=== 📜 License
|
||||
|
||||
Copyright (C) 2025 Cédric Famibelle-Pronzola & *ORGANISATION KA INTERNATIONALE*
|
||||
|
||||
Reference in New Issue
Block a user