|
|
- # Sample workflow for building and deploying a Hugo site to GitHub Pages
- name: Deploy Hugo site to Pages
-
- on:
- # Runs on pushes targeting the default branch
- push:
- branches: ["main"]
-
- # Allows you to run this workflow manually from the Actions tab
- workflow_dispatch:
-
- # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
- permissions:
- contents: read
- pages: write
- id-token: write
-
- # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
- # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
- concurrency:
- group: "pages"
- cancel-in-progress: false
-
- # Default to bash
- defaults:
- run:
- shell: bash
-
- jobs:
- # Build job
- build:
- runs-on: ubuntu-latest
- env:
- HUGO_VERSION: 0.117.0
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- - name: Setup Go
- uses: actions/setup-go@v4
- with:
- go-version: '1.21'
- - name: Setup Hugo
- uses: peaceiris/actions-hugo@v2
- with:
- hugo-version: '0.117.0'
- extended: true
- - name: Build with Hugo
- env:
- # For maximum backward compatibility with Hugo modules
- HUGO_ENVIRONMENT: production
- HUGO_ENV: production
- run: |
- hugo \
- --gc --minify \
- --baseURL "https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/"
- - name: Upload artifact
- uses: actions/upload-pages-artifact@v2
- with:
- path: ./public
-
- # Deployment job
- 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@v2
|