12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- # 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.128.0
- 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: Install Dart Sass
- run: sudo snap install dart-sass
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: recursive
- - name: Setup Pages
- id: pages
- uses: actions/configure-pages@v5
- - name: Install Node.js dependencies
- run: npm ci || true
- - name: Build with Hugo
- env:
- HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache
- HUGO_ENVIRONMENT: production
- run: |
- hugo \
- --minify \
- --baseURL "${{ steps.pages.outputs.base_url }}/"
- - name: Run Pagefind
- run: npx -y pagefind --site public
- - name: Upload artifact
- uses: actions/upload-pages-artifact@v3
- 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@v4
|