Migrating from Bamboo
Migrating continuous integration tools can be hard, so we've put together a guide to help you transition your Bamboo skills to Buildkite. This guide is applicable to both Bamboo Server and Bamboo Cloud.
On this page:
Plans to Pipelines
Most Bamboo workflows can be easily mapped to Buildkite. Projects and Plans in Bamboo are known as Pipelines in Buildkite. Bamboo Deployments also become Buildkite Pipelines.
Buildkite Pipelines consist of Steps. There are 5 types of Pipeline Steps:
input steps will run in parallel. The
block steps will cause a build to pause and wait for all previous steps to complete; this way your Pipeline becomes a set of stages.
For example, a test and deploy Pipeline might consist of the following steps:
block step will also wait for previous steps to complete but instead of automatically continuing, it will stop the build and require a user to manually "Unblock" the Pipeline by clicking the "Continue" button in the web interface, or use the Unblock Job REST API endpoint. These are the equivalent of a Manual Stage in Bamboo.
Let’s look at an example Bamboo Plan:
We can map this to a Buildkite Pipeline using a combination of
The above Bamboo Plan that we mapped to Buildkite could also be defined using the following
Once your Build Pipelines are set up, you can update step labels to something more fun than plain text 😃 (see our extensive list of supported emojis)
If you have many Pipelines to migrate or manage at once, you can use the Update Pipeline REST API.
Steps and Tasks
command steps are Buildkite's version of the Command Task in Bamboo - they can run any commands you like on your build server, whether it's
rake test or
make. Buildkite doesn't have the concept of Tasks in general, it's up to you to write scripts that perform the same tasks that your Bamboo Jobs have.
For example, say you had the following set of Bamboo Tasks:
This can be rewritten as a single script and then committed to your repository. The Buildkite Agent takes care of checking out the repository for you before each step, so the script would be:
If you'd like to learn more about how to write build scripts, read the Writing Build Scripts guide.
trigger steps can be used to trigger builds in other Pipelines. You can use these to create dependent Pipelines. See the trigger-pipeline example for more information.
Remote and Elastic Agents
The Buildkite Agent replaces your Bamboo Remote Agents. You can install the Buildkite Agent onto any server to run your builds.
In Bamboo, you can target specific agents for your jobs via their Capabilities, in Buildkite you target them using meta-data.
Similar to Elastic Bamboo, Buildkite can also manage a fleet of Agents for you on AWS using our Buildkite AWS Stack. Buildkite doesn’t limit the number agents you can run at any one time, so by using the Buildkite AWS Stack you can auto-scale your build infrastructure, going from 0 to 1000’s of agents within moments.
Authentication and Permissions
Buildkite supports SSO with a variety of different providers, as well as custom SAML setups. See the SSO Support guide for detailed information.
For larger teams, it can be useful to control what users have access to which Pipelines. Organization admins can enable Teams from the Organization Settings.