GitLab CI

以下示例展示了如何将 Turborepo 与 GitLab CI 结合使用。

对于给定的根目录 package.json

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

以及 turbo.json

Turborepo logo
./turbo.json
{
  "$schema": "https://turbo.net.cn/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

有关更多信息,请访问 pnpm 文档中关于 GitLab CI 集成的部分,在此处查看。

远程缓存

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

  • TURBO_TOKEN - 用于访问远程缓存的 Bearer 令牌
  • TURBO_TEAM - 与其共享构件的 Vercel 团队的 slug

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

  1. Vercel Dashboard 中为您的帐户创建作用域访问令牌。

Vercel Access Tokens

将该值复制到安全的地方。您稍后会用到它。

  1. 转到你的 GitLab 仓库设置,然后点击 Settings(设置)再点击 CI/CD(持续集成/持续部署)选项卡。创建一个名为 TURBO_TOKEN 的新变量,并输入你的 Scoped Access Token(作用域访问令牌)的值。

GitLab CI Variables GitLab CI Create Variable

  1. 创建第二个名为 TURBO_TEAM 的秘密,并将其设置为您的团队 slug - 即 您的团队 URLvercel.com/ 之后的部分。例如,vercel.com/acme 的 slug 是 acme

远程缓存现在将在你的 GitLab 工作流中运行。