Skip to content

mozilla-platform-ops/BuildWatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BuildWatch

A native iOS app for Mozilla engineers to monitor Firefox CI build status from their phone. Built for sheriffs, on-call engineers, and developers who want real-time build feedback without opening a laptop.

Platform Swift License

Try Pushes Push Detail Settings

Try Pushes  ·  Push Detail  ·  Settings


Features

Dashboard

  • Live push list across mozilla-central, autoland, beta, release, and esr128
  • Per-push platform status dots — color coded by worst result (green / red / orange / blue)
  • Failure count badge and animated spinner for in-progress builds
  • Tree status banner when the tree is closed or restricted
  • Pull-to-refresh with last-updated timestamp
  • Quick project switcher in the nav bar

Push Detail

  • Full commit messages with clickable bug number links
  • Jobs grouped by platform (linux64, win64, macos, android-arm64, …)
  • Filter by All / Failures / Running
  • Swipe left on any job to retrigger it
  • Retrigger All Failed with a single tap
  • Failure Summary — groups failed jobs by test name, shows affected job counts and raw error lines from TreeHerder log data
  • All external links (TreeHerder, Taskcluster, Bugzilla) open in an in-app browser — tap Done to return instantly without leaving the app
  • Duration shown for every completed job

My Pushes

  • Filtered view of your own pushes via the TreeHerder ?author= API
  • Set your Mozilla email once in Settings

Settings

  • LDAP / Mozilla email for the My Pushes tab
  • Bugzilla API key for filing bugs directly from a failure
  • Push notification opt-in (build failures, tree closures)
  • Default repository preference
  • Tier 2 job visibility toggle

Data Sources

Source Used For
TreeHerder Push list, job results, retrigger actions, text log errors
TreeStatus Tree open / closed / restricted status
Taskcluster Task deep links
Bugzilla Bug links from commit messages, filing new bugs

Architecture

BuildWatch/
├── Models/
│   ├── Push.swift          — Push + PushRevision
│   ├── Job.swift           — Job, JobResult, JobState, PlatformGroup
│   ├── TreeStatus.swift    — Tree open/closed state
│   └── FailureLine.swift   — TextLogError, FailureGroup
├── Services/
│   ├── TreeHerderService.swift   — All TreeHerder + TreeStatus API calls
│   └── BugzillaService.swift     — Bug filing
├── ViewModels/
│   └── DashboardViewModel.swift  — @Observable state, drives all three tabs
└── Views/
    ├── DashboardView.swift       — Push list
    ├── PushDetailView.swift      — Jobs, quick actions
    ├── FailureSummaryView.swift  — Grouped failure analysis sheet
    ├── MyPushesView.swift        — Filtered to your pushes
    └── SettingsView.swift        — Preferences

State is managed with Swift's @Observable macro. All networking uses async/await with URLSession. The TreeHerder jobs response uses a compact [[Any]] format that's parsed with JSONSerialization and an index map built from the job_property_names field.


Requirements

  • Xcode 26+
  • iOS 26+ device or simulator
  • Mozilla network access (or VPN) is not required — all APIs are public

Building

  1. Clone the repo
  2. Open BuildWatch.xcodeproj
  3. Select your team in Signing & Capabilities
  4. Run on device or simulator

No external dependencies. No package manager.


Optional Setup

My Pushes tab — add your @mozilla.com email in Settings → Profile.

Bug filing — generate a Bugzilla API key at bugzilla.mozilla.org → Preferences → API Keys and paste it in Settings → Bugzilla Integration.

Retrigger / Acknowledge — these actions call authenticated TreeHerder endpoints. Full support requires a Taskcluster OIDC session (coming soon).


Roadmap

  • Push notifications for build failures via FCM
  • Acknowledge / classify failures
  • Backout via Lando API
  • File bug pre-filled with failure details
  • WebSocket live updates from TreeHerder
  • Intermittent failure history
  • Sheriff mode — tree management quick actions
  • Apple Watch complication for tree status

Contributing

PRs welcome. File issues at bugzilla.mozilla.org under Firefox :: Developer Tools.


Built by @rcurranmoz · Maintained at mozilla-platform-ops/BuildWatch · Powered by TreeHerder

About

Native iOS app for Mozilla engineers to monitor Firefox CI build status

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages