Dagger is an open source automation engine designed to build, test, and deliver software in a consistent and programmable way. It enables developers to define software delivery workflows using code instead of complex shell scripts or configuration files. Dagger executes tasks inside containers, ensuring that automation runs in identical environments across local machines, CI servers, or cloud infrastructure. Dagger provides a core execution engine and system API that orchestrates containers, filesystems, secrets, repositories, and other resources needed during development pipelines. Developers can write pipelines using SDKs available for multiple programming languages, enabling integration with existing development stacks and tools. It focuses on repeatability and efficiency by running tasks incrementally and caching intermediate results so that only affected operations are re-executed when changes occur.
Features
- Container-based execution for reproducible builds and development workflows
- Cross-language SDKs including Go, Python, TypeScript, Java, .NET, PHP, Elixir, and Rust
- System API for orchestrating containers, filesystems, secrets, and repositories
- Incremental execution with automatic caching of intermediate build steps
- Built-in tracing, logs, and metrics for debugging workflow execution
- Runs locally, in CI environments, or in cloud-based infrastructure