Failed to generate image: blockdiag failed: ERROR: 'ImageDraw' object has no attribute 'textsize' blockdiag { default_node_color = grey; default_textcolor = white; Dev[shape = actor, label="Dev"]; Visiteur[shape = actor, label = "Visiteur"]; group GitHub_Repositories{ label = "GitHub Repositories"; shape = line; GH_Hugo_Repo[shape = cloud,numbered = "1"]; GH_Pages_Repo[shape = cloud,numbered = "9"]; } GH_Actions[shape = circle,numbered = "2"]; GH_Actions_Repo[shape = square,numbered = "3"]; Hugo_Actions_Repo[shape = square,numbered = "4"]; Ruby_Setup[shape = square,numbered = "5"]; Python_Setup[shape = square,numbered = "6"]; Asciidoctor_Setup[shape = square,numbered = "7"]; Build_Hugo[shape = box,numbered = "8"]; Deploy_Hugo[shape = box,numbered = "10"]; group DNS{ label = "DNS Infrastructure"; shape = line; DNS_Server[shape = box,numbered = "12"]; Domain_Name_Provider[shape = box,numbered = "11"]; } Dev -> GH_Hugo_Repo[label = "git push", textcolor="black"]; GH_Hugo_Repo <- GH_Actions[label = "on push on master", textcolor="black"]; GH_Actions -> GH_Actions_Repo[label = "pull", textcolor="black"]; GH_Actions -> Hugo_Actions_Repo[label = "pull", textcolor="black"]; GH_Actions -> Ruby_Setup[label = "pull", textcolor="black"]; GH_Actions -> Python_Setup[label = "pull", textcolor="black"]; GH_Actions -> Asciidoctor_Setup[label = "run", textcolor="black"]; GH_Actions -> Build_Hugo; Build_Hugo -> GH_Hugo_Repo[label = "pull", textcolor="black"]; GH_Actions -> Deploy_Hugo; Deploy_Hugo -> GH_Pages_Repo[label = "push", textcolor="red", color = "red"]; Visiteur -> DNS_Server [label = "IP ?", textcolor="black"]; Visiteur -> GH_Pages_Repo; Domain_Name_Provider -> DNS_Server[label = "CNAME", textcolor="black"]; DNS_Server -> Visiteur[label = "CNAME resolution", textcolor="yellow", color = "yellow"]; }
Automatisation deploiement Hugo avec GitHub Actions et GitHub Pages
November 26, 2020
GitHub Hugo Asciidoctor diagramObjectifs
DĂ©ployer automatiquement un site avec Hugo, le backend Asciidoctor et GitHub Actions
Customiser certaines fonctionnalités asciidoctor non intégrées par Hugo
Utiliser un nom de domaine personnel pour son site sous GitHub Pages
Pré-requis
Git repository pour votre site Hugo
Git repository pour les fichiers générés par Hugo
Un nom de domaine personnel
Accès à votre console d’administration DNS pour créer un sous-domaine et ajouter une nouvelle entrée de type CNAME
Architecture générale
Repository GitHub
Repository Hugo
Ce repository contiendra le contenu source de votre site, la configuration, le theme et les pages qui seront générées par Hugo. Le resultat du build Hugo sera déployé dans le repository dédié à GitHub Pages.
Exemple de structure du dossier dédié aux sources Hugo:
[someone@server:Hugo] # tree -L 2
.
|-- archetypes
| `-- default.md
|-- config.toml
|-- content
| |-- authors
| |-- bin
| |-- calendar
| |-- images
| |-- post
| `-- project
|-- static
| |-- CNAME
| |-- css
| |-- js
| `-- README.md
`-- themes
`-- minimal
13 directories, 4 files
Repository GitHub Pages
Ce repository contiendra le contenu de votre site généré par Hugo et déployé par GitHub Actions.
Exemple de structure du dossier:
Warning | Le contenu de ce dossier est purgé à chaque déploiement. |
[someone@server:someone.github.io] # tree -L 1
.
|-- 404.html
|-- authors
|-- bin
|-- calendar
|-- categories
|-- CNAME
|-- css
|-- en
|-- fr
|-- images
|-- index.html
|-- index.xml
|-- js
|-- post
|-- project
|-- README.md
|-- sitemap.xml
`-- tags
12 directories, 6 files
Paramétrage GitHub Actions
Afin d’activer les
Paramétrage DNS
Paramétrage de votre nom de domaine customisé
Cas avec fichier CNAME
Si vous utilisez un repository pour les sources Hugo, il suffit de créer un fichier CNAME sous votre dossier "static".
Le fichier ne doit contenir que votre nom de domaine customisé. Exemple:
www.custom_domain.xy
Cas avec l’interface d’administration de GitHub Pages
Warning | Ne pas utiliser car le fichier CNAME sera supprimé à chaque push après le build "hugo_deploy" provenant de GitHub Actions. |
Cas avec GitHub Actions et le paramètre cname
Si vous utilisez le repo peaceiris/actions-gh-pages, vous pouvez ajouter le paramètre suivant dans fichier GitHub Actions:
- name: Deploy
uses: peaceiris/actions-gh-pages@v2
env:
ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
EXTERNAL_REPOSITORY: username/username.github.io
PUBLISH_BRANCH: master
PUBLISH_DIR: ./public
cname: www.custom_domain.xy
with:
emptyCommits: false
commitMessage: ${{ github.event.head_commit.message }}
Paramétrage DNS dans l’interface de votre provider DNS
Warning | Les copies d’écran concernent un panel d’administration DNS chez OVH. |
Connectez vous à votre interface d’administration DNS
Sélectionnez votre domaine si vous en gérez plusieurs
SĂ©lectionner "Zone DNS"
Puis sélectionnez ajoutez une entrée, sélectionnez "CNAME"
Ensuite remplissez le formulaire permettant de rediriger votre site vers le site GitHub pages de la forme: username.github.io
Note | il faudra peut-etre ajouter un "." au domaine de redirection, par exemple: username.github.io. |
Puis validez votre entrée
Note | Quelques minutes voire plus peuvent être nécessaire pour répliquer votre nouvelle entrée vers les différents serveurs DNS. |