CI Runs
Trigger GitHub Actions workflows and watch live logs from your iPhone.
Requirements
CI features require a connected GitHub Personal Access Token with repo and workflow scopes. See Onboarding — Step 2 for setup.
The app’s repository must be set in the App Detail view (a “Connect GitHub” row appears if it isn’t).
CI Runs section
The CI Runs section on the App Detail view shows the most recent runs for the app’s linked repository. Each row shows:
- Workflow name
- Branch
- Run status (queued, in progress, success, failure, cancelled)
- Triggered time
Tap any run to open the live monitor for that run.
Live run monitor
The run monitor shows:
- Current overall status (with a live spinner if the run is in progress)
- Each job within the workflow, with its status
- Tap a job to expand and read its step-by-step log output in real time
Mainline polls for updates automatically while the sheet is open.
Triggering a workflow
You’ll usually want to trigger a build after Mainline has changed something the app bundle depends on but didn’t itself commit any source code — for example, after renewing a certificate, rotating a provisioning profile, or updating App Store metadata that doesn’t fork a new build (description, keywords, what’s-new, screenshots).
- In the App Detail view, tap Trigger Build.
- Select the workflow file you want to run.
- Select the branch.
- Tap Trigger. Mainline opens the live run monitor as soon as the new run appears.
Under the hood, Mainline first tries to rerun the most recent completed run on the selected branch — this is the cleanest path because GitHub creates a fresh run record without polluting your git history. If there's no completed run to rerun (e.g. a brand-new repository), Mainline falls back to pushing an empty commit with the message "Test build" — your workflow's existing push trigger then fires the build.
You don't need on: workflow_dispatch in your workflow YAML — Mainline works with any workflow that has ever fired on push.
Trigger Build is for changes Mainline made that live outside your Swift source — secrets, profiles, metadata. If you've edited app code, just push the commit normally; the workflow's push trigger will pick it up.
Cleaning up build artifacts
Mainline includes a Clean Up Builds action that can delete old expired or superseded build records from ASC (not the GitHub run logs). This helps keep the builds list readable when you have many old builds accumulating.