Today Drone, the leading open source cloud native Continuous Integration (CI) and Continuous Delivery (CD) platform, is announcing official support for multiple runtime environments. This is the first of a series of announcements to highlight different runtime environments, starting with the ability to run pipelines directly on the host machine without containers.
Why not containers?
There are many benefits to executing your pipelines inside containers, however, some workloads are poorly suited for container runtimes. The most obvious examples are macOS and iOS projects.
We also recognize thousands of development teams still use Jenkins and Bamboo, which execute pipelines directly on the host. We want to support these teams without forcing migration to containers or kubernetes. If you want to migrate to container-based workloads we can do that too 😃.
Introducing Exec Pipelines
exec pipeline is a new type of pipeline that executes shell commands directly on the host machine without using containers. An exec pipeline is executed by an exec runner (aka agent).
Example Pipeline configuration:
--- kind: pipeline type: exec name: default steps: - name: backend commands: - go build - go test - name: frontend commands: - npm install - npm test
The exec pipeline defines its own yaml syntax. The system uses the
type attribute to identify the type of pipeline and route to the appropriate runner.
--- kind: pipeline type: exec
--- kind: pipeline type: docker
One challenge with installing and maintaining a distributed continuous integration system is debugging. To improve the debugging experience, each runner now provides access to execution history and system logs via the browser.