Skip to main content
Xcode Cloud runs a script after a build when the script is named ci_post_xcodebuild.sh in a ci_scripts folder at the root of your repository. mobster ci init writes that script. CI has the parts every host shares.

Set it up

It writes ci_scripts/ci_post_xcodebuild.sh, marked executable, and prints what’s left: add MOBSTER_CI_TOKEN as a secret environment variable of your Xcode Cloud workflow, commit the file and open a pull request.
ci_scripts/ci_post_xcodebuild.sh
The script exits with the checks’ exit code, so a failed check fails the Xcode Cloud build. The target branch comes from CI_PULL_REQUEST_TARGET_BRANCH. Xcode Cloud posts no comment on the pull request through Mobster: the verdict and the report’s location are in the build log, and .mobster/ci/comment.md holds the comment.

Sign in with a CI token

The job signs in with a CI token, not with Mobster for Mac. It is part of your plan, adds no seat and counts no runs. It licenses simulator checks only (mobster ci run and mobster test), it ends after 90 days unless you choose up to 365, and it never licenses an iPhone. Make one with mobster account ci-token create NAME or in the console under Settings › CI tokens, and revoke it from either. Store it as MOBSTER_CI_TOKEN, as a secret of the service. mobster ci doctor in the job checks that it is live and says what to fix if it isn’t.

What this runner doesn’t do

A hosted Mac has no iPhone, so the checks run on simulators. To test on a phone, use a Mac of yours.