Signed-off-by: Adrien Brault <adrien.brault@gmail.com>
3.3 KiB
slug | displayed_sidebar |
---|---|
/1201/ci-environment | europa |
Integrating with your CI environment
Dagger can be used with any CI environment (no migration required) and has two important advantages which make the overall experience less error-prone and more efficient:
- You don't write YAML, you write CUE - typed configuration with built-in formatting
- Configuration is executed in BuildKit, the execution engine at the heart of Docker
This makes any CI environment with Docker pre-installed work with Dagger out of the box. We started with CI environments that you told us you are using. We will configure a production deployment for the same application that we covered in the previous page.
:::note If you cannot find your CI environment below, let us know via this GitHub discussion. :::
import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
<Tabs defaultValue="github-actions" groupId="ci-environment" values={[ {label: 'GitHub Actions', value: 'github-actions'}, {label: 'CircleCI', value: 'circleci'}, {label: 'GitLab', value: 'gitlab'}, {label: 'Jenkins', value: 'jenkins'}, {label: 'Tekton', value: 'tekton'}, ]}>
If you would like us to document CircleCI next, vote for it here: dagger#1677
.docker:
image: docker:${DOCKER_VERSION}-git
services:
- docker:${DOCKER_VERSION}-dind
variables:
# See https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#docker-in-docker-with-tls-enabled-in-the-docker-executor
DOCKER_HOST: tcp://docker:2376
DOCKER_TLS_VERIFY: '1'
DOCKER_TLS_CERTDIR: '/certs'
DOCKER_CERT_PATH: '/certs/client'
# Faster than the default, apparently
DOCKER_DRIVER: overlay2
DOCKER_VERSION: '20.10'
.dagger:
extends: [.docker]
variables:
DAGGER_VERSION: 0.2.4
DAGGER_LOG_FORMAT: plain
DAGGER_CACHE_PATH: .dagger-cache
ARGS: ''
cache:
key: dagger-${CI_JOB_NAME}
paths:
- ${DAGGER_CACHE_PATH}
before_script:
- apk add --no-cache curl
- |
# install dagger
cd /usr/local
curl -L https://dl.dagger.io/dagger/install.sh | sh
cd -
dagger version
script:
- dagger project update
- |
dagger \
do \
--cache-from type=local,src=${DAGGER_CACHE_PATH} \
--cache-to type=local,mode=max,dest=${DAGGER_CACHE_PATH} \
${ARGS}
build:
extends: [.dagger]
variables:
ARGS: build
If you would like us to document Jenkins next, vote for it here: dagger#1677
If you would like us to document Tekton next, vote for it here: dagger#1677