Code
Dagger – Portable devkit for CI/CD pipelines

Dagger is a portable devkit for CICD.
Using Dagger, software teams can develop powerful CICD pipelines with minimal effort, then run them anywhere. Benefits include:
- Unify dev and CI environments. Write your pipeline once, Dagger will run it the same everywhere.
- Reduce CI lock-in. No more re-writing everything from scratch every 6 months.
How does it work?
- Automate actions with your favorite programming language. No proprietary SDK: just regular shell, Go, Javascript, Python…
- Reuse actions from a large and growing catalog.
- Tie it all together in CUE – a revolutionary declarative language invented at Google. No more YAML hell!
- Test and debug instantly on your local machine. No more waiting 10min to catch a typo.
- Run your pipelines on any Docker-compatible runtime, for maximum portability. This means most modern CI runners can run Dagger out of the box.
Why Dagger?
A developer’s dream is a devops engineer’s nightmare
There’s never been a better time to be a developer. Thanks to an ever-expanding selection of specialized tools and cloud infrastructure, a dedicated team of developers can ship a competitive product in almost any industry within months. The result is unprecedented growth and innovation at every level of the stack.
This developer’s dream creates a nightmare for devops engineers, whose job is to automate the delivery of increasingly complex applications to increasingly complex cloud infrastructure. In order to continuously build, test and deploy their software, developers need a CI/CD pipeline that glues together an ever-expanding collection of specialized tools. The result is a mess of homemade scripts that are painful to write, difficult to debug and test, and must be rewritten for each new development and CI environment. Component reuse between pipelines is low, which causes fragmentation and a constant reinvention of the wheel.
Modernizing the CI/CD development experience
Dagger solves the devops engineer’s nightmare by telling them: “your pipelines are software. This makes you a developer, and you deserve a proper developer experience”. For example:
- Instead of gluing pipelines together with throwaway scripts, they can “play lego” by composing reusable actions, using an intuitive declarative language and API.
- Actions can safely be shared and reused thanks to a complete package management system, and there is a growing catalog of open-source actions developed by the community.
- Pipelines can be tested and debugged locally, then run on any CI system
- All actions are automatically cached: no manual tweaking necessary
This allows devops engineers to continuously improve their pipelines, with the confidence afforded by modern development practices.
Write your pipeline once, run anywhere
Because Dagger runs equally well anywhere a Docker-compatible runtime is available, it eliminates two major problems in the devops experience: dev/CI drift, and CI lock-in.
- Dev/CI drift: instead of writing the same automation twice – once in a CI-specific configuration, and again in a Docker compose file, shell script or Makefile – simply write a Dagger plan once, then run it in all environments.
- CI lock-in: migrating from one CI system to another, or supporting teams with multiple CI systems, should not require rewriting entire pipelines from scratch! The same Dagger plan can be run without modification on all major CI systems.
