bloomBUILD•SHIP•BLOOM
.md
Build & Release Pipeline

Build & Release Pipeline

Compile in the cloud, gate releases behind approval, and deploy to every distribution target from one pipeline.

Open Cloud Dashboard

Remote Build Farm

Every build runs on Bloom's managed workers—no local iOS/Android toolchain required. Trigger from the CLI or the "New Build" dialog in the dashboard's Builds tab:

Terminal
bash
# Trigger a cloud build for a platform + environment
bloom cloud build --platform ios --environment production
bloom cloud build --platform android --environment staging

# Watch logs live
bloom cloud logs --build <build-id> --follow
01

Queued

Build request accepted, waiting for a build worker.

02

Staging

Source checked out at the target commit, dependencies resolved.

03

Compiling

Platform-specific AOT compilation with the pinned Flutter/Dart/Bloom SDK versions.

04

Artifact Upload

Signed .ipa/.aab/web bundle uploaded and attached to the build record.

Each build has its own deep-linkable detail page with a live stage timeline, streaming logs, and artifact downloads—reachable from any build row's "View details" action.

Releases & Approvals

A release wraps a completed build with a changelog and a rollout percentage. Releases below pending_approval can't ship until a Release Manager or above approves them:

Terminal
bash
# Create a release from a completed build
bloom cloud release create --build <build-id> --changelog "Fix checkout tax calculation"

# Approve (Release Manager+ only)
bloom cloud release approve --release <release-id>

Every release can be rolled back to any prior version in one click, and two releases can be diffed side-by-side to see exactly what changed before approving.

Deployments

A deployment ships a specific release to a specific target. Status tracking is platform-aware—TestFlight processing and App Store review states surface distinctly from a generic "in progress" spinner:

TestFlight

Internal/external tester distribution via App Store Connect.

App Store

Public release, subject to Apple review.

Google Play (Internal/Closed)

Staged Android tracks before production rollout.

Web / Preview

Instant preview URLs and production Flutter Web hosting.

Environments

Environments (Production, Staging, Preview, Dev by default) each pin their own Flutter/Dart/Bloom SDK versions, build flavor, environment variables, and feature flags—builds and releases are always scoped to exactly one.

An environment can't be deleted while it still has builds attached—the dashboard disables the delete action with an explanation rather than allowing a silent orphan.