CircleCI

다음 예제는 Turborepo를 CircleCI와 함께 사용하는 방법을 보여줍니다.

CircleCI의 TTY

CircleCI는 Turborepo의 터미널 UI를 충돌시키는 대화형 터미널(TTY)을 사용합니다. 이 문제를 해결하려면 CircleCI 구성에서 TURBO_UI=false 환경 변수를 설정하세요.

주어진 루트 package.json의 경우:

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

And a turbo.json:

Turborepo logo
./turbo.json
{
  "$schema": "https://turborepo.com/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 i -g pnpm
        environment:
          TURBO_UI: "false"
      - run:
        command: pnpm build
        environment:
          TURBO_UI: "false"
      - run:
        command: pnpm test
        environment:
          TURBO_UI: "false"

Remote Caching

Remote Caching을 사용하려면 제공자의 Remote Cache에 대한 팀과 토큰을 검색합니다. 이 예제에서는 Vercel Remote Cache를 사용합니다:

  • TURBO_TOKEN - Remote Cache에 액세스하기 위한 Bearer 토큰
  • TURBO_TEAM - 아티팩트를 공유할 Vercel 팀의 슬러그

Vercel Remote Caching을 사용하려면 몇 가지 단계로 이러한 변수의 값을 얻을 수 있습니다:

  1. Vercel Dashboard에서 계정에 대한 Scoped Access Token을 생성합니다.

Vercel Access Tokens

값을 안전한 곳에 복사하세요. 잠시 후에 필요합니다.

  1. CircleCI 프로젝트 설정으로 이동하여 Environment Variables 탭을 클릭합니다. TURBO_TOKEN이라는 새 비밀을 생성하고 Scoped Access Token의 값을 입력합니다.

CircleCI Environment Variables CircleCI Create Environment Variables

  1. TURBO_TEAM이라는 두 번째 비밀을 만들고 팀 URL에서 vercel.com/ 뒤의 부분인 팀 슬러그로 설정합니다. 예를 들어, vercel.com/acme의 슬러그는 acme입니다.

  2. CircleCI는 프로젝트 설정에 저장된 환경 변수를 CI 환경으로 자동으로 로드합니다. CI 파일에 대한 수정은 필요하지 않습니다.