Introducing Dynamic Pipelines: A new standard in CI/CD flexibility

Bitbucket cloud is on a mission to become the world’s most extensible cloud SCM and CI/CD product, and we're thrilled to be able to share the next stage of that journey.

Upcoming Webinar: Join us for a live-webinar on June 11/12th, 2024 for a tutorial on how to build dynamic pipelines to optimize test selection based on code context.

Today, we're announcing the release of a new capability in Bitbucket Cloud called Dynamic Pipelines. This enhancement augments the core Bitbucket Pipelines functionality, adding highly intelligent and flexible CI/CD workflows that benefit individual teams as well as entire organisations.

Note: Dynamic Pipelines is a Premium Feature and is available for all Bitbucket Cloud premium workspaces as of today.

Traditionally, pipeline workflows, defined in YAML files, have been quite static and rigid. This can make it challenging to manage and implement sophisticated workflows that need to dynamically change based on varying conditions, external contexts, or inputs from outside the pipeline itself. Dynamic Pipelines represent a significant advancement, offering unprecedented levels of flexibility in managing pipeline workflows at all levels.

Orchestrating CI/CD across your entire organisation

Dynamic Pipelines heralds a new era in organisational CI/CD orchestration, setting a new, market-leading standard. With this capability, organisations can centrally oversee CI/CD workflows across their entire workspaces via logic stored in-code. This promotes standardisation and reusability of CI/CD workflows, enhances process management and compliance enforcement, and enables powerful new automation options. This unified approach simplifies the management of complex CI/CD architectures across entire organisations, making it an invaluable tool for centralised platform-style teams.

How Dynamic Pipelines work

Repository-level Dynamic Pipelines

Dynamic Pipelines operate by utilising Atlassian's Forge extensibility platform to allow users to create serverless functions directly integrated into pipeline workflows. As a pipeline prepares to execute, these user-defined functions receive the pipeline's configuration and can alter this configuration in real-time. This modified workflow is then sent back to the Pipelines platform for execution. This functionality not only means greater workflow adaptability, but also enhances the opportunities for customisation thanks to its implementation through familiar coding processes and tools.

What can you do with Dynamic Pipelines?

Dynamic Pipelines are extremely flexible and offer a broad range of capabilities, far more than we could list here (or that we could even define ourselves).

However, the list below provides a high-level overview of just some ways Dynamic Pipelines are already being utilised by Atlassian teams today:

  • Utilising environment, repository, or workspace variables to define docker image names for use in CI/CD workflows.
  • Ensuring all builds run within an organisation are executed using docker images from a pre-approved list.
  • Ensuring all builds within an organisation are executed on self-hosted runners.
  • Implementing selective test execution in large monorepos based on pull request change-sets.
  • Creating standardised and reusable 'blocks' of CI/CD workflows that can be defined & shared by platform engineering teams, and then consumed by multiple engineering teams within an organisation.
  • Dynamically assigning jobs to runner agents tagged with certain cost-centre codes to automate cloud infrastructure cost attribution.
  • Building an entirely customised bitbucket-pipelines.yml syntax that can be used to auto-generate pipeline workflows at runtime from a set of tags and labels.
    • Stay-tuned for a case-study we plan to publish going into detail on exactly how this was built!

Dynamic Pipelines for individual teams

Dynamic Pipelines are extremely powerful at the level of individual teams. By configuring a Dynamic Pipeline at the repository level, teams gain the ability to adapt their CI/CD workflows with greater intelligence and flexibility. The use of Forge as an underlying platform allows teams to reuse, share, and collaborate on Dynamic Pipeline logic the same way they would with existing software projects they work on every day. Additionally, with Forge Remote, teams can execute Dynamic Pipeline apps on their own infrastructure, using their preferred coding languages and frameworks. These capabilities empowers teams to start quickly and efficiently, without the need to learn new tools, enhancing productivity and fostering innovation.

“Whole-of-business” CI/CD orchestration with workspace-level Dynamic Pipelines

Workspace-level Dynamic Pipelines

Dynamic Pipelines aren’t solely for individual team use. Instead, they extend to entire organisations through the use of workspace-level Dynamic Pipelines. This feature allows central platform-engineering teams within a workspace to create an "umbrella" Dynamic Pipeline app that operates across every pipeline execution within that workspace.

Using this app, they can manage, coordinate, and oversee CI/CD workflows for the whole organisation from a centralised and easy-to-manage location. This integration works seamlessly with existing YAML-based repo-level workflows and repo-level Dynamic Pipelines, augmenting those existing workflows without replacing them. Teams retain control over their workflow inputs and initial modifications, with additional validations applied at the workspace level before pipeline execution.

How to get started today

Getting started is super simple, you can have your first Forge app up and running in less than thirty minutes.

And finally, take a look at the other areas that we're enhancing through extensibility in Bitbucket Cloud like custom merge checks, as we continue our mission to become the world’s most extensible cloud SCM and CI/CD product.