Introduction #
When mirroring your Hugo site with GitLab and Cloudflare, ensuring that the site is fully functional is crucial. The build process depends on the baseURL
configuration in your Hugo config.yaml
. To make this work seamlessly, you need to adjust the build command for both GitLab Pages and Cloudflare Pages. This guide walks you through the process.
Cloudflare Pages #
Cloudflare Pages automatically follows your GitLab or GitHub repository. Here are the steps to set it up:
Step 1: Adding Environment (Optional) #
To manage your domain effectively, consider adding an environment variable:
- Navigate to Worker & Pages -> Settings -> Environment variables.
- Add the variable:
- Variable name:
CF_PAGES_URL
- Value: Your Cloudflare Pages domain.
- Variable name:
Step 2: Build Command #
Adjust the build command to include the baseURL
when building the Hugo site:
- Navigate to Builds & Deployments -> Build Configurations -> Edit Configurations.
- Update the Build command:
hugo --baseURL $CF_PAGES_URL
GitLab Pages #
For GitLab Pages, you can use CI/CD GitLab Actions. Here is an example of a GitLab CI configuration for Hugo:
default:
image: "${CI_TEMPLATE_REGISTRY_HOST}/pages/hugo:0.121.1"
variables:
GIT_SUBMODULE_STRATEGY: recursive
GL_PAGES_URL: domain.com
pages:
script:
- hugo -b $GL_PAGES_URL
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
environment: production
This configuration ensures that the baseURL
is correctly set during the Hugo build process for GitLab Pages.
GitHub #
Coming soon …
git:
depth: false
env:
global:
- HUGO_VERSION="0.121.1"
matrix:
- YOUR_ENCRYPTED_VARIABLE
install:
- wget -q https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz
- tar xf hugo_${HUGO_VERSION}_Linux-64bit.tar.gz
- mv hugo ~/bin/
script:
- hugo -b $GH_PAGES_URL
deploy:
provider: pages
skip-cleanup: true
github-token: $GITHUB_TOKEN
keep-history: true
local-dir: public
repo: gh-username/gh-username.github.io
target-branch: master
verbose: true
on:
branch: master
Conclusion #
By following these steps for both Cloudflare Pages and GitLab Pages, you ensure that your Hugo site is mirrored and built correctly with the specified baseURL
, resulting in a fully functional and mirrored website.