Run Your First Pipeline
A pipeline is defined in .runnerhub/runnerhub.yml in your repository root. This file tells RunnerHub what to build and how to build it.
Create Your Pipeline File
Section titled “Create Your Pipeline File”- In your repository, create a directory named
.runnerhubin the root - Inside that directory, create a file named
runnerhub.yml - Add the following minimal pipeline:
name: My First Buildplatform: ios
environment: xcode: "16.4"
triggers: - push
steps: - name: Build run: xcodebuild -scheme MyApp -sdk iphonesimulator buildReplace MyApp with your actual Xcode scheme name.
Understanding Your Pipeline
Section titled “Understanding Your Pipeline”Let’s break down what each line does:
| Field | Meaning |
|---|---|
name | Display name for this pipeline (shown in the dashboard) |
platform | Target platform: ios, macos, android, flutter, or react-native |
triggers | When to run: push (every commit), pull_request, manual, or schedule. You can also filter by branch (see Triggers guide) |
steps | List of commands to execute in order |
Each step has:
- name — Description of what this step does
- run — Shell command to execute
Common Pipeline Examples
Section titled “Common Pipeline Examples”iOS App with Tests
Section titled “iOS App with Tests”name: iOS CIplatform: ios
environment: xcode: "16.4"
triggers: - push - pull_request
steps: - name: Install Dependencies run: pod install - name: Run Tests run: xcodebuild -scheme MyApp -sdk iphonesimulator test - name: Build for Simulator run: xcodebuild -scheme MyApp -sdk iphonesimulator buildmacOS App
Section titled “macOS App”name: macOS Buildplatform: macos
environment: xcode: "16.4"
triggers: - push
steps: - name: Build run: xcodebuild -scheme MyMacApp build - name: Create DMG run: | hdiutil create -volname "MyApp" \ -srcfolder build/Release \ -ov -format UDZO MyApp.dmgWith Environment Variables
Section titled “With Environment Variables”name: Build with Configplatform: ios
environment: xcode: "16.4" variables: TEAM_ID: ABC123DEF456 BUNDLE_ID: com.example.myapp
triggers: - push
steps: - name: Build run: | xcodebuild \ -scheme MyApp \ -sdk iphonesimulator \ TEAM_ID=${TEAM_ID} \ buildWith Fastlane
Section titled “With Fastlane”name: Fastlane Buildplatform: ios
environment: xcode: "16.4"
triggers: - push
steps: - name: Install Fastlane run: gem install fastlane - name: Build and Sign run: fastlane build env: FASTLANE_USER: $APPLE_ID FASTLANE_PASSWORD: $APPLE_PASSWORDPush and Trigger Your First Build
Section titled “Push and Trigger Your First Build”-
Commit and push your changes:
Terminal window git add .runnerhub/runnerhub.ymlgit commit -m "Add RunnerHub pipeline"git push origin main -
Watch the magic happen:
- RunnerHub receives a webhook from GitHub/GitLab/Bitbucket
- A new build is queued
- Your dedicated agent picks it up
- Steps execute one by one
-
View the results:
- Go to app.runnerhub.net
- Click your app
- View the latest build
- Check logs for each step
What Happens During a Build
Section titled “What Happens During a Build”1. Job received and queued ↓2. Dedicated Mac agent assigned ↓3. Repository cloned to agent ↓4. .runnerhub/runnerhub.yml parsed ↓5. Environment variables set up ↓6. Each step runs sequentially ↓7. Logs streamed to dashboard in real-time ↓8. Step succeeds or fails ↓9. If all steps succeed: Build marked SUCCESS ↓10. If any step fails: Build marked FAILED (Remaining steps skipped unless configured to continue)Build Output and Logs
Section titled “Build Output and Logs”During and after your build, you can:
- View live logs — See step output as it executes
- Search logs — Find specific errors or warnings
- Download logs — Save the full log file for debugging
- View artifacts — If your pipeline creates build products
- Check timing — See how long each step took
Debugging a Failed Build
Section titled “Debugging a Failed Build”If your build fails:
- Read the error message — The last few lines of a failing step usually contain the issue
- Check your Xcode scheme — Is it spelled correctly? Does it exist?
- Verify dependencies — If using CocoaPods, did
pod installsucceed? - Review build settings — Are SDK, team ID, or provisioning profile settings correct?
- Test locally — Run the same command on your Mac to see if it’s a RunnerHub-specific issue
- Check the FAQ — See Troubleshooting for common issues
Next Steps
Section titled “Next Steps”Now that your first pipeline is running: