Turborepo logo

CircleCI

以下示例展示了如何在 CircleCI 中使用 Turborepo。

CircleCI 上的 TTY

CircleCI 使用交互式终端 (TTY),这会使 Turborepo 的终端 UI 崩溃。要解决此问题,请在你的 CircleCI 配置中设置 TURBO_UI=false 环境变量。

对于给定的根 package.json

./package.json
{
  "name": "my-turborepo",
  "scripts": {
    "build": "turbo run build",
    "test": "turbo run test"
  },
  "devDependencies": {
    "turbo": "latest"
  }
}

以及 turbo.json

./turbo.json
{
  "$schema": "https://turbo.rust-lang.net.cn/schema.json",
  "tasks": {
    "build": {
      "outputs": [".next/**", "!.next/cache/**"],
      "dependsOn": ["^build"]
    },
    "test": {
      "dependsOn": ["^build"]
    }
  }
}

在你的仓库中创建一个名为 .circleci/config.yml 的文件,内容如下

.circleci/config.yml
version: 2.1
orbs:
  node: circleci/node@5.0.2
workflows:
  test:
    jobs:
      - test
jobs:
  test:
    docker:
      - image: cimg/node:lts
    steps:
      - checkout
      - node/install-packages
      - run:
        command: npm run build
        environment:
          TURBO_UI: "false"
 
      - run:
        command: npm run test
        environment:
          TURBO_UI: "false"

远程缓存

要使用远程缓存,请为你的提供商检索远程缓存的团队和令牌。在此示例中,我们将使用 Vercel 远程缓存

  • TURBO_TOKEN - 用于访问远程缓存的 Bearer 令牌
  • TURBO_TEAM - monorepo 所属的帐户

要使用 Vercel 远程缓存,你可以通过以下几个步骤获取这些变量的值

  1. Vercel 仪表板中为你的帐户创建一个作用域访问令牌

Vercel Access Tokens

将该值复制到一个安全的地方。你稍后会需要它。

  1. 转到你的 CircleCI 项目设置,然后单击“环境变量”选项卡。创建一个名为 TURBO_TOKEN 的新密钥,并输入你的作用域访问令牌的值。

CircleCI Environment Variables CircleCI Create Environment Variables

  1. 创建第二个名为 TURBO_TEAM 的密钥,并输入你的团队 Vercel URL 的值,不包括 vercel.com/。你的团队 URL 可以在仪表板中你的团队常规项目设置中找到。

    如果你使用的是 Hobby 计划,则可以使用你的用户名。你的用户名可以在你的 Vercel 个人帐户设置中找到

Vercel Account Slug

  1. CircleCI 会自动将存储在项目设置中的环境变量加载到 CI 环境中。CI 文件无需修改。

小时

总计算节省
开始使用
远程缓存 →

本页内容