You can use GitLab Pages to host an Astro site for your GitLab projects, groups, or user account.
site
in astro.config.mjs
.outDir:public
in astro.config.mjs
. This setting instructs Astro to put the static build output in a folder called public
, which is the folder required by GitLab Pages for exposed files.If you were using the public/
directory as a source of static files in your Astro project, rename it and use that new folder name in astro.config.mjs
for the value of publicDir
.
For example, here are the correct astro.config.mjs
settings when the public/
directory is renamed to static/
:
import { defineConfig } from 'astro/config'; export default defineConfig({ sitemap: true, site: 'https://astro.build/', outDir: 'public', publicDir: 'static', });
Create a file called .gitlab-ci.yml
in the root of your project with the content below. This will build and deploy your site whenever you make changes to your content:
# The Docker image that will be used to build your app image: node:14 pages: cache: paths: - node_modules/ script: # Specify the steps involved to build your app here - npm install - npm run build artifacts: paths: # The folder that contains the built files to be published. # This must be called "public". - public only: # Trigger a new build and deploy only when there is a push to the # branch(es) below - main
© 2021 Fred K. Schott
Licensed under the MIT License.
https://docs.astro.build/en/guides/deploy/gitlab/