GitHub Actions 自动化构建流程
GitHub Actions 让 Hugo 构建变得自动化而高效。
GitHub Actions 可以在代码提交后自动运行构建与部署任务。通过编写工作流文件,配置运行环境、安装依赖并执行 hugo 命令,即可在云端生成静态文件并发布到目标平台。合理利用缓存与并行步骤能显著缩短构建时间,让持续集成流程更加顺畅。
基本配置
GitHub Actions 使用 YAML 文件定义工作流,存储在 .github/workflows/ 目录下。基本结构包括触发器、作业和步骤。
触发器可以是推送、拉取请求或定时任务。例如:
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
Hugo 构建工作流
一个典型的 Hugo 构建工作流如下:
name: Build and Deploy Hugo Site
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: '0.147.8'
extended: true
- name: Build
run: hugo --minify
- name: Deploy
# 部署步骤,如上传到 Cloudflare Pages
此工作流安装 Hugo、构建站点并部署。
优化技巧
- 缓存依赖:使用
actions/cache缓存 Hugo 模块和 Node.js 依赖,加快后续构建。 - 并行作业:将测试和构建分开运行。
- 条件部署:只在主分支推送时部署。
- 错误处理:添加失败通知或回滚步骤。
例如,缓存步骤:
- name: Cache Hugo modules
uses: actions/cache@v4
with:
path: ~/.cache/hugo_cache
key: ${{ runner.os }}-hugomod-${{ hashFiles('**/go.sum') }}
总结
GitHub Actions 简化了 Hugo 站点的 CI/CD 流程,通过自动化构建和部署,提升开发效率和可靠性。