GitHub Actions is the recommended way to run mobile tests automatically.
You only need to provide a simulator build and your TesterArmy credentials. TesterArmy handles the cloud simulator setup, app installation, test execution, and run orchestration for you, so you do not need to manage simulators in your CI pipeline.
For Expo EAS workflows, see Expo EAS.
Before you set it up, make sure you have already:
If you want a working reference, see the mobile GitHub Action and the mobile example app.
Add these GitHub secrets to your repository:
You can find webhook details in Group Webhooks.
The most reliable setup is:
.app bundle as a GitHub artifact.tester-army/mobile-github-action to upload the app, trigger the webhook, wait for results, and clean up.Info: No manual upload step in CI
The GitHub Action accepts either a
.appdirectory or an archived app file. If you pass a.appdirectory, the action zips and uploads it for you.
tester-army/mobile-github-action handles the full CI flow for you:
Results are written to the GitHub step summary so you can quickly see pass/fail status, duration, issues, and screenshots.
For CI providers such as Expo EAS, Fastlane, Buildkite, or GitLab CI, use the provider-agnostic CLI flow:
ci calls POST /api/v1/groups/{groupId}/runs, waits for every
returned run to finish, and deletes only the explicit --app-id when cleanup is
enabled and the run did not time out.
The action exposes these outputs:
app_id — the uploaded TesterArmy app IDrun_ids — a JSON array of created run IDsoverall_status — passed, failed, or timed_outYou can use overall_status in later workflow steps if you want custom reporting or notifications.
Make sure you are building for iOS Simulator and passing a .app, .app.zip, or .app.tar.gz file. An .ipa will not work.
Double-check the .app path inside the build job. The most common output path is:
Make sure your TESTERARMY_WEBHOOK_URL points to a group that already contains mobile tests.
Increase timeout_seconds for slower builds or longer test suites. The default is 30 minutes.