名称: netlify
描述: 使用 Netlify CLI (netlify) 来创建/关联 Netlify 站点,并设置从 GitHub 到 Netlify 的 CI/CD(持续部署),尤其适用于单体仓库(monorepo,即一个仓库中包含多个站点,例如位于 sites/<domain> 下的 Hugo 站点)。当 Avery 要求部署新站点、将仓库连接到 Netlify、配置构建/发布设置、设置环境变量、启用部署预览或自动化创建 Netlify 站点时使用。
使用 netlify CLI 来创建项目(“站点”)、关联本地文件夹,并配置从 GitHub 到 Netlify 的 CI/CD。
netlify --versionnetlify login) 或 提供 --auth $NETLIFY_AUTH_TOKEN。有用的检查命令:
netlify status
netlify sites:list
适用于 一个仓库包含多个站点 的情况(例如 sites/seattlecustomboatparts.com, sites/floridacustomerboatparts.com):
netlify.toml 文件。这可以确保每个域名的构建配置是独立的。
netlify.toml在 sites/<domain>/ 目录下创建 netlify.toml:
[build]
command = "hugo --minify"
publish = "public"
[build.environment]
HUGO_VERSION = "0.155.1"
(请根据需要调整 HUGO_VERSION。)
在您想要部署的站点文件夹(基础目录)内运行:
cd sites/<domain>
netlify sites:create --name <netlify-site-name> --account-slug <team> --with-ci
说明:
- --with-ci 会开始设置 CI 钩子。
- 如果需要手动控制,可以添加 --manual。
如果尚未关联:
netlify link
netlify init
此步骤通常是交互式的(选择 Git 远程仓库/仓库 + 构建设置)。为了实现自动化,我们可以预先创建好 netlify.toml 文件,然后接受默认设置。
设置每个站点特定的变量:
netlify env:set VAR_NAME value
netlify env:list
对于单体仓库很有用的变量:
- CONTACT_EMAIL(或其他共享配置)
手动部署(便于快速预览):
netlify deploy # 草稿部署
netlify deploy --prod # 生产环境部署
scripts/hugo_netlify_toml.sh:在 Hugo 子文件夹中创建 netlify.toml 文件。scripts/netlify_monorepo_site.sh:帮助为子文件夹创建/关联/初始化站点的辅助脚本。使用脚本时,建议通过环境变量传递 NETLIFY_AUTH_TOKEN 以实现非交互式运行。