Declare your
desired state.
Terrabuild applies desired-state configuration to build and deployment. Declare what should be built, tested, packaged, or deployed. Terrabuild coordinates your tools and environment settings, reuses valid results, and runs the work needed to reach that outcome.
Describe what should be true. Let the graph determine the work.
A frontend needs a generated client. An image needs the application. A deployment needs the image and its environment settings. Put those relationships in one place.
Connect work across tools
Use included integrations for .NET, Node.js, Docker, Go, and more. Add your own FScript actions. Terrabuild orders their prerequisites and runs independent work concurrently.
Reuse the work already done
Declare inputs and outputs so matching results can be reused. Give deployments an explicit always-run policy when each request must change external state.
Make environment differences explicit
Keep common builds reusable while plans and deployments consume staging or production settings. Configure project selection, tool arguments, and execution containers where they belong.
Let each application follow its own delivery path.
For example, select studio for a preview deployment while catalog stays in staging. Each application can have its own infrastructure dependencies and environment settings.
Your tools do the work. Terrabuild coordinates them.
Use the included extensions for common build and deployment tools. Add another tool with an FScript file, without changing or recompiling Terrabuild.
Start with the included extensions.
Use commands for common toolchains. A custom FScript extension can define actions, defaults, project discovery, and batching rules for anything else.
Configure or write an extensionPin 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.
See what ran.
Follow what reached each environment.
Start with local execution and caching, without an account. Connect Insights when you want shared encrypted artifacts, execution history, and a record of changes delivered to each environment.
3 projects changed · 7 commits
1 project changed · 2 commits