Skip to content

CI/CD demonstration

Ohara Release Lab

A synthetic mobile release, wired end to end.

This is a public-safe rebuild of the kind of control tower I run for mobile CI/CD: one push fans out across Android and iOS, drains through a shared runner queue, and ends in a signed rollout. Change the controls to see how capacity, caching, and duplicate cancellation move the queue estimate — and how Franky diagnoses a failure while Morgans posts the release note. Every number is generated from a fixed synthetic workload for the fictional Straw Hat Mobile app; nothing here touches a real system.

Rebuilt demonstration · synthetic data · no live Mekari systems.

Ohara
Ohara — the control tower that turns build events into an inspectable queue.
Franky
Franky — the mechanic desk that reads a failed run and names the root cause.
Morgans
Morgans — the news desk that posts a one-line release notification.

Prefer the full story? Read the Ohara case study.

Controls

3 runners
Cache mode
Failure scenario

Simulation updated: Release shipped — 64/64 builds cleared in ~104 min on 3 runners; 8 runner-jobs wasted, 100% success.

Run result

Queue estimate
~104 minTime to drain the queue across all runners.
Completed builds
64Useful builds that finished successfully.
Wasted work
8 jobsRunner time spent on superseded or retried builds.
Success rate
100%Share of attempted useful builds that passed.

Franky · diagnosis

All lanes green — checks, Android, and iOS fan-out cleared with no reruns.

Morgans · notification

Release shipped — 64/64 builds cleared in ~104 min on 3 runners; 8 runner-jobs wasted, 100% success.

Synthetic run manifest

  • Straw Hat Mobile · Shared checks
  • Straw Hat Mobile · Android
  • Straw Hat Mobile · iOS

Pipeline flow

One push fans out across 10 stages, from PR to staged rollout.

  1. 1. Pull request

    A push lands on an open Straw Hat Mobile PR.

  2. 2. Rules layer

    One webhook rules pass decides what to dispatch.

  3. 3. PR checks

    Lint, unit tests, and format gates run first.

  4. 4. Android build

    Gradle assembles the release variant.

  5. 5. Android tests

    Instrumentation suite on emulators.

  6. 6. iOS build

    Xcode archives the app.

  7. 7. iOS tests

    XCTest suite on simulators.

  8. 8. Signing

    Provisioning profile + certificate applied.

  9. 9. Distribution

    Signed artifacts pushed to the beta track.

  10. 10. Rollout

    Staged rollout opens; Morgans posts the note.

Rebuilt demonstration · synthetic data · no live Mekari systems.