Newer
Older
# Documentation d'AgroMetInfo
## Description
Ce projet contient les sources pour les pages statiques du site [AgroMetInfo](https://www.agrometinfo.fr/), c'est-à-dire :
- la page d'accueil,
- la documentation pour les utilisateurs,
- les notes de version de tout le projet,
- les pages légales.
Les pages sont publiées à <https://agroclim.pages.mia.inra.fr/agrometinfo/documentation/> après construction et tests des liens grâce à l'intégration continue GitLab-CI.
## Installation
Les pages sont construites avec le générateur de site [Hugo](https://gohugo.io/) et le thème [Hugo Relearn Theme](https://themes.gohugo.io/themes/hugo-theme-relearn/).
- Récupérez les sources avec Git : `git clone git@forge.inrae.fr:agroclim/agrometinfo/documentation.git`.
- [Installez une version de Hugo](https://gohugo.io/installation/) supérieure à 0.95.0.
- Rendez-vous dans le projet `cd documentation/`.
- Lancez `hugo` pour la création des pages statiques ou `hugo server --navigateToChanged` et naviguez sur <http://localhost:1313/>.
## Modification de pages
Pour modifier ou ajouter une page :
- [Créez une branche](https://forge.inrae.fr/agroclim/agrometinfo/documentation/-/branches) depuis GitLab (exemple avec une branche `modification-accueil`)
- Récupérez la branche sur votre poste :
```
git fetch
git switch modification-accueil
```
- lancez `hugo server --navigateToChanged`,
- Modifiez le ou les fichiers, le navigateur affichera les pages correspondantes.
- Sous Linux, vérifiez les liens des pages : `bin/check.sh`.
- Validez vos changements : `git commit -m "Modification de l'accueil"`.
- Envoyez : `git push`.
- Vérifiez la bonne exécution de l'intégration sur la page <https://forge.inrae.fr/agroclim/agrometinfo/documentation/-/pipelines>.
- Faites une demande de fusion en choisissant « Écraser les commits lorsque la demande de fusion est acceptée. ».
### Pour ajouter une actualité
Chaque actualité est écrite dans un fichier séparé dans le dossier `actualites/`.
Pour ajouter une actualité,
- [créer une branche](https://forge.inrae.fr/agroclim/agrometinfo/documentation/-/branches/new) à partir de `main`,
- rajouter un fichier dans `actualites/` en reprenant un modèle existant,
- fusionner la branche dans `main`.
Voir les détails ci-dessous concernant le déploiement.
## Déploiements
Les pages sont publiées après construction et tests des liens grâce à l'intégration et au déploiement continus GitLab-CI.
Un déploiement manuel est possible en utilisant le script `bin/deploy.sh`.
### Sur la production
Un déploiement depuis la branche `main` sur le serveur de production s'exécute lors de l'[ajout d'une étiquette](https://forge.inrae.fr/agroclim/agrometinfo/documentation/-/tags/new).
Suivez le numéro de version de l'application pour nommer l'étiquette.
Si un déploiement intermédiaire doit être effectué, ajouter un numéro de sous version.
Exemple : si la version `v2.0.0` est en ligne et qu'une mise à jour de la documentation doit être publiée, nommez l'étiquette `v2.0.0.1`. Si une autre doit être publiée : `v2.0.0.2`.
Un déploiement manuel est possible en utilisant le script `bin/deploy.sh`.
### Sur la pré-production
Un déploiement sur le serveur de pré-production s'exécute lors du [lancement manuel](https://forge.inrae.fr/agroclim/agrometinfo/documentation/-/pipelines/new) du pipeline.
### Sur GitLab Pages
Un déploiement sur GitLab Pages <https://agroclim.pages.mia.inra.fr/agrometinfo/documentation/> s'exécute à chaque validation sur la branche `main`.
### Détails techniques
L'image [Docker spécifique](https://forge.inrae.fr/agroclim/agrometinfo/docker-documentation) a été préparée pour l'intégration et le déploiement continus.
La configuration des intégration et déploiement continus a été faite dans :
- `.gitlab-ci.yml`
- les [variables CI/CD](https://forge.inrae.fr/agroclim/agrometinfo/documentation/-/settings/ci_cd) :
- création de clefs privées avec `ssh-keygen -t rsa` et `cat ~/.ssh/id_rsa`
- `PREPRODUCTION_DESTDIR`, `PREPRODUCTION_SERVER`, `PREPRODUCTION_USER` et `PREPRODUCTION_SSH_PRIVATE_KEY`
- les serveurs de production et pré-production : création d'un utilisateur, ajout de clef SSH