GitHub Actions
以下示例展示了如何将 Turborepo 与 GitHub Actions 结合使用。
对于给定的根目录 package.json
以及 turbo.json
在你的仓库中创建一个名为 .github/workflows/ci.yml
的文件,内容如下
远程缓存
要将远程缓存与 GitHub Actions 结合使用,请将以下环境变量添加到你的 GitHub Actions 工作流程中,以便你的 turbo
命令可以使用它们。
TURBO_TOKEN
- 用于访问远程缓存的 Bearer 令牌TURBO_TEAM
- Monorepo 所属的帐户
要使用远程缓存,请检索你的提供商的远程缓存的团队和令牌。在此示例中,我们将使用 Vercel 远程缓存。
转到你的 GitHub 仓库设置,然后单击 Secrets 选项卡,再单击 Actions 选项卡。创建一个名为 TURBO_TOKEN
的新 secret,然后输入你的作用域访问令牌的值。
创建一个新的仓库变量(单击 Variables 选项卡),名为 TURBO_TEAM
,然后输入你的团队 Vercel URL 的值,不包括 vercel.com/
。使用仓库变量而不是 secret 可以防止 GitHub Actions 在日志输出中审查你的团队名称。
你的团队 URL 可以在仪表板中团队的常规项目设置中找到。如果你使用的是 Hobby 计划,则可以使用你的用户名。你的用户名可以在你的 Vercel 个人帐户设置 中找到
在你的 GitHub Actions 工作流程的顶部,为使用 turbo
的作业提供以下环境变量
使用 GitHub actions/cache 进行缓存
以下步骤举例说明了如何使用 actions/cache 在 GitHub 上缓存你的 monorepo 工件。
提供一个 package.json 脚本,该脚本将使用 Turborepo 运行任务。
带有 build
脚本的 package.json
示例
在 CI 文件的构建步骤之前,配置你的 GitHub 管道,使其包含一个使用 actions/cache@v4
action 的步骤。
- 确保在
actions/cache
action 中设置的path
属性与上面的输出位置匹配。在下面的示例中,path
设置为.turbo
。 - 在
key
属性下声明当前运行的缓存键。在下面的示例中,我们使用了 runner os 和 GitHub sha 的组合作为缓存键。 - 在
restore-keys
属性下声明所需的缓存前缀模式。确保此模式在未来的 ci 运行中仍然有效。在下面的示例中,我们使用了${{ runner.os }}-turbo-
作为缓存键前缀模式进行搜索。这允许我们在任何后续 ci 运行中命中缓存,尽管github.sha
发生了更改。
示例 ci
yaml,其中 .turbo
作为选定的缓存文件夹