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.

Announcing support for Linux ARM Runners in Bitbucket Pipelines