Announcing Exec Pipelines

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

An 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.

Defines an exec pipeline:

---
kind: pipeline
type: exec

Defines a docker pipeline:

---
kind: pipeline
type: docker

Improved Debugging

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.

runner logs

runner logs per-pipeline

Final Words

Give Drone a try today. You can get up and running in less than 10 minutes. If you have any questions or need assistance please get in touch.