Buildkite

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

주어진 루트 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"]
    }
  }
}

저장소에 다음 내용으로 .buildkite/pipeline.yml 파일을 생성합니다:

.buildkite/pipeline.yml
steps:
  - label: ":test_tube: Test"
    command: |
      pnpm install
      pnpm test
 
  - label: ":hammer: Build"
    command: |
      pnpm install
      pnpm build

파이프라인 생성

Buildkite 대시보드에서 파이프라인을 생성하려면 먼저 저장소에서 파이프라인 정의를 업로드해야 합니다.

  1. Buildkite 대시보드로 이동하려면 Pipelines를 선택합니다.

  2. New pipeline을 선택합니다.

  3. 각각의 NameDescription 필드에 파이프라인의 세부 정보를 입력합니다.

  4. Steps 편집기에서 저장소에서 정의를 업로드하는 단계가 있는지 확인합니다:

.buildkite/pipeline.yml
steps:
  - label: ':pipeline:'
    command: buildkite-agent pipeline upload
  1. Create Pipeline을 선택한 다음 New Build를 클릭하고 Create Build를 선택합니다.

확인하려는 변경 사항을 만들 때마다 파이프라인을 실행합니다.

Remote Caching

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

  • TURBO_TOKEN - Remote Cache에 액세스하기 위한 Bearer 토큰
  • TURBO_TEAM - 모노레포가 속한 계정

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

  1. Vercel Dashboard에서 계정에 대한 Scoped Access Token을 생성합니다. 값을 안전한 곳에 복사하세요. 잠시 후에 필요합니다.

    Vercel Access Tokens

  2. 팀 URL을 가져와 그 값도 복사합니다. 두 값 모두 다음 단계에서 사용됩니다.

  3. Buildkite 대시보드에서 각 값에 대해 두 개의 새로운 Buildkite secrets를 생성합니다. 이름을 TURBO_TOKENTURBO_TEAM으로 지정합니다.

  4. 표시된 대로 Buildkite Secrets 플러그인을 사용하여 환경 변수로 TURBO_TOKENTURBO_TEAM을 가져오고 적용하도록 pipeline.yml을 업데이트합니다. (추가 비밀 관리 옵션은 Buildkite 문서의 Managing pipeline secrets를 참조하세요.)

    .buildkite/pipeline.yml
    steps:
      - label: ':test_tube: Test'
        command: |
          npm install
          npm test
        plugins:
          - secrets:
              variables:
                TURBO_TOKEN: TURBO_TOKEN
                TURBO_TEAM: TURBO_TEAM
     
      - label: ':hammer: Build'
        command: |
          npm install
          npm run build
        plugins:
          - secrets:
              variables:
                TURBO_TOKEN: TURBO_TOKEN
                TURBO_TEAM: TURBO_TEAM

    이러한 변경 사항을 저장소에 커밋하고 푸시하면 다음 파이프라인 실행 시 비밀이 적용되고 Vercel Remote Caching이 활성화됩니다.