à propos des workflows personnalisés
Les workflows personnalisĂ©s permettent de crĂ©er des sites GitHub Pages via lâutilisation de GitHub Actions. Vous pouvez toujours sĂ©lectionner la branche que vous souhaitez utiliser via le fichier de workflows, mais vous pouvez faire beaucoup plus en utilisant des workflows personnalisĂ©s. Pour commencer Ă utiliser des workflows personnalisĂ©s, vous devez dâabord les activer pour votre rĂ©fĂ©rentiel actuel. Pour plus dâinformations, consultez « Configuration dâune source de publication pour votre site GitHub Pages ».
Configuration de l'action configure-pages
GitHub Actions permet lâutilisation de GitHub Pages via lâaction configure-pages
, qui vous permet Ă©galement de collecter diffĂ©rentes mĂ©tadonnĂ©es sur un site web. Pour plus dâinformations, consultez lâaction configure-pages
.
Pour utiliser lâaction, placez cet extrait de code sous votre jobs
dans le workflow souhaité.
- name: Configure GitHub Pages
uses: actions/configure-pages@v5
Cette action permet de prendre en charge le dĂ©ploiement de nâimporte quel gĂ©nĂ©rateur de site statique sur GitHub Pages. Pour rendre ce processus moins rĂ©pĂ©titif, vous pouvez utiliser des modĂšles de workflow pour certains des gĂ©nĂ©rateurs de sites statiques les plus utilisĂ©s. Pour plus dâinformations, consultez « Utilisation de modĂšles de workflow ».
Configuration de l'action upload-pages-artifact
Les actions upload-pages-artifact
vous permettent dâempaqueter et de charger des artefacts. Lâartefact GitHub Pages doit ĂȘtre une archive gzip
compressée contenant un seul fichier tar
. Le fichier tar
doit avoir une taille infĂ©rieure Ă 10 Go et ne doit pas contenir de liens symboliques ou physiques. Pour plus dâinformations, consultez lâaction upload-pages-artifact
.
Pour utiliser lâaction dans votre workflow actuel, placez cet extrait de code sous jobs
.
- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@v3
DĂ©ploiement dâartefacts GitHub Pages
Lâaction deploy-pages
gĂšre la configuration nĂ©cessaire au dĂ©ploiement dâartefacts. Pour garantir une fonctionnalitĂ© optimale, les conditions suivantes doivent ĂȘtre remplies :
- Le travail doit disposer dâun minimum dâautorisations
pages: write
etid-token: write
. - Le paramĂštre
needs
doit ĂȘtre dĂ©fini surid
Ă lâĂ©tape de gĂ©nĂ©ration. Le fait de ne pas dĂ©finir ce paramĂštre peut entraĂźner un dĂ©ploiement indĂ©pendant qui recherche continuellement un artefact jamais créé. - Un
environment
doit ĂȘtre Ă©tabli pour appliquer des rĂšgles de protection de branche/dĂ©ploiement. Lâenvironnement par dĂ©faut estgithub-pages
. - Pour spĂ©cifier lâURL de la page en tant que sortie, utilisez le champ
url:
.
Pour plus dâinformations, consultez lâaction deploy-pages
.
# ...
jobs:
deploy:
permissions:
contents: read
pages: write
id-token: write
runs-on: ubuntu-latest
needs: jekyll-build
environment:
name: github-pages
url: ${{steps.deployment.outputs.page_url}}
steps:
- name: Deploy artifact
id: deployment
uses: actions/deploy-pages@v4
# ...
Liaison de travaux de génération et de déploiement distincts
Vous pouvez lier vos travaux build
et deploy
dans un seul fichier de workflows, Ă©liminant ainsi la nĂ©cessitĂ© de crĂ©er deux fichiers distincts pour obtenir le mĂȘme rĂ©sultat. Pour commencer Ă utiliser votre fichier de workflows, vous pouvez dĂ©finir sous jobs
des workflows build
et deploy
pour exécuter vos travaux.
# ...
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
# Deployment job
deploy:
environment:
name: github-pages
url: ${{steps.deployment.outputs.page_url}}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
# ...
Dans certains cas, vous pouvez choisir de tout combiner dans un seul travail, en particulier sâil nâest pas nĂ©cessaire de procĂ©der Ă une gĂ©nĂ©ration. Vous vous concentrez donc uniquement sur lâĂ©tape de dĂ©ploiement.
# ...
jobs:
# Single deploy job no building
deploy:
environment:
name: github-pages
url: ${{steps.deployment.outputs.page_url}}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload Artifact
uses: actions/upload-pages-artifact@v3
with:
# upload entire directory
path: '.'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
# ...
Vous pouvez dĂ©finir les travaux Ă exĂ©cuter sur diffĂ©rents exĂ©cuteurs, de façon sĂ©quentielle ou en parallĂšle. Pour plus dâinformations, consultez « Choix de ce que fait votre workflow ».