CI/CD workflows can be great – they provide a clear and structured framework, but that same benefit also leads to the pain point of it being static and rigid. For teams working with a lot of dynamic inputs, it can be challenging to manage and implement sophisticated workflows. It becomes clunky trying to adjust workflows to the varying conditions and external contexts from outside of the pipeline.
That’s why we’re so excited to announce the release of Dynamic Pipelines in Bitbucket Cloud Premium. Dynamic Pipelines finally makes it possible to build highly intelligent and flexible CI/CD workflows.
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
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
However, Dynamic Pipelines aren’t solely for individual team use. 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.
- Take a look at the product documentation to understand how to setup and use Dynamic Pipelines in Bitbucket Cloud.
- If you’re new to forge apps, take a look at our “Hello world” tutorial app in Bitbucket Cloud.
- Once you’re familiar with Forge, check out our step-by-step tutorial to build your first Dynamic Pipeline application.
- Review the Dynamic Pipelines Forge module reference documentation.
- And be sure to join the Forge for Bitbucket Cloud community group to ask questions, share ideas, and stay informed about all the changes coming in this space.
And finally, take a look at the other new features we’re investing in to make your experience in Bitbucket Cloud more efficient, secure, and pain-free, like custom merge checks and AI-powered pull request descriptions.