github vercel/turborepo v1.0.25

latest releases: v2.3.1-canary.0, v2.3.0, v2.2.4-canary.10...
2 years ago

What's new?

Environment variable dependencies and hashing

When you use turbo with tools which inline environment variables at build time (e.g. Next.js or Create React App), it is important you tell turbo about it. Otherwise, you could ship a cached artifact with the wrong environment variables!

With this release, you can now change a task hash by doing any of the following:

  • (new) Including environment variables in a dependsOn in your pipeline definition prefixed by a $ will impact the cache fingerprint on a per-task or per-package-task basis.
  • (new) Including environment variables in globalDependencies list prefixed by a $ will impact the cache fingerprint of all tasks.
  • Including files or globs of files in globalDependencies will impact the cache fingerprint of all tasks.
  • (new) The value of any environment variable that includes THASH in its name will impact the cache fingerprint of all tasks.

Example Configuration

{
  "turbo": {
    "pipeline": {
      "build": {
        "dependsOn": {
          "^build"
          // env vars will impact hashes of all "build" tasks
          "$SOME_ENV_VAR"
        },
        "outputs": ["dist/**"]
      },
      "web#build": { // override settings for the "build" task for the "web" app
        "dependsOn": [
          "^build",
           // env vars that will impact the hash of "build" task for only "web" app
           "$STRIPE_SECRET_KEY",
           "$NEXT_PUBLIC_STRIPE_PUBLIC_KEY",
           "$NEXT_PUBLIC_ANALYTICS_ID",
        ],
        "outputs": [".next/**"],
      },
      "docs#build": { // override settings for the "build" task for the "docs" app
        "dependsOn": [
          "^build",
           // env vars that will impact the hash of "build" task for only "web" app
           "$STRIPE_SECRET_KEY",
           "$NEXT_PUBLIC_STRIPE_PUBLIC_KEY",
           "$NEXT_PUBLIC_ANALYTICS_ID",
        ],
        "outputs": [".next/**"],
      }
    },
    "baseBranch": "origin/main",
    "globalDependencies": [
      "$GITHUB_TOKEN"// env var that will impact the hashes of all tasks,
      "tsconfig.json" // file contents will impact the hashes of all tasks,
      ".env.*" // glob file contents will impact the hashes of all tasks,
    ],
  }
}

Bugfixes

  • Correctly show pnpx command in create-turbo
  • Treat symlink directory as directory in globalDependencies
  • Fix cpu overloading during long running tasks
  • Better error message when workspaces are not defined

Commits

New Contributors

Full Changelog: v1.0.24...v1.0.25

Don't miss a new turborepo release

NewReleases is sending notifications on new releases.