Déployer votre site Astro sur GitLab Pages
Vous pouvez utiliser GitLab Pages pour héberger un site Astro pour vos projets, vos groupes ou votre compte utilisateur GitLab.
:::tip[Vous cherchez un exemple ?]Consultez l'exemple de projet officiel GitLab Pages avec Astro !:::
Comment déployer
Vous pouvez déployer un site Astro sur GitLab Pages en utilisant GitLab CI/CD pour compiler et déployer automatiquement votre site. Pour ce faire, votre code source doit être hébergé sur GitLab et vous devez apporter les modifications suivantes à votre projet Astro :
Définissez les options
siteetbasedansastro.config.mjs.import { defineConfig } from 'astro/config'; export default defineConfig({ site: 'https://<nom-utilisateur>.gitlab.io', base: '/<mon-depot>', outDir: 'public', publicDir: 'static', });siteLa valeur de
sitedoit être l'une des valeurs suivantes :- L'URL suivante basée sur votre nom d'utilisateur :
https://<nom-utilisateur>.gitlab.io - L'URL suivante basée sur le nom de votre groupe :
https://<nom-du-groupe>.gitlab.io - Votre nom de domaine personnalisé si vous l'avez configuré dans les paramètres de votre projet Gitlab :
https://example.com
Pour les instances autogérées GitLab, remplacez
gitlab.iopar le domaine Pages de votre instance.baseUne valeur pour
basepeut être requise pour qu'Astro traite le nom de votre dépôt (par exemple/mon-depot) comme racine de votre site web.:::noteNe définissez pas de paramètre
basesi votre page est servie à partir du dossier racine.:::La valeur de
basedoit être le nom de votre dépôt commençant par une barre oblique, par exemple/my-blog. Cela permet à Astro de comprendre que la racine de votre site Web est/mon-depot, plutôt que le/par défaut.:::cautionLorsque cette valeur est configurée, tous vos liens de page internes doivent être préfixés par la valeur que vous avez définie dans
base:<a href="/mon-depot/a-propos">À propos</a>En savoir plus sur la configuration d'une valeur pour
base:::- L'URL suivante basée sur votre nom d'utilisateur :
Renommez le répertoire
public/enstatic/.Définissez
outDir: 'public'dansastro.config.mjs. Ce paramètre indique à Astro de placer la sortie statique de la compilation dans un dossier appelépublic, qui est le dossier requis par GitLab Pages pour les fichiers exposés.Si vous utilisiez le répertoire
public/comme source de fichiers statiques dans votre projet Astro, renommez-le et utilisez ce nouveau nom de dossier dansastro.config.mjspour la valeur depublicDir.Par exemple, voici les paramètres corrects de
astro.config.mjslorsque le répertoirepublic/est renommé enstatic/:import { defineConfig } from 'astro/config'; export default defineConfig({ outDir: 'public', publicDir: 'static', });Modifiez la sortie de compilation dans
.gitignore. Dans notre exemple, nous devons remplacerdist/parpublic/:# build output -dist/ +public/Créez un fichier appelé
.gitlab-ci.ymlà la racine de votre projet avec le contenu ci-dessous. Cela permettra de compiler et de déployer votre site à chaque fois que vous apporterez des modifications à votre contenu :pages: # L'image Docker qui sera utilisée pour compiler votre application image: node:lts before_script: - npm ci script: # Précisez ici les étapes de la compilation de votre application - npm run build artifacts: paths: # Le dossier qui contient les fichiers compilés à publier. # Il doit être appelé « public ». - public only: # Déclencher une nouvelle compilation et déployer uniquement lorsqu'il y # a un push sur la(les) branche(s) ci-dessous - mainValidez vos modifications et transférez-les vers GitLab.
Sur Gitlab, accédez au menu Déployer de votre dépôt et sélectionnez Pages. Ici, vous verrez l'URL complète de votre site GitLab Pages. Pour vous assurer que vous utilisez le format d'URL
https://nom-utilisateur.gitlab.io/mon-depot, décochez le paramètre Utiliser un domaine unique sur cette page.
Votre site devrait maintenant être publié ! Lorsque vous transmettez des modifications au dépôt de votre projet Astro, le pipeline GitLab CI/CD les déploiera automatiquement pour vous.