1- # Sample workflow for building and deploying a Hugo site to GitHub Pages
2- name : Deploy Hugo site to Pages
3-
4- on :
5- # Runs on pushes targeting the default branch
6- push :
7- branches : ["main"]
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.128.0
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- - name : Setup Pages
47- id : pages
48- uses : actions/configure-pages@v5
49- - name : Install Node.js dependencies
50- run : " [[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
51- - name : Build with Hugo
52- env :
53- HUGO_CACHEDIR : ${{ runner.temp }}/hugo_cache
54- HUGO_ENVIRONMENT : production
55- run : |
56- hugo \
57- --minify \
58- --baseURL "${{ steps.pages.outputs.base_url }}/"
59- - name : Upload artifact
60- uses : actions/upload-pages-artifact@v3
61- with :
62- path : ./public
63-
64- # Deployment job
65- deploy :
66- environment :
67- name : github-pages
68- url : ${{ steps.deployment.outputs.page_url }}
69- runs-on : ubuntu-latest
70- needs : build
71- steps :
72- - name : Deploy to GitHub Pages
73- id : deployment
1+ # Sample workflow for building and deploying a Hugo site to GitHub Pages
2+ name : Deploy Hugo site to Pages
3+
4+ on :
5+ # Runs on pushes targeting the default branch
6+ push :
7+ branches : ["main"]
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.128.0
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+ - name : Setup Pages
47+ id : pages
48+ uses : actions/configure-pages@v5
49+ - name : Install Node.js dependencies
50+ run : " [[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
51+ - name : Build with Hugo
52+ env :
53+ HUGO_CACHEDIR : ${{ runner.temp }}/hugo_cache
54+ HUGO_ENVIRONMENT : production
55+ run : |
56+ hugo \
57+ --minify \
58+ --baseURL "${{ steps.pages.outputs.base_url }}/"
59+ - name : Create .nojekyll file
60+ run : touch ./public/.nojekyll
61+ - name : Upload artifact
62+ uses : actions/upload-pages-artifact@v3
63+ with :
64+ path : ./public
65+
66+ # Deployment job
67+ deploy :
68+ environment :
69+ name : github-pages
70+ url : ${{ steps.deployment.outputs.page_url }}
71+ runs-on : ubuntu-latest
72+ needs : build
73+ steps :
74+ - name : Deploy to GitHub Pages
75+ id : deployment
7476 uses : actions/deploy-pages@v4
0 commit comments