Using Turborepo with CircleCI
The following example shows how to use Turborepo with CircleCI (opens in a new tab).
For a given root package.json
:
{
"name": "my-turborepo",
"scripts": {
"build": "turbo run build",
"test": "turbo run test"
},
"devDependencies": {
"turbo": "1.2.5"
}
}
And a turbo.json
:
{
"$schema": "https://turbo.build/schema.json",
"pipeline": {
"build": {
"outputs": [".next/**", "!.next/cache/**"],
"dependsOn": ["^build"]
},
"test": {
"dependsOn": ["^build"]
},
}
}
Create a file called .circleci/config.yml
in your repository with the following contents:
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 run build
- run:
command: npm run test
Remote Caching
To use Remote Caching with CircleCI, add the following environment variables to your CircleCI project
to make them available to your turbo
commands.
TURBO_TOKEN
- The Bearer token to access the Remote CacheTURBO_TEAM
- The account to which the monorepo belongs
To use Vercel Remote Caching, you can get the value of these variables in a few steps:
- Create a Scoped Access Token to your account in the Vercel Dashboard (opens in a new tab)
Copy the value to a safe place. You'll need it in a moment.
- Go to your CircleCI project settings and click on the Environment Variables tab. Create a new secret called
TURBO_TOKEN
and enter the value of your Scoped Access Token.
-
Make a second secret called
TURBO_TEAM
and enter the value of your team's Vercel URL without thevercel.com/
. Your Team URL can be found inside your team's general project settings from the dashboard.If you're using a Hobby Plan, you can use your username. Your username can be found in your Vercel Personal Account Settings (opens in a new tab)
- CircleCI automatically loads environment variables stored in project settings into the CI environment. No modifications are necessary for the CI file.