Turborepo

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.dev.org.tw/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 檔案不需要任何修改。

小時

總計節省的運算時間
開始使用
遠端快取 →

本頁內容