Dagger Python SDK in CI
- GitHub Actions
- CircleCI
- GitLab
- Jenkins
.github/workflows/dagger.yaml
name: dagger
on:
push:
branches: [main]
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- uses: actions/checkout@v3
- name: Install deps
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install dagger-io
- name: Run Dagger pipeline
run: python main.py
.circleci/config.yml
version: 2.1
jobs:
build:
docker:
- image: cimg/python:3.11
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
- run:
name: Install deps
command: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install dagger-io
- run:
name: Dagger Pipeline
command: python main.py
workflows:
dagger:
jobs:
- build
.gitlab-ci.yml
.docker:
image: python:3.11-alpine
services:
- docker:${DOCKER_VERSION}-dind
variables:
DOCKER_HOST: tcp://docker:2376
DOCKER_TLS_VERIFY: '1'
DOCKER_TLS_CERTDIR: '/certs'
DOCKER_CERT_PATH: '/certs/client'
DOCKER_DRIVER: overlay2
DOCKER_VERSION: '20.10.16'
.dagger:
extends: [.docker]
before_script:
- apk add docker-cli
build:
extends: [.dagger]
script:
- python -m pip install --upgrade pip
- if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- pip install dagger-io
- python main.py
Jenkinsfile
pipeline {
agent { label 'dagger' }
stages {
stage("dagger") {
steps {
sh '''
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install dagger-io
python main.py
'''
}
}
}
}
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
.