---
slug: /145912/ci
displayed_sidebar: "current"
category: "guides"
tags: ["python", "go", "nodejs", "gitlab-ci", "github-actions", "circle-ci", "jenkins"]
authors: ["Jeremy Adams"]
date: "2022-12-13"
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# Use Dagger SDKs in CI

## Introduction

This guide explains how to integrate the Dagger SDKs with various CI services/tools.

## Requirements

This guide assumes that:

- You have a Go, Python or Node.js environment on the CI runner.
- You have a Dagger SDK for one of the above languages installed on the CI runner. If not, install your preferred language SDK within your CI workflow following the installation instructions for the Dagger [Go](../sdk/go/371491-install.mdx), [Python](../sdk/python/866944-install.mdx) or [Node.js](../sdk/nodejs/835948-install.mdx) SDK.

## Use Dagger in CI

### GitHub Actions

<Tabs groupId="language">
<TabItem value="Go">

```yaml title=".github/workflows/dagger.yml" file=./snippets/ci/go/actions.yml
```

</TabItem>
<TabItem value="Node.js">

```yaml title=".github/workflows/dagger.yaml" file=./snippets/ci/nodejs/actions.yml
```

</TabItem>
<TabItem value="Python">

```yaml title=".github/workflows/dagger.yaml" file=./snippets/ci/python/actions.yml
```

</TabItem>
</Tabs>

### GitLab CI

<Tabs groupId="language">
<TabItem value="Go">

```yaml title=".gitlab-ci.yml" file=./snippets/ci/go/gitlab.yml
```

</TabItem>
<TabItem value="Node.js">

```yaml title=".gitlab-ci.yml" file=./snippets/ci/nodejs/gitlab.yml
```

</TabItem>
<TabItem value="Python">

```yaml title=".gitlab-ci.yml" file=./snippets/ci/python/gitlab.yml
```

</TabItem>
</Tabs>

### CircleCI

<Tabs groupId="language">
<TabItem value="Go">

```yaml title=".circleci/config.yml" file=./snippets/ci/go/circle.yml
```

</TabItem>
<TabItem value="Node.js">

```yaml title=".circleci/config.yml" file=./snippets/ci/nodejs/circle.yml
```

</TabItem>
<TabItem value="Python">

```yaml title=".circleci/config.yml" file=./snippets/ci/python/circle.yml
```

</TabItem>
</Tabs>

### Jenkins

<Tabs groupId="language">
<TabItem value="Go">

```groovy title="Jenkinsfile" file=./snippets/ci/go/Jenkinsfile
```

Requires `docker` client and `go` installed on your Jenkins agent, a Docker host available (can be `docker:dind`), and agents labeled in Jenkins with `dagger`.

</TabItem>
<TabItem value="Node.js">

```groovy title="Jenkinsfile" file=./snippets/ci/nodejs/Jenkinsfile
```

Requires `docker` client and `node` installed on your Jenkins agent, a Docker host available (can be `docker:dind`), and agents labeled in Jenkins with `dagger`.

</TabItem>
<TabItem value="Python">

```groovy title="Jenkinsfile" file=./snippets/ci/python/Jenkinsfile
```

Requires `docker` client and `python` installed on your Jenkins agent, a Docker host available (can be `docker:dind`), and agents labeled in Jenkins with `dagger`.

</TabItem>
</Tabs>

### Azure Pipelines

<Tabs groupId="language">
<TabItem value="Go">

```yaml title="azure-pipelines.yml" file=./snippets/ci/go/azure-pipelines.yml
```

</TabItem>
<TabItem value="Node.js">

```yaml title="azure-pipelines.yml" file=./snippets/ci/nodejs/azure-pipelines.yml
```

</TabItem>
<TabItem value="Python">

```yaml title="azure-pipelines.yml" file=./snippets/ci/python/azure-pipelines.yml
```

</TabItem>
</Tabs>

### AWS CodePipeline

<Tabs groupId="language">
<TabItem value="Go">

```yaml title="buildspec.yml" file=./snippets/ci/go/buildspec.yml
```

</TabItem>
<TabItem value="Node.js">

```yaml title="buildspec.yml" file=./snippets/ci/nodejs/buildspec.yml
```

</TabItem>
<TabItem value="Python">

```yaml title="buildspec.yml" file=./snippets/ci/python/buildspec.yml
```

</TabItem>
</Tabs>
