Déployer avec Git

En utilisant le système de contrôle de version distribué Git sur vos environnements de développement et de serveur, vous pouvez mettre en place un flux de travail simple via un service Git hébergé comme Github ou GitLab. Essayez ceci si vous êtes à l'aise avec Git et ses outils clients.

Ses avantages incluent :

  • c'est plus propre : vous n'avez qu'à émettre quelques instructions en ligne de commande et celles-ci peuvent être automatisées à n'importe quel degré
  • plus fiable : vous n'avez pas besoin de vous souvenir des fichiers à télécharger et vous pouvez être sûr de ne faire remonter que les modifications souhaitées (particulièrement utile lorsque vous souhaitez uniquement télécharger certaines modifications dans les fichiers)
  • sécurité : en utilisant un hôte cloud pour votre référentiel canonique ("origine"), les sauvegardes de sources (versionnées) sont gratuites ; vous pouvez même gérer vos tâches à l'aide de problèmes.

Mise en place.

Un flux de travail basé sur Git nécessite une certaine configuration. Voici un aperçu général de la configuration. Selon que vous souhaitez ou non valider des dossiers contenant du code tiers comme des plugins, il peut y avoir quelques étapes supplémentaires lors de la première configuration sur votre serveur.

  • Dans votre environnement de développement, votre dossier user est un référentiel Git.
  • Votre référentiel de dossiers user est également hébergé dans le cloud. Choisissez un fournisseur qui prend en charge les référentiels privés si vous ne souhaitez pas partager votre code avec le monde.
  • Votre copie hébergée est l'origin "distante" de votre environnement local et serveur.
  • Poussez les modifications sur votre site Grav depuis l'environnement local vers origin sur votre hôte cloud Git.
  • Sur votre serveur, vous avez installé Grav et son dossier user est un clone de votre référentiel distant.
  • Lorsque vous êtes prêt à mettre à jour votre site Grav sur votre serveur, utilisez Git pour extraire origin.

Mises à jour.

Après la configuration initiale, vous n'avez vraiment besoin d'effectuer que deux étapes après chaque mise à jour importante :

  • pousser depuis votre environnement local,
  • récupérez les modifications sur votre serveur.

Extension de votre configuration.

Si vous souhaitez une automatisation plus avancée, vous pouvez configurer Git Hooks ou utiliser une fonctionnalité telle que les webhooks de Github. Vous pouvez également intégrer les modifications de contenu des éditeurs Web effectuant des modifications sur leurs propres installations via la console d'administration. Vous pouvez conserver des enregistrements (presque) immuables de ce qui est publié à l'aide des balises Git.

Les outils disponibles prennent en charge toutes sortes de workflows et d'automatisations multi-environnements.

Vous pouvez également exploiter Git pour votre flux de travail de contenu à l'aide du plugin Git Sync, afin que vos éditeurs de contenu puissent déployer des modifications via la console d'administration.

Voici une suggestion pour votre fichier .gitignore dans votre référentiel de dossiers user. Cela vous aidera à garder votre déploiement propre :

accounts/*
!accounts/.*
data/*
!data/.*
languages/*
!languages/.*
plugins/*
!plugins/.*
themes/*
!themes/.*
!themes/MY_CUSTOM_THEME/
**/config/security.yaml
Si vous utilisez un thème personnalisé ou hérité que vous souhaitez inclure dans votre contrôle de code source, remplacez MY_CUSTOM_THEME ci-dessus par le nom du thème. Pensez à faire de même pour tous les plugins personnalisés spécifiques au site.