Despliega tu sitio de Astro en GitLab Pages
Puedes usar GitLab Pages para alojar un sitio de Astro para tus proyectos, grupos o cuenta de usuario de GitLab.
¡Echa un vistazo al proyecto de ejemplo oficial de Astro en GitLab Pages!
Cómo desplegar
Sección titulada «Cómo desplegar»Puedes desplegar un sitio de Astro en GitLab Pages utilizando GitLab CI/CD para compilar y desplegar tu sitio automáticamente. Para hacer esto, tu código fuente debe estar alojado en GitLab y necesitas hacer los siguientes cambios en tu proyecto de Astro:
-
Configura las opciones
site(EN) ybase(EN) enastro.config.mjs.astro.config.mjs import { defineConfig } from 'astro/config';export default defineConfig({site: 'https://<username>.gitlab.io',base: '/<my-repo>',outDir: 'public',publicDir: 'static',});siteEl valor para
sitedebe ser uno de los siguientes:- La siguiente URL basada en tu nombre de usuario:
https://<username>.gitlab.io - La siguiente URL basada en el nombre de tu grupo:
https://<groupname>.gitlab.io - Tu dominio personalizado si lo tienes configurado en los ajustes de tu proyecto de GitLab:
https://example.com
Para las instancias autogestionadas de GitLab, reemplaza
gitlab.iocon el dominio de Pages de tu instancia.basePuede que se requiera un valor para
basepara que Astro trate el nombre de tu repositorio (p. ej./my-repo) como la raíz de tu sitio web.No configures un parámetro
basesi tu página se sirve desde la carpeta raíz.El valor para
basedebe ser el nombre de tu repositorio comenzando con una barra diagonal, por ejemplo/my-blog. Esto es para que Astro entienda que la raíz de tu sitio web es/my-repo, en lugar del predeterminado/.Cuando este valor está configurado, todos los enlaces internos de tus páginas deben llevar como prefijo tu valor
base:<a href="/my-repo/about">About</a>Lee más sobre cómo configurar un valor
base(EN) - La siguiente URL basada en tu nombre de usuario:
-
Renombra el directorio
public/astatic/. -
Configura
outDir: 'public'enastro.config.mjs. Esta configuración le indica a Astro que coloque el resultado de la compilación estática en una carpeta llamadapublic, que es la carpeta requerida por GitLab Pages para exponer los archivos.Si estabas usando el directorio
public/como fuente de archivos estáticos en tu proyecto de Astro, renómbralo y usa ese nuevo nombre de carpeta enastro.config.mjscomo el valor depublicDir.Por ejemplo, aquí tienes la configuración correcta en
astro.config.mjscuando el directoriopublic/se renombra astatic/:astro.config.mjs import { defineConfig } from 'astro/config';export default defineConfig({outDir: 'public',publicDir: 'static',}); -
Cambia la carpeta de salida en
.gitignore. En nuestro ejemplo necesitamos cambiardist/apublic/:.gitignore # salida de compilacióndist/public/ -
Crea un archivo llamado
.gitlab-ci.ymlen la raíz de tu proyecto con el contenido a continuación. Esto compilará y desplegará tu sitio cada vez que realices cambios en tu contenido:.gitlab-ci.yml pages:# La imagen de Docker que se usará para compilar tu aplicaciónimage: node:ltsbefore_script:- npm ciscript:# Especifica aquí los pasos necesarios para compilar tu aplicación- npm run buildartifacts:paths:# La carpeta que contiene los archivos compilados que se publicarán.# Esta debe llamarse "public".- publiconly:# Desencadena una nueva compilación y despliegue solo# cuando se hace un push a la(s) rama(s) a continuación- main -
Haz un commit con tus cambios y súbelos a GitLab.
-
En GitLab, ve al menú Deploy de tu repositorio y selecciona Pages. Aquí verás la URL completa de tu sitio web de GitLab Pages. Para asegurarte de que estás usando el formato de URL
https://username.gitlab.io/my-repo, desmarca la opción Use unique domain en esta página.
¡Tu sitio ya debería estar publicado! Cuando subas cambios al repositorio de tu proyecto de Astro, el pipeline de CI/CD de GitLab los desplegará automáticamente por ti.