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 流程,通过自动化构建和部署,提升开发效率和可靠性。