01
Before deployment: define the boundary between Codex and Xcode CI
Codex GitHub Action can participate in a GitHub Actions workflow, including on a macOS runner where the project’s workflow requires one. That does not make the agent’s response a build result. Codex performs an agent task; xcodebuild builds or tests an Apple platform project; GitHub Actions orchestrates jobs, permissions, and handoffs. Keep those outcomes distinct in your workflow and its audit trail.
Start by deciding what Codex is allowed to do. A read-only review needs access to the relevant source but should not need permission to publish changes. A workspace-modification task needs a reviewable way to pass its diff onward. A task connected to publishing has a different risk profile: it may touch signing material, release credentials, or other privileged resources. Treat that as a separate release-design decision, not a default extension of agent access.
| Workflow design |
Where Codex runs |
Where Xcode runs |
Fit and principal trade-off |
| Agent review only |
An isolated GitHub Actions job |
No Mac build in this workflow |
High fit for review-only tasks; it does not establish that the app builds or tests pass. |
| Agent job followed by Mac job |
An agent job with limited repository access |
A separate Mac job receives reviewed source or a controlled artifact |
High fit for a clear handoff; requires a deliberate diff and artifact review process. |
| Agent and Xcode in one Mac job |
Same job and execution host |
Same host as the agent |
Conditional fit for trusted, low-risk experiments; a shared host and workspace make the security boundary harder to enforce. |
| Separate agent and release jobs |
An isolated agent job |
A protected Mac release job |
High fit when signing or publishing is involved; release credentials remain outside the agent job. |
Our qualitative fit ratings describe workflow boundaries, not measured performance. The choice depends on trigger trust, the changes Codex can make, and whether the Mac runner can be safely isolated and restored.
There are also practical constraints beyond the workflow file. A Mac runner must have the project’s required Xcode and simulator setup; adding an agent Action does not itself prove that the right toolchain is installed. Self-hosted runners retain a security and cleanup burden: a job can leave files or processes behind, and a machine reused for less-trusted work can carry state into a later job. Finally, separating jobs introduces a handoff that needs explicit permissions and review. These are operational costs, not details to dismiss as configuration overhead.
Can Codex GitHub Action run on a macOS Runner?
Yes, according to the current OpenAI Action README, which documents GitHub Actions use and security policy support for macOS and Linux. Check the README and Action definition for the current inputs and behavior before copying a workflow example: support details and defaults can change. Running on macOS makes the Action part of a Mac-hosted workflow; it does not certify that your project has the correct Xcode version, scheme, destination, or signing setup.
A GitHub-hosted macOS Runner and a self-hosted Mac Runner also have different operational boundaries. If your design uses a self-hosted host, review GitHub’s self-hosted Runner documentation before allowing it to process untrusted workflow code. A clean-looking job log is not evidence that the underlying machine has been reset or is safe to reuse.