CI/CD Features

Build agents that give you full control

Run the open-source buildkite-agent on your own infrastructure for maximum speed, control, and security. The agent checks out your source code, executes custom hooks and overrides, and then runs your build jobs. Your source code never leaves your infrastructure 🔒

You can install the agent using one of our packages and binaries for almost every platform and architecture, including Ubuntu, Debian, Mac, Windows, Docker, and more.

$ buildkite-agent start
A build pipeline running a step

Tools to scale across hundreds or
thousands of agents

The agent’s artifact and meta-data storage allows for share-nothing, state-free build jobs that can be easily distributed and scaled across any number of agents ⚡️

Run as many build agents as you need (up to 10,000 connected per account), without breaking a sweat.

- label: "Build"
command: make
artifact_paths: "dist/*"

- wait

- label: "Test %n"
command: make test
parallelism: 300
Many test steps running in parallel

The open-source Elastic CI Stack for AWS gives you an easy-to-maintain, elastically scaling CI stack in your own AWS account. Or if you prefer to roll your own, you can use the tools you’re already familiar with in your production environments (such as Packer and Terraform) 🛠

The 'Launch Stack' button of the Elastic CI Stack for AWS

The buildkite-agent-metrics collector is a Golang binary and Lambda function that sends aggregated build activity to CloudWatch or StatsD. Scale up your testing infrastructure during busy times, and scale down to reduce costs during quiet times 📉

CloudWatch metrics showing busy, idle and total agents

Pipelines that can automate more than just your tests

Automate complicated delivery pipelines or ops tasks with custom fields, and unblock them via the web or the API with a full log of who did what when 📃

- block: ":rocket: Release"
fields:
- text: "Code Name"
key: "release-name"
A 'Release' manual unblock step

Dynamic pipeline definitions allow you to generate pipelines with your own code, and even modify running pipelines. Build your own abstractions to automate common workflows and tools within your team 📦

$ cat ./generate-pipeline.sh
#!/bin/bash
echo "steps:"
for i in $(seq 1 100); do
echo " - command: echo $i"
done

$ buildkite-agent pipeline upload <(./generate-pipeline.sh)

Buildkite’s web interface allows you to monitor, control and visualize all your pipelines in one place, while still having quick access to your own builds.

You can also create teams, ensuring only the people with the correct permissions have access to sensitive pipelines 🕶

The pipelines list showing pipeline build statistics

Treat infrastructure as code with scheduled builds, separate agent queues, concurrency controls, and dynamic pipeline logic. All using your existing ops scripts and infrastructure 📝

Clicking 'Apply to Production' Terraform unblock step

Full control of your environment allows you take advantage of the latest version of tools, so you can use Docker, SDK betas and pre-release operating systems without any constraints 📱

#!/bin/bash

# Pull layer cache
docker pull app:latest

# Build
docker build --cache-from app:latest -t "app:$BUILDKITE_COMMIT" .

# Push to image repo
docker push "app:$BUILDKITE_COMMIT"
docker push app:latest

Build logs that are
beautiful and powerful

Embeddable image artifacts, with inline gif support, means that you can show failures visually, and link directly to the failing piece of code 💖

An embedded image artifact in log output

Add your own custom build annotations using Markdown. Link to deployments, summarise test failures, or report on your own flakey test analysis 🚩

A build annotation at the top of a build showing a test failure summary

Group log output, add your own custom emojis, and get detailed timing information ⏱

Console output of jobs with groups and timings

Customize any part of the build workflow

The buildkite-agent exposes customizable agent hooks, allowing you to add your own high performing checkout logic, integrate with a secret store, expose environment variables, or add your own security checks 🔐

# Check permissions
if [[ ! $BUILDKITE_REPOSITORY == *"github.com" ]]; then
echo "Repository not allowed"
exit 1
fi


# Mount in our source cache
ln -s /mnt/src-cache ./src

Webhooks, REST APIs and GraphQL APIs allow you to create your own tools and workflows, to fit your team’s needs 🎛

A GraphQL query and response

Other Features

Unlimited Language Support

It’s your infrastructure, so you’re free to run any language, toolchain or version you need, including Ruby, Xcode, Go, Node, Python, Java, Haskell, .NET or pre-release tools.

Cloud and Environment Agnostic

The agent is an open-source Golang binary, and runs on a wide variety of operating systems and architectures including Linux, OSX, and Windows. Or use our optimized Docker image to run agent clusters on Kubernetes, ECS or any container platform.

Source Control Integration

Integration with GitHub and GitHub Enterprise pull requests, GitLab, BitBucket, Phabricator, and more. Or use our APIs to create a custom SCM integration.

No Source Code Access

Buildkite never sees your source code or any secret keys. If you connect Buildkite with your GitHub or Bitbucket account we never request permission to read your code.

Chat Support

Slack and HipChat integration lets everyone monitor their build pipelines. And use the REST and GraphQL APIs to easily create commands, or trigger and unblock pipelines straight from chat.

Agent Plugins

Use agent plugins for common tools and workflows, such as Docker and Docker Compose. Or DRY your own workflows in private plugins with only a few lines of bash.

Docker Pipelines

Build, test and deploy Docker-based projects with the agent’s built in Docker Compose support, or your own build scripts for maximum control.

GraphQL APIs

Create your own dashboard, cli tools, chatops bots, and other integrations using the exact same GraphQL API that powers the buildkite.com web interface.

Access Control and SSO

Manage teams to limit who can see and perform actions on pipelines. Login via SSO is supported for Google, Okta, OneLogin, ADFS (SAML) and custom SAML providers.

Friendly, Human Support

Consider us your outsourced build support team, with a solid platform and great support. Our support engineers can help debug problems and answer any questions.

Screencasts

See how Buildkite works in production,
with our series of short videos…

Screenshot of the step types screencastView the screencasts
Two people launching a pod

Sign Up

Sign up for free, and
connect your first agent.

Sign up →Schedule a demo