DroneCI

Definition

DroneCI is a continuous integration and continuous deployment (CI/CD) platform that automates the software release process. It is container-native, leveraging Docker to run builds in isolated environments, and supports a wide range of plugins for integration with various tools and services. DroneCI is designed to be scalable and flexible, allowing developers to define their pipelines using a simple YAML configuration file.

Secure Settings Example

kind: pipeline
type: docker
name: secure-pipeline

steps:
  - name: build
    image: golang:1.17
    commands:
      - go build
    environment:
      - GOLANG_ENV=production
    secrets: [ docker_username, docker_password ]

volumes:
  - name: cache
    host:
      path: /var/lib/drone/cache

workspace:
  base: /drone
  path: src

trigger:
  event:
    - push
    - pull_request

# Enforce TLS for all communications
server:
  tls:
    enabled: true
    cert: /etc/drone/certs/server.crt
    key: /etc/drone/certs/server.key

Insecure Settings Example

kind: pipeline
type: docker
name: insecure-pipeline

steps:
  - name: build
    image: golang:1.17
    commands:
      - go build
    environment:
      - GOLANG_ENV=development
    secrets: [ docker_username, docker_password ]

volumes:
  - name: cache
    host:
      path: /tmp/drone/cache

workspace:
  base: /drone
  path: src

trigger:
  event:
    - push
    - pull_request

# No TLS configuration, allowing unencrypted communication
server:
  tls:
    enabled: false