Back to Turborepo

Travis CI

apps/docs/content/docs/guides/ci-vendors/travis-ci.mdx

2.9.93.6 KB
Original Source

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

For a given root package.json:

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

And a turbo.json:

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

Create a file called .travis.yml in your repository with the following contents:

<PackageManagerTabs> <Tab value="pnpm">
  ```yaml title=".travis.yml"
  language: node_js
  node_js:
    - lts/*
  cache:
    npm: false
    directories:
      - "~/.pnpm-store"
  before_install:
    - curl -f https://get.pnpm.io/v6.16.js | node - add --global [email protected]
    - pnpm config set store-dir ~/.pnpm-store
  install:
    - pnpm install
  script:
    - pnpm build
  script:
    - pnpm test
  ```

  > For more information visit the pnpm documentation section on Travis CI integration, view it [here](https://pnpm.io/continuous-integration#travis)
</Tab> <Tab value="yarn"> Travis CI detects the use of Yarn by the presence of `yarn.lock`. It will automatically ensure it is installed.
  ```yaml title=".travis.yml"
  language: node_js
  node_js:
    - lts/*
  install:
    - yarn
  script:
    - yarn build
  script:
    - yarn test
  ```
</Tab> <Tab value="npm">
```yaml title=".travis.yml"
language: node_js
node_js:
  - lts/*
install:
  - npm install
script:
  - npm run build
script:
  - npm run test
```
</Tab>
<Tab value="bun">

  ```yaml title=".travis.yml"
  language: node_js
  node_js:
    - lts/*
  cache:
    npm: false
    directories:
      - "~/.pnpm-store"
  before_install:
    - curl -fsSL https://bun.sh/install | bash
  install:
    - bun install
  script:
    - bun run build
  script:
    - bun run test
  ```
</Tab> </PackageManagerTabs>

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

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

  1. Go to your Travis repository settings and scroll down to the Environment Variables section. Create a new variable called TURBO_TOKEN and enter the value of your Scoped Access Token.

  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.

  2. Travis CI automatically loads environment variables stored in project settings into the CI environment. No modifications are necessary for the CI file.