Load to install or dispatch a macOS GitHub Actions build, test or simulator screenshot run for an Xcode project.
75%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/xcode-run/SKILL.mdInstall this skill in project scope and consent to its repository effects. kendex runs scripts/install.sh to add templates/mac-run.yml as .github/workflows/mac-run.yml. The installer preserves an existing workflow. Commit the workflow to the default branch so GitHub can dispatch it.
Edit the top-level env values in .github/workflows/mac-run.yml:
| Value | Meaning |
|---|---|
XCODE_SCHEME | A shared Xcode scheme. Replace the App placeholder. |
XCODE_DESTINATION | An Xcode destination available on macos-latest. Replace the example with a simulator supported by the selected Xcode. Screenshots require a concrete simulator, not a generic destination. |
The workflow runs xcodebuild from the repository root. A workspace, multiple projects or a project in a subdirectory needs the corresponding path or working directory in the installed workflow. The screenshot scheme must build one simulator application target. The workflow reads its app path and simulator identifier from xcodebuild -showBuildSettings -json. It reads the bundle identifier from the built app's Info.plist.
workflow_dispatch is the only trigger. Its only input is step:
step | Operation |
|---|---|
build | xcodebuild build. This is the default. |
test | xcodebuild test. The scheme must have a test action. |
screenshots | Boot the selected simulator, build, install and launch the app, then capture screenshots/launch.png. |
gh workflow run mac-run.yml -f step=build
gh workflow run mac-run.yml -f step=test
gh workflow run mac-run.yml -f step=screenshotsScreenshots capture the launch view after a short wait. They do not navigate the app or assert that its UI is ready.
Each run uploads one artifact named mac-run:
logs/<step>.log: combined command output for the selected operation.screenshots/*.png: simulator images from a screenshot run.The upload runs with if: always(). A failing command fails the run and keeps its log for upload. A failed checkout or runner interruption can prevent log creation or upload.
The workflow disables code signing. It does not archive, export or deploy an app.
vanillagreencom/kendex
32d7bc7
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.