Vercel

GitLab CI

Learn how to use GitLab CI with Turborepo.

The following example shows how to use Turborepo with GitLab CI.

For a given root package.json:

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

And a turbo.json:

./turbo.json
{
  "$schema": "https://turborepo.dev/schema.json",
  "tasks": {
    "build": {
      "outputs": [".svelte-kit/**"],
      "dependsOn": ["^build"]
    },
    "test": {
      "dependsOn": ["^build"]
    }
  }
}

Create a file called .gitlab-ci.yml in your repository with the following contents:

.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

For more information visit the pnpm documentation section on GitLab CI integration, view it here

.gitlab-ci.yml
image: node:latest
stages:
  - build
build:
  stage: build
  script:
    - yarn install
    - yarn build
    - yarn test
  cache:
    paths:
      - node_modules/
      - .yarn
.gitlab-ci.yml
image: node:latest
stages:
  - build
build:
  stage: build
  script:
    - npm install
    - npm run build
    - npm run test
.gitlab-ci.yml
default:
  image: oven/bun:1.2
  cache:
    key:
      files:
        - bun.lock
    paths:
      - node_modules/
  before_script:
      - bun install

build:
script: - bun run build

test:
script: - bun run test

Remote Caching

To use Remote Caching, retrieve the team and token for the Remote Cache for your provider. In this example, we'll use Vercel Remote Cache:

  • TURBO_TOKEN - The Bearer token to access the Remote Cache
  • TURBO_TEAM - The slug of the Vercel team to share the artifacts with

To use Vercel Remote Caching, you can get the value of these variables in a few steps:

  1. Create a Scoped Access Token to your account in the Vercel Dashboard

Vercel Access Tokens

Copy the value to a safe place. You'll need it in a moment.

  1. Go to your GitLab repository settings and click on the Settings and then CI/CD tab. Create a new variable called TURBO_TOKEN and enter the value of your Scoped Access Token.

GitLab CI Variables GitLab CI Create Variable

  1. Make a second secret called TURBO_TEAM and set it to your team slug - the part after vercel.com/ in your Team URL. For example, the slug for vercel.com/acme is acme.

Remote Caching will now be operational in your GitLab workflows.

9,001,168

hours

Total Compute Saved
Get started with
Remote Caching →

On this page

GitHubEdit this page on GitHub