Skip to main content
Build and deployment for monorepos

Build what changed.
Deploy what passed.

Terrabuild uses one dependency graph to build, test, package, and deploy your workspace. It orders every target, runs independent work in parallel, and restores unchanged results from cache.

One graph for build and deployment Local cache included Runs on macOS, Linux, and Windows
EXAMPLE DEPLOYMENT PLANworkspace / deploy
Ready
One commandDependency orderCached results

Build and deploy on the same graph.

Define deployment like any other target, then make it depend on the builds, tests, packages, or infrastructure plans it needs.

ORCHESTRATION

Keep the whole run in order

Terrabuild runs prerequisites first and independent targets in parallel. A failed prerequisite stops the targets that depend on it.

CACHING

Cache by input

Terrabuild fingerprints each target and its inputs. A matching fingerprint restores the saved output instead of running the target again. Insights adds a shared cache for developer machines and CI.

CHANGE DETECTION

Follow changes through the graph

Change a library and Terrabuild includes the targets that depend on it. Unrelated branches of the graph stay out of the run.

Keep your build and deployment tools.

Terrabuild ships extensions for common build and deployment tools. An FScript file can add another tool without changing or recompiling Terrabuild.

EXTENSIONS

Start with the included extensions.

Use the included commands for common toolchains. A custom FScript extension can define actions, defaults, project discovery, and batching rules for anything else.

dotnetnpmdockerterraform+ custom
Explore extensions
CONTAINERS

Pin the execution environment.

Set an image on an extension to run its actions in the same container locally and in CI. Terrabuild supports Docker and Podman.

extension terraform {
image = "hashicorp/terraform:1.8.4"
platform = "linux/arm64"
}
Containerize an extension

Run your first build or deployment.

Read the quick start