Skip to content

Drone CI

Drone CI is a Container-Native Continuous Integration platform that automates testing, building, and deployment workflows^[400-devops__04-CI-CD-Pipelines__drone.md].

Functionality and Features

Drone CI uses pipelines to execute tasks defined within code repositories^[400-devops__04-CI-CD-Pipelines__drone.md]. The standard open-source version of Drone CI historically included a functional limit restricting users to 5,000 builds^[400-devops__04-CI-CD-Pipelines__drone.md].

Compilation and Build Limits

To bypass build restrictions, it is possible to compile the Drone server binary manually using the Go programming language^[400-devops__04-CI-CD-Pipelines__drone.md].

  • Open Source Build: Compiling with specific build tags allows for an open-source build without the standard limit^[400-devops__04-CI-CD-Pipelines__drone.md].
  • Enterprise Build: Alternatively, a build tagged as "nolimit" can be generated for the enterprise version^[400-devops__04-CI-CD-Pipelines__drone.md].

The standard compilation command using the nolimit tag is^[400-devops__04-CI-CD-Pipelines__drone.md]:

go build -tags "nolimit" github.com/drone/drone/cmd/drone-server

Containerized Build

Drone CI can be built and run within a container environment. A common workflow involves using a Dockerfile to compile the server from source, ensuring the resulting environment is free of functional limits^[400-devops__04-CI-CD-Pipelines__drone.md].

This process typically involves: 1. Using a Golang image (e.g., golang:1.18-alpine) to compile the source code^[400-devops__04-CI-CD-Pipelines__drone.md]. 2. Setting build flags such as -tags="nolimit" and -ldflags "-extldflags \"-static\"" during the build process^[400-devops__04-CI-CD-Pipelines__drone.md]. 3. Deploying the compiled binary into a lightweight Alpine Linux container configured for data persistence and networking^[400-devops__04-CI-CD-Pipelines__drone.md].

Sources

^[400-devops__04-CI-CD-Pipelines__drone.md]