docs/current_docs/getting-started/ci-integrations/circleci.mdx
Dagger provides a programmable container engine that allows you to replace your YAML workflows in CircleCI with Dagger Functions written in a regular programming language. This allows you to execute your pipeline the same locally and in CI, with the additional benefit of intelligent caching.
When running a CI pipeline with Dagger using CircleCI, the general workflow looks like this:
.circleci/config.yml workflow file.dagger call ....DAGGER_CLOUD_TOKEN environment variable is set.:::note In a Dagger context, you won't have access to CircleCI's test splitting functionality. You will need to implement your own test distribution logic or run all tests in a single execution. :::
dockerThe examples below use the docker executor, which come with a Docker execution environment preconfigured. If using a different executor, such as machine, you must install Docker in the execution environment before proceeding with the examples.
The following example demonstrates how to call a Dagger Function in a CircleCI workflow.
The following is a more complex example demonstrating how to create a CircleCI workflow that checks out source code, calls a Dagger Function to test the project, and then calls another Dagger Function to build and publish a container image of the project. This example uses a simple Go application and assumes that you have already forked it in the repository connected to the CircleCI project.
If you have any questions about additional ways to use CircleCI with Dagger, join our Discord and ask your questions in our help channel.
CircleCI is a popular CI/CD platform to test, build and deploy software applications.