We are excited to announce that Bitbucket Pipelines now supports Linux Docker ARM self-hosted runners. The new runner type supports running pipelines on your own ARM infrastructure, allowing you to build and test your code on a wider range of platforms.
Getting Started
To get started, go to your repository or workspace settings, and select the Runners tab in the left navigation menu. Select Linux Docker (arm64)
from the System and Architecture
dropdown and specify a runner name and any additional labels.
Configuring your bitbucket-pipelines.yml
To use the ARM runner in a pipeline, configure your step to have a runs-on
section with both the self.hosted
and linux.arm64
labels in addition to any other labels needed to select your runner. Note that the build image and any service images used by your pipeline must support ARM. The most recent atlassian/default-image:4
has been built to support both ARM- and Intel-based pipelines.
image: atlassian/default-image:4
pipelines:
default:
- parallel:
- step:
name: Build and Test
runs-on:
- self.hosted
- linux.arm64
script:
- npm run build
- npm run test
- step:
name: Code linting
runs-on:
- self.hosted
- linux.arm64
script:
- npm run lint
Checking if an image is ARM compatible
To debug suspected platform-related problems with the images used by your pipeline, there are a few checks you can run against the image to check that ARM is supported:
- Check the logs inside of
Build Setup
and for any service containers used by your pipeline – look for warnings about any potential platform incompatibilities. - Check the documentation provided by the image vendor to see if ARM is supported. In some instances, the image may need to use a specific tag for ARM.
- Run
docker manifest inspect <image>:<tag>
on the image, looking for a matching entry for your OS and architecture. - Check the platform when running
docker inspect <image>:<tag>
, and confirm that the OS and architecture match your system.
Using Pipes
If you are using any pipes in your pipeline and running on ARM, these pipes must be built to work on ARM. If there are specific pipes you want to see supported on ARM, please reach out to us by raising a question in the Atlassian Community.
Technical documentation
If you need more help setting up and using runners, please review our technical documentation.