Dagger for CI: Quickstart
Welcome to Dagger, a programmable tool that lets you replace your software project's artisanal scripts with a modern API and cross-language scripting engine.
Dagger helps you create a consistent, reliable development and testing environment on your local host and ensure that everything your CI can do, your local environment can do too.
Topics​
This quickstart introduces you to:
- The Dagger API, which lets you use core primitives to stitch together powerful pipelines out of containers, artifacts, network services, and secrets – all in type-safe Go, Python, TypeScript, PHP, or Java.
- Dagger Functions, which let you encapsulate code into software components which can be loaded into any Dagger Engine, and called by other Dagger Functions.
- The Dagger CLI, which lets you create, inspect and invoke Dagger Functions from the command line.
- Dagger Cloud, which lets you visualize your Dagger pipelines, streamline them, and debug errors.
- The Daggerverse, which lets you search and consume publicly available Dagger Functions.
Goal​
After going through this quickstart, you will have the tools and skills to test, build and release your application using Dagger Functions.
Approach​
This quickstart is structured as a hands-on workshop, in which you will create and run Dagger Functions to test, build and publish an example application.
- To begin, you will build a delivery pipeline for the example application using only the Dagger API. This is an important first step to learn how Dagger works and to understand key concepts and techniques.
- Next, you will simplify the pipeline using a Dagger module from the Daggerverse. This introduces you to the Daggerverse and the reusability benefits it offers.
Requirements​
This quickstart will take you approximately 25 minutes to complete. You should be familiar with programming in Go, Python, TypeScript, PHP, or Java.
Before beginning, ensure that:
- you know what Dagger is.
- you have Git and a container runtime installed on your system and running. This can be Docker, but you can also use Podman, nerdctl, or other Docker-like systems.
- you have a GitHub account (optional, only if configuring Dagger Cloud)