Announcing the Drone 1.0 Release Candidate

Today Drone, a cloud native continuous integration (CI) and continuous delivery (CD) platform, is excited to announce its 1.0 release candidate. This much anticipated release of Drone has been a labor of love, and brings the most advanced container-native offering to market. Drone can scale from startup to enterprise, across multiple clouds, operating systems and architectures.

With each release of Drone we get closer to CI/CD perfection. Drone was already the most advanced cloud native CI/CD player out there but today they are now far and away the best offering available. Thomas Boerger, Senior DevOps Engineer at ownCloud

Multi-Machine, Multi-Architecture, Multi-Cloud

With this release we are focused on providing support for multiple operating systems and architectures, including Linux amd64, Linux arm, Linux arm64 and Windows server. The yaml configuration file has been revamped to support multiple platforms:

kind: pipeline

platform:
  arch: arm
  os: linux

steps:
- name: build
  image: golang
  commands:
  - go build
  - go test

The configuration format also supports multi-document yaml configuration files, used to represent complex, multi-machine workflows with fan-in and fan-out capabilities.

kind: pipeline
name: backend

platform:
  arch: arm
  os: linux

steps:
- name: build
  image: golang
  commands:
  - go build
  - go test

---
kind: pipeline
name: frontend

platform:
  arch: amd64
  os: linux

steps:
- name: build
  image: node
  commands:
  - npm install
  - npm test

depends_on:
- backend

Example multi-machine, multi-architecture pipeline. The first pipeline executes on linux arm and the second pipeline executes on amd64.

Jsonnet Configuration

We are excited to provide support for Jsonnet configuration files. Jsonnet is a templating language that includes support for functions, variables, imports and more. Jsonnet can help teams organize and manage complex configurations.

In the below example we can compare a multi-architecture pipeline configured in Jsonnet (left) with a traditional yaml configuration (right).

local Pipeline(arch) = {
  kind: "pipeline",
  name: arch,
  steps: [
    {
      name: "build",
      image: "golang",
      commands: [
        "go build",
        "go test",
      ]
    }
  ]
};

[
  Pipeline("amd64"),
  Pipeline("arm64"),
  Pipeline("arm"),
]
---
kind: pipeline
name: amd64

platform:
  os: linux
  arch: amd64

steps:
- name: build
  image: golang
  commands:
  - go build
  - go test

---
kind: pipeline
name: arm64

platform:
  os: linux
  arch: amd64

steps:
- name: build
  image: golang
  commands:
  - go build
  - go test

---
kind: pipeline
name: arm

platform:
  os: linux
  arch: amd64

steps:
- name: build
  image: golang
  commands:
  - go build
  - go test

...

Revamped User Interface

We are incredibly excited to work with the team at PixelPoint to revamp the Drone user interface. The release candidate includes a shapshot of our latest front-end development efforts and we are eager to hear your feedback.

drone_1_screenshot

Try it Today

This is just a small preview of all the great features and improvements we are bringing to Drone 1.0. The Drone 1.0 release candidate is available here for testing, with the final release available in the near future. We are excited to share our work with the community and are eager to hear your feedback.

With 16,000 github stars and a robust community, Drone has been at the forefront of container-driven workflows. Drone is empowering development teams to deliver software at unprecedented rates. Follow us on Twitter @droneio or on Github for news and product updates.