Nous allons voir que cette opération est facilement automatisable à l’aide d’un fichier Rakefile
, la manière la plus courante en Ruby de créer des tâches.
Prérequis
Nous partons du principe que vous avez déjà un site qui tourne avec Jekyll sur GitHub, si ce n’est pas le cas, reportez-vous à la documentation officielle.
Comme nous allons utiliser rake
pour écrire une tâche automatisée, il vous faut ajoutez la dépendance à votre fichier Gemfile
, si elle n'est pas déjà présente :
gem "rake"
Une fois que c'est fait, lancez bundle install
pour installer rake
.
Maintenant que vous êtes parés sous allons voir les deux cas de figures possibles dans Github : les pages utilisateurs ou organisation et les pages projets.
Pages utilisateur et organisation
Pour activer la génération automatique par GitHub Pages d’un dépôt de compte utilisateur ou organisation, il suffit de respecter la nomenclature username/username.github.io
.
GitHub va utiliser la branche master
de ces dépôts et publier les pages. Cela fait que nous aurons une branche master
qui contient le site généré et une branche source
avec les sources de notre site.
Configuration du dépôt
La préparation du dépôt se résume à créer la branche source
en ligne de commande :
git checkout -b source master
git push -u origin source
Maintenant que vous avez créé la branche source
, vous pouvez en faire la branche par défaut dans GitHub :
Publication automatique
Maintenant que le dépôt est configuré, vous pouvez générer votre site et pousser les fichiers générés sur la branche master
. Mais plutôt que de s'embêter à faire ça manuellement, créons un simple tâche rake
. Créez (si vous n'en avez pas déjà un) un fichier Rakefile
à la racine de votre site et ajoutez le contenu suivant 1 :
Maintenant vous pouvez simplement lancer la commande rake publish
pour générer et publier votre site sur GitHub Pages.
Si vous utilisez un nom de domaine personnalisé, vérifiez bien que le fichier CNAME est bien présent dans la branche générée.
Pages projet
Les pages projet sont presque pareilles que les pages utilisateur et organisation, à une différence près : la branche gh-pages
est utilisée à la place de la branche master
pour générer et publier les pages.
Il n'y a aucune configuration supplémentaire à faire, il faut simplement apporter quelques petites modifications au fichier Rakefile
:
Vous pouvez maintenant lancer rake site:publish
pour générer votre site et le publier sur GitHub. Jetez également un coup d’œil au fichier Rakefile de Jekyll pour une implémentation alternative de la tâche rake site:publish
.
Enfin, sachez qu'il existe d’autres solutions d’hébergement comme GitLab Pages, Netlify, Cloudcannon, Siteleaf ou Forestry.io qui vous permettent d’utiliser les plugins de votre choix, sans avoir recours à ce genre de hack.