Skip to content

ci: add GitHub Actions validation#1

Merged
DjDeveloperr merged 1 commit into
mainfrom
codex/add-github-actions-ci
May 27, 2026
Merged

ci: add GitHub Actions validation#1
DjDeveloperr merged 1 commit into
mainfrom
codex/add-github-actions-ci

Conversation

@DjDeveloperr
Copy link
Copy Markdown
Owner

@DjDeveloperr DjDeveloperr commented May 27, 2026

Summary

  • add GitHub Actions CI for pull requests and main
  • run TypeScript validation with npm test
  • install pods and build the iOS app for a concrete simulator destination

Verification

  • npm test
  • npx pod-install ios
  • npm run build:ios:ci

Summary by CodeRabbit

  • Chores
    • Added a CI workflow to run automated checks on pushes, pull requests, and manual dispatch, with concurrency and reduced permissions.
    • Added npm scripts for type checking, running tests, and invoking the CI iOS build.
    • Enabled automated iOS builds in CI with automated Xcode/simulator selection, platform-aware build options, and macOS runner support.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 27, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a7ee0a6f-2772-4b8f-a4fb-d19121815c6f

📥 Commits

Reviewing files that changed from the base of the PR and between a209558 and eb8bd62.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • package.json
  • scripts/ci-build-ios.js
🚧 Files skipped from review as they are similar to previous changes (3)
  • package.json
  • .github/workflows/ci.yml
  • scripts/ci-build-ios.js

📝 Walkthrough

Walkthrough

This PR adds a GitHub Actions CI workflow with a Linux test job and a macOS ios-build job, new npm scripts (typecheck, test, build:ios:ci), and a Node.js script that selects an iPhone simulator and runs xcodebuild with appropriate settings.

Changes

CI and iOS Build Automation

Layer / File(s) Summary
Workflow foundation and test job
.github/workflows/ci.yml
GitHub Actions workflow triggers on pull requests, pushes to main, and manual dispatch. Configures concurrency, minimal permissions, and a test job that runs on ubuntu-latest with Node.js 24, npm caching, dependency installation, and npm test execution within a 15-minute timeout.
iOS build job wiring and Xcode selection
.github/workflows/ci.yml
Adds ios-build job that depends on test, runs on macos-15 with a 60-minute timeout, sets RCT_NO_LAUNCH_PACKAGER, optionally switches to Xcode 26.3 if available, runs npm ci, npx expo prebuild --platform ios --clean, npx pod-install ios, and npm run build:ios:ci.
npm test and typecheck scripts
package.json
Adds three npm scripts: typecheck (TypeScript noEmit), test (delegates to typecheck), and build:ios:ci (runs node scripts/ci-build-ios.js).
iOS simulator selection and build logic
scripts/ci-build-ios.js
Executable Node.js script reads workspace/scheme/config env vars, discovers and ranks available iPhone simulators via xcrun simctl, optionally uses IOS_SIMULATOR_UDID, logs selection, constructs xcodebuild args (disable code signing, active arch, arm64 override on Apple Silicon), and runs xcodebuild synchronously inheriting stdio.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 In tunnels of code I hop with cheer,
I stitch a workflow, swift and clear,
Tests on Linux, then macOS wakes,
I choose the simulator that best will take,
And watch xcodebuild dance for CI’s sake.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'ci: add GitHub Actions validation' accurately reflects the main change: adding GitHub Actions CI workflow configuration with test and iOS build jobs.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/add-github-actions-ci

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


Comment @coderabbitai help to get the list of available commands and usage tips.

@DjDeveloperr DjDeveloperr force-pushed the codex/add-github-actions-ci branch from 17c3b5b to afe5ed6 Compare May 27, 2026 16:54
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Around line 27-28: The checkout steps currently use actions/checkout@v4
without disabling credential persistence; update both occurrences of the
actions/checkout@v4 steps to include a with: persist-credentials: false key so
later steps do not inherit git credentials, making sure the added key is
correctly indented under the checkout step in the CI workflow.
- Around line 28-31: Update the workflow to pin mutable action tags to immutable
commit SHAs for each uses: reference (e.g., replace actions/checkout@v4 and
actions/setup-node@v4 with their respective full commit SHAs) and for the
actions/checkout step(s) set persist-credentials: false by adding a with: block
containing persist-credentials: false so credentials are not left in git config;
ensure you update every checkout and setup-node occurrence in the file
(references: actions/checkout, actions/setup-node).

In `@scripts/ci-build-ios.js`:
- Around line 134-139: The current exit logic uses process.exit(result.status ||
0) which treats a null result.status (child terminated by signal) as success;
update the exit handling after the spawnSync call to check result.signal first
and exit non-zero (e.g., process.exit(1)) when result.signal is set, then use
process.exit(result.status !== null ? result.status : 1) otherwise; keep the
existing result.error branch intact. Ensure you reference the same result
variable from the spawnSync call when implementing this change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 21e89216-3180-4c49-8c37-89a36ad7e5af

📥 Commits

Reviewing files that changed from the base of the PR and between 48cb2fa and 17c3b5b.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • package.json
  • scripts/ci-build-ios.js

Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread scripts/ci-build-ios.js Outdated
@DjDeveloperr DjDeveloperr force-pushed the codex/add-github-actions-ci branch from afe5ed6 to a209558 Compare May 27, 2026 17:18
@DjDeveloperr DjDeveloperr force-pushed the codex/add-github-actions-ci branch from a209558 to eb8bd62 Compare May 27, 2026 17:24
@DjDeveloperr DjDeveloperr merged commit 9996335 into main May 27, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant