1+ name : Deploy Hugo site to Pages
2+
3+ on :
4+ # Runs on pushes targeting the default branch
5+ push :
6+ branches :
7+ - master
8+
9+ # Allows you to run this workflow manually from the Actions tab
10+ workflow_dispatch :
11+
12+ # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13+ permissions :
14+ contents : read
15+ pages : write
16+ id-token : write
17+
18+ # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19+ # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20+ concurrency :
21+ group : " pages"
22+ cancel-in-progress : false
23+
24+ # Default to bash
25+ defaults :
26+ run :
27+ shell : bash
28+
29+ jobs :
30+ # Build job
31+ build :
32+ runs-on : ubuntu-latest
33+ env :
34+ HUGO_VERSION : 0.140.1
35+ steps :
36+ - name : Install Hugo CLI
37+ run : |
38+ wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
39+ && sudo dpkg -i ${{ runner.temp }}/hugo.deb
40+ - name : Install Dart Sass
41+ run : sudo snap install dart-sass
42+ - name : Checkout
43+ uses : actions/checkout@v4
44+ with :
45+ submodules : recursive
46+ fetch-depth : 0
47+ - name : Setup Pages
48+ id : pages
49+ uses : actions/configure-pages@v5
50+ - name : Use Node.js 22.x
51+ uses : actions/setup-node@v1
52+ with :
53+ node-version : 22.x
54+ - name : yarn install
55+ run : |
56+ yarn install
57+ - name : Build with Hugo
58+ env :
59+ HUGO_CACHEDIR : ${{ runner.temp }}/hugo_cache
60+ HUGO_ENVIRONMENT : production
61+ TZ : America/Los_Angeles
62+ run : |
63+ hugo \
64+ --gc \
65+ --minify \
66+ --baseURL "${{ steps.pages.outputs.base_url }}/"
67+ - name : Upload artifact
68+ uses : actions/upload-pages-artifact@v3
69+ with :
70+ path : ./public
71+
72+ # Deployment job
73+ deploy :
74+ environment :
75+ name : github-pages
76+ url : ${{ steps.deployment.outputs.page_url }}
77+ runs-on : ubuntu-latest
78+ needs : build
79+ steps :
80+ - name : Deploy to GitHub Pages
81+ id : deployment
82+ uses : actions/deploy-pages@v4
0 commit comments