A personal blog built with Hugo using the hugo-blog-awesome theme.
# Start development server with drafts enabled
hugo server -D
# Build for production
hugoCreate .github/workflows/hugo.yaml:
name: Deploy Hugo site to Pages
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
defaults:
run:
shell: bash
jobs:
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.152.2
steps:
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Build with Hugo
env:
HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache
HUGO_ENVIRONMENT: production
TZ: Europe/Berlin
run: |
hugo \
--gc \
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/"
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4- Push your code to GitHub
- Go to Settings → Pages
- Under "Build and deployment", set Source to GitHub Actions
- Go to Settings → Pages
- Under "Custom domain", enter your domain (e.g.,
blog.example.com) - Enable Enforce HTTPS
For an apex domain (e.g., example.com), add these A records:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
For a subdomain (e.g., michael.rupprecht.io), add a CNAME record:
michael.rupprecht.io -> yourusername.github.io
A static/CNAME file has already been created with the domain:
michael.rupprecht.io
This file will be copied to the root of your published site during build.
The baseURL in hugo.toml is already configured:
baseURL = 'https://michael.rupprecht.io/'Commit and push your changes. The GitHub Action will automatically build and deploy your site.
git add .
git commit -m "Add GitHub Pages deployment workflow"
git pushMonitor the deployment in the Actions tab of your repository.