Déployer votre site Astro sur GitHub Pages
Vous pouvez utiliser GitHub Pages pour héberger un site Astro statique et pré-rendu directement à partir d’un dépôt sur GitHub.com en utilisant les actions de GitHub.
Comment déployer
Section intitulée « Comment déployer »Astro maintient une action GitHub officielle dédiée à Astro pour déployer votre projet sur GitHub Pages nécessitant très peu de configuration. Il s’agit du moyen privilégié pour déployer sur GitHub Pages.
Suivez les instructions ci-dessous pour utiliser l’action GitHub afin de déployer votre site Astro sur GitHub Pages. Cela créera un site web à partir de votre dépôt, avec une URL GitHub (par exemple, https://<nom-utilisateur>.github.io/<mon-depot>
). Une fois déployé, vous pouvez éventuellement configurer un domaine personnalisé pour déployer votre site GitHub Pages sur votre domaine préféré (par exemple https://example.com
).
-
Créez un nouveau fichier
.github/workflows/deploy.yml
dans votre projet et collez le YAML ci-dessous.deploy.yml name: Déployer sur GitHub Pageson:# Déclenchez le workflow à chaque fois que vous poussez vers la branche `main`# Vous utilisez un nom de branche différent ? Remplacez `main` par le nom de votre branche.push:branches: [ main ]# Vous permet d'exécuter ce workflow manuellement à partir de l'onglet Actions sur GitHub.workflow_dispatch:# Autoriser cette tâche à cloner le dépôt et à créer un déploiement de pagepermissions:contents: readpages: writeid-token: writejobs:build:runs-on: ubuntu-lateststeps:- name: Extraire votre dépôt à l'aide de gituses: actions/checkout@v4- name: Installer, compiler et télécharger votre siteuses: withastro/action@v3# with:# path: . # L'emplacement racine de votre projet Astro dans le dépôt. (facultatif)# node-version: 20 # Version spécifique de Node à utiliser pour compiler votre site. La valeur par défaut est 20. (facultatif)# package-manager: pnpm@latest # Gestionnaire de paquets Node à utiliser pour installer les dépendances et compiler votre site. Détecté automatiquement en fonction de votre fichier de verrouillage. (facultatif)# env:# PUBLIC_POKEAPI: 'https://pokeapi.co/api/v2' # Utilisez des guillemets simples pour la valeur de la variable. (facultatif)deploy:needs: buildruns-on: ubuntu-latestenvironment:name: github-pagesurl: ${{ steps.deployment.outputs.page_url }}steps:- name: Déployer sur GitHub Pagesid: deploymentuses: actions/deploy-pages@v4L’action Astro peut être configurée avec des entrées facultatives. Fournissez-les en décommentant la ligne
with:
et l’entrée que vous souhaitez utiliser.Si votre site nécessite des variables d’environnement publiques, décommentez la ligne
env:
et ajoutez-les ici. (Consultez la documentation GitHub sur la définition des secrets pour ajouter des variables d’environnement privées.)L’action officielle d’Astro recherche un fichier de verrouillage pour détecter votre gestionnaire de paquets préféré (
npm
,yarn
,pnpm
oubun
). Vous devez envoyer le fichierpackage-lock.json
,yarn.lock
,pnpm-lock.yaml
oubun.lockb
généré automatiquement par votre gestionnaire de paquets dans votre dépôt. -
Dans votre fichier de configuration Astro, définissez
site
avec l’URL GitHub de votre site déployé.astro.config.mjs import { defineConfig } from 'astro/config'export default defineConfig({site: 'https://astronaut.github.io',})La valeur de
site
doit être l’une des suivantes :- L’URL suivante reposant sur votre nom d’utilisateur :
https://<username>.github.io
- L’URL aléatoire générée automatiquement pour une page privée d’une organisation GitHub :
https://<chaine-de-caracteres-aleatoire>.pages.github.io/
- L’URL suivante reposant sur votre nom d’utilisateur :
-
Dans
astro.config.mjs
, configurez une valeur pourbase
(généralement requis).GitHub Pages publiera votre site web à une adresse qui dépend à la fois de votre nom d’utilisateur et du nom de votre dépôt (par exemple,
https://<nom-utilisateur>/github.io/<mon-depot>/
). Définissez une valeur pour « base » qui spécifie le dépôt de votre site web. Cela permet à Astro de comprendre que la racine de votre site web est/mon-depot
, plutôt que la valeur par défaut/
. Vous pouvez ignorer cette étape si le nom de votre dépôt correspond au modèle spécial<nom-utilisateur>.github.io
(par exemple,https://github.com/nom-utilisateur/nom-utilisateur.github.io/
).Configurez
base
comme nom du dépôt commençant par une barre oblique (par exemple,/mon-depot
) :astro.config.mjs import { defineConfig } from 'astro/config'export default defineConfig({site: 'https://astronaut.github.io',base: '/mon-depot',})Lorsque cette valeur est configurée, tous les liens internes à vos pages doivent être préfixés par la valeur de votre
base
:<a href="/mon-depot/a-propos">À propos</a>En savoir plus sur la configuration d’une valeur pour
base
. -
Sur GitHub, accédez à l’onglet Paramètres de votre dépôt et recherchez la section Pages des paramètres.
-
Choisissez GitHub Actions comme Source de votre site.
Lorsque vous envoyez des modifications dans le dépôt de votre projet Astro, l’action GitHub les déploiera automatiquement pour vous sur votre URL GitHub.
Remplacer votre URL GitHub par un domaine personnalisé
Section intitulée « Remplacer votre URL GitHub par un domaine personnalisé »Une fois votre projet Astro déployé sur GitHub Pages à une URL GitHub en suivant les instructions précédentes, vous pouvez configurer un domaine personnalisé. Cela signifie que les utilisateurs peuvent visiter votre site via votre domaine personnalisé https://example.com
au lieu de https://<nom-utilisateur>.github.io
.
-
Ajoutez un enregistrement
./public/CNAME
à votre projet.Créez le fichier suivant dans votre dossier
public/
avec une seule ligne de texte qui spécifie votre domaine personnalisé :public/CNAME sub.example.comCela déploiera votre site sur votre domaine personnalisé au lieu de
utilisateur.github.io
. -
Dans votre configuration Astro, remplacez la valeur de
site
par votre domaine personnalisé. Ne définissez pas de valeur pourbase
et supprimez-la si elle existe :astro.config.mjs import { defineConfig } from 'astro/config'export default defineConfig({site: 'https://example.com',base: '/mon-depot'}) -
Si nécessaire, mettez à jour tous les liens internes à vos pages pour supprimer le préfixe
base
:<a href="/mon-depot/a-propos">À propos</a>
Exemples
Section intitulée « Exemples »- Modèle de démarrage pour le déploiement sur Github Pages
- Thème Flexoki pour Starlight (site en production)
- Puces de couleur pour Expressive Code (site en production)
- Blocs Markdown pour Starlight (site en production)