Features
📄️ Programmable Pipelines
Dagger provides a specialized container engine for application delivery pipelines, enabling you to replace your YAML-based CI/CD workflows with code in your favorite programming language. This allows you to build your delivery pipelines in the same language as your application and benefit from your language's existing ecosystem for tooling and best practices.
📄️ Reusable Modules
Dagger lets you encapsulate common tasks and workflows in reusable, shareable Dagger modules. These Dagger modules are simply collections of Dagger Functions, packaged together for easy sharing and consumption. Their design is inspired by Go modules:
📄️ Caching
One of Dagger's most powerful features is its ability to cache data across pipeline runs.
📄️ Interactive Debugging
Pipeline failures can be both frustrating and lead to wasted resources as the team seeks to understand what went wrong and why. Dagger's interactive debugging feature is an invaluable tool in this situation.
📄️ Ephemeral Services
Dagger Functions support service containers, enabling users to spin up additional services (as containers) and communicate with those services from their pipelines.
📄️ Secrets
Dagger supports the use of confidential information, such as passwords, API keys, SSH keys, access tokens and so on, in your pipelines. These "secrets" can be passed to Dagger Functions as arguments from host environment variables, the host filesystem or the result of host command execution.
📄️ Visualization
Dagger works by building up a DAG of operations and evaluating them, often in parallel. By nature, this is a difficult thing to display. It's easy to show the output of one operation at a time, but as soon as you have parallelism, you'll get jumbled output that's hard to understand.