Introducing Graph Pipelines: build faster, build smarter

Are you struggling to keep reducing build times as your project grows in complexity? Got particular workflows that take a long time to complete which needlessly hold up other parts of your build whilst you wait for the next stage? The waiting ends now with Graph Pipelines, a new feature which enables you to reduce overall build time by running CI tasks in parallel.

If you’re thinking “Wait a minute, Bitrise already has a pipeline feature, doesn’t it?”,  you’d be right. Build Pipelines launched in 2023, empowering you to reduce build times and it’s been very successful. But–as developers ourselves–we knew we could do better still. Graph Pipelines is a new, improved parallelization option and delivers significant benefits over Build Pipelines, including:

  • Greater build time reductions: up to 50% reductions in overall build time compared to Build Pipelines were seen during beta release
  • Effortless setup and maintenance: fully supported in Bitrise’s no-code Workflow Editor UI or in YAML
  • Easier to pinpoint build issues and bottlenecks: every pipeline run is visualized in a simple diagram, making it easy to see dependencies and bottlenecks

Never tried Bitrise’s existing pipelines feature? You can skip straight to Graph Pipelines and start cutting more time out of your builds than ever before right away. Head over to the Pipelines section in the Workflow Editor to find out how easy it is to get started, or follow the instructions in  this DevCenter guide.

If you already have some pipelines set up in Build Pipelines, these will continue to execute just fine, but you might want to consider updating them to Graph Pipelines to see how much additional speed you can put back into your builds or if it’s possible to set up that tricky workflow sequence that’s been evading you up to now. 

‍

How Graph Pipelines can help you

1. Reduce your build times

The existing Build Pipelines feature is great but there’s a limit to how much time it can save because of the concept of stages. Workflows in the same stage run in parallel, but downstream stages can only begin once the preceding stage has finished.

Let’s take an example of a React project which builds separate iOS and Android apps from the same codebase. In a Build Pipeline (below), testing of the iOS app is delayed while we wait for stage 1 to complete.

In Graph Pipelines, there are no stages, only dependencies between workflows. This means there is no unnecessary waiting time and the iOS app can be released much more quickly.

This is not just a problem for React projects. Graph Pipelines can remove unnecessary waiting time from any Build Pipeline and send your builds hurtling towards the finish line.

‍

2. Test sharding

Testing can become a significant bottleneck in CI/CD as more features are added to your product. You can now easily use a Graph Pipeline to divide a large test suite into smaller groups and run them in parallel across multiple VMs.

For example, a long-running test suite consisting of 200 UI tests can be split into 10 groups of 20 tests, with each group running simultaneously. This dramatically reduces overall testing time and enables developers to get on with creating the next big thing, rather than waiting for tests to complete.

‍

‍

3. Easier to pinpoint build issues and bottlenecks

Have you ever found yourself tangled in the complexities of a failed build, struggling to pinpoint the exact issue? Or perhaps you've just needed a bird's-eye view of your build to understand the dependencies?  The new build page for Graph Pipelines (below) makes it easy to spot opportunities for optimizing build times, as it clearly visualizes all the dependencies in your pipeline and shows how long each workflow took.

If there’s a failure, you have a lot of options which help you recover fast. You can rebuild the whole pipeline, rebuild just the failed workflows, or rebuild the pipeline starting at any node of your choice (whether it failed or not).

There are a bunch of other neat features too, such as flagging a workflow to always run even if its parent fails, or allowing the whole pipeline to abort if a critical workflow fails. These features can help you to be adaptable and efficient in making the best use of your time and your hardware.

How to get started

You can set up a Graph Pipeline in seconds using your existing workflows. Open up the pipelines tab in the Workflow Editor, choose which workflows to combine and simply drag and drop connections between them to define the dependencies. All workflows will run in parallel once their dependent parent workflows are complete.

‍

‍

If you prefer to configure directly in bitrise.yml, use the depends_on keyword to specify the dependencies, like so:

pipelines:
 example:
  workflows:
    A: {}
    B: 
     depends_on:
     - A
     C:
     depends_on:
     - A
    D:
     depends_on:
     - B
     - C

‍

The DevCenter has a full guide on how to configure in YAML or via the UI.

Execute the pipeline just like any other Bitrise build: via a trigger event, manually in Bitrise or via our CLI and API.

Graph Pipelines is the perfect solution for growing teams, scale-ups, and advanced mobile engineering orgs. This feature is available on Teams and Enterprise pricing plans. To check out pricing options and start your 30-day free trial, please visit this page. If you’d like a dedicated tour of how Bitrise can help your teams: book a demo.

Get Started for free

Start building now, choose a plan later.

Sign Up

Get started for free

Start building now, choose a plan later.