Skip to content
Snippets Groups Projects
README.md 4.26 KiB
Newer Older
Olivier Maury's avatar
Olivier Maury committed
# 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`.
Olivier Maury's avatar
Olivier Maury committed
- [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/>.
Olivier Maury's avatar
Olivier Maury committed

## 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
  ```
Olivier Maury's avatar
Olivier Maury committed
- Visualisez le site :
  - lancez `hugo server --navigateToChanged`,
Olivier Maury's avatar
Olivier Maury committed
  - ouvrez un navigateur sur <http://localhost:1313/>.
- Modifiez le ou les fichiers, le navigateur affichera les pages correspondantes.
Olivier Maury's avatar
Olivier Maury committed
- 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. ».
Olivier Maury's avatar
Olivier Maury committed
- Faites relire.
### 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`.

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