Skip to content

Repository files navigation


License NuGet version build

What is Terrabuild?

Terrabuild applies desired-state configuration (DSC) to build and deployment. Start with the outcome you want: applications built, tests passed, packages produced, or an environment deployed. You declare the relationships and policies that make that outcome valid; Terrabuild determines the work needed to reach it.

Coordination is how Terrabuild realizes that intent. It connects tools, projects, and environment settings through one dependency model that runs locally and in CI.

Your existing tools do the work. Terrabuild determines their prerequisites, runs independent work concurrently, and reuses matching results according to explicit input, output, and execution policies.

  • Describe shared rules in WORKSPACE and project commands in PROJECT files.
  • Start with included integrations for .NET, Node.js, Docker, Go, and more.
  • Configure tool arguments, container images, and environment-specific settings.
  • Add or replace integrations under custom names using FScript extensions.
  • Keep common builds reusable while plans and deployments consume their environment context.
  • Inspect the selected workflow with terrabuild explain before executing it.

Start with two small projects, then adopt your existing tools and coordinate environments. The first tutorial requires only Terrabuild, Git, and a POSIX shell.

Terrabuild and Insights

Terrabuild executes the requested workflow. Insights records the states that were reached, how they changed, and what each environment received.

Connect a workspace to share encrypted artifacts, inspect execution graphs, follow changes through environments, generate release notes, and study delivery and engineering trends alongside GitHub activity. Terrabuild remains fully usable with its local cache when Insights is not connected.

Learn more

Open source

This repository contains the Terrabuild software, covered under the Functional Source License, Version 1.1, Apache 2.0 Future License, except where noted.

Terrabuild is a product produced from this open source software, exclusively by Magnus Opera SAS. It is distributed under our commercial terms.

Others are allowed to make their own distribution of the software, but they cannot use any of the Terrabuild trademarks, cloud services, etc.

We explicitly grant permission for you to make a build that includes our trademarks while developing the Terrabuild software itself. You may not publish or share the build, and you may not use that build to run Terrabuild software for any other purpose.

Contributing

Visit Contributing for information on building Terrabuild from source or contributing improvements.

About

Seamless CI/CD tool for building and deploying monorepos. Support HCL-like configuration, builds in containers, outputs caching, extensions.

Topics

Resources

Contributing

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages