本文将详细指导你如何设置 GitHub Actions,以实现 Hugo 静态网站的自动化构建,并将其部署到 Netlify。我们将采用一种安全且易于管理的方式,通过一个集中的、以 JSON 格式存储的 GitHub Secret 来管理 Netlify 的部署凭据。
概述:Hugo 到 Netlify 的自动化部署流程
我们将通过以下步骤完成部署流程的搭建:
- 前置准备: 确保拥有必要的账户和工具。
- Netlify 平台配置: 在 Netlify 上创建并配置目标站点,获取部署所需的 API 凭据。
- GitHub Secrets 配置: 安全地存储 Netlify 的认证令牌和站点 ID。
- 创建 GitHub Actions 工作流: 编写 YAML 文件定义构建和部署的具体步骤。
- 执行与验证: 提交代码触发工作流,并验证部署结果。
1. 前置准备
开始之前,请确保你已具备:
- GitHub 账户及仓库: 你的 Hugo 项目代码应托管在 GitHub 上。
- Netlify 账户: 用于托管你的静态站点 (netlify.com)。
- Node.js 和 npm/yarn: Netlify CLI (将在 GitHub Actions 中使用) 是一个 Node.js 包。建议本地也安装 Node.js (nodejs.org)。
- Hugo (本地安装): 用于本地开发、构建和测试你的 Hugo 站点 (gohugo.io/installation)。如果你的主题或内容使用 SASS/SCSS, 请确保安装 Hugo 的 extended 版本。
2. Netlify 平台配置
在我们可以通过 GitHub Actions 部署之前,需要在 Netlify 上进行一些设置。
2.1. 在 Netlify 创建站点
- 登录 Netlify: 访问 app.netlify.com。
- 导入项目创建站点:
- 从你的团队仪表板,点击 “Add new site” -> “Import an existing project”。
- 选择 “GitHub” 作为你的 Git 提供商。
- 授权 Netlify 访问你的 GitHub 账户并选择你的 Hugo 项目仓库。
- 配置初始构建设置 (稍后将由 Actions 控制):
- Netlify 可能会尝试自动检测项目类型。
- 对于 “Build command” 和 “Publish directory”,你可以暂时接受其建议 (例如
hugo和public) 或留空。 - 点击 “Deploy site”。Netlify 可能会进行一次初始部署。
- 关键步骤:禁用 Netlify 的自动构建: 由于我们将使用 GitHub Actions 进行构建和部署,我们需要阻止 Netlify 在每次 Git 推送时自动构建。
- 导航到你新创建的 Netlify 站点。
- 进入 “Site configuration” (或 “Site settings”) -> “Build & deploy”。
- 在 “Continuous Deployment” -> “Builds” 部分,点击 “Edit settings” 并选择 “Stop builds”。
- 保存更改。这将确保只有我们的 GitHub Action 会触发部署。
2.2. 获取 Netlify API 凭据
为了让 GitHub Actions 能够代表你部署到 Netlify,你需要两项凭据:
-
A. Netlify 个人访问令牌 (Personal Access Token - PAT):
- 在 Netlify UI 中,点击右上角你的用户头像,然后选择 “User settings”。
- 在左侧导航栏中,选择 “Applications”。
- 向下滚动到 “Personal access tokens” 部分,点击 “New access token”。
- 为该 Token 提供一个描述性的名称,例如
GitHub Actions Hugo Deployer。 - 点击 “Generate token”。
- 立即复制生成的 Token。它只显示一次。请将其安全保存,稍后将添加到 GitHub Secrets。
-
B. Netlify 站点 ID (API ID):
此 ID 唯一标识了你在 Netlify 上的目标部署站点。- 导航到你在 Netlify 上的目标 Hugo 站点。
- 进入站点的 “Site configuration” (或 “Site settings”)。
- 在 “Site details” (或 “General” -> “Site details”) 部分,找到并复制 “API ID” 的值。
3. GitHub Secrets 配置
我们将把获取到的 Netlify 凭据安全地存储在一个名为 DEPLOY_SECRETS_JSON 的 GitHub Secret 中。这种方式便于集中管理多个平台的部署凭据。

最低0.47元/天 解锁文章
909

被折叠的 条评论
为什么被折叠?



