GitLab CI

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

주어진 루트 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": [".svelte-kit/**"],
      "dependsOn": ["^build"]
    },
    "test": {
      "dependsOn": ["^build"]
    }
  }
}

저장소에 다음 내용으로 .gitlab-ci.yml 파일을 생성합니다:

.gitlab-ci.yml
image: node:latest
stages:
  - build
build:
  stage: build
  before_script:
    - curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@6.32.2
    - pnpm config set store-dir .pnpm-store
  script:
    - pnpm install
    - pnpm build
    - pnpm test
  cache:
    key:
      files:
        - pnpm-lock.yaml
    paths:
      - .pnpm-store

자세한 내용은 GitLab CI 통합에 대한 pnpm 문서 섹션을 여기에서 확인하세요.

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. GitLab 저장소 설정으로 이동하여 Settings를 클릭한 다음 CI/CD 탭을 클릭합니다. TURBO_TOKEN이라는 새 변수를 생성하고 Scoped Access Token의 값을 입력합니다.

GitLab CI Variables GitLab CI Create Variable

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

이제 GitLab 워크플로에서 Remote Caching이 작동합니다.