Skip to content

ci: consolidate workflows and reduce repeated native builds - #429

Merged
chrispader merged 4 commits into
mainfrom
codex/ci-simplify-workflows
Oct 2, 2026
Merged

chrispader merged 4 commits into
mainfrom
codex/ci-simplify-workflows

Conversation

@chrispader

@chrispader chrispader commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Pull requests currently compile the example apps in separate build and integration workflows, repeating native builds and dependency setup. This consolidates CI and reduces a broad ready PR from eight app builds to four. Both iOS framework configurations remain in the PR matrix, and the Podfile honors the selected mode while retaining static frameworks as the local default.

  • Run affected native integration checks when a PR is ready for review. Draft PRs and pushes to main run the inexpensive checks, and newer commits cancel superseded runs.
  • Run Android minSdk 26 and the older Xcode 26.2 configuration weekly, on a manual full run, and before publishing a release. Routine PRs retain Android minSdk 24, both framework modes on Xcode 26.5, and macOS integration tests.
  • Schedule Dependabot version updates weekly and group compatible minor and patch updates. Existing runtime upgrade restrictions remain in place.
  • Prepare JavaScript dependencies once on Linux. Check CocoaPods lockfiles when native dependencies, Gemfiles, or Podfiles change, including direct lockfile edits. Stale resolutions fail before native compilation and attach refreshed lockfiles for review, replacing the workflow that amended and force-pushed Dependabot commits.
  • Remove duplicate build workflows and large DerivedData caches, share Gradle dependency caches, cap compiler caches at 500 MB, and retain lockfile artifacts for one day.

The iOS jobs start the selected simulator before installing Pods and building the app, then wait for boot completion before Harness starts. Debug logs are enabled for the integration step. The iOS Pods cache remains removed because its recursive cache-key lookup exceeded GitHub's two-minute limit.

The CocoaPods comparison excludes checksums for local pods because their specifications can contain absolute checkout paths. It still checks dependency versions, source locations, the Podfile checksum, and remote pod checksums. The committed iOS and macOS resolutions now match the 10.1.0 package versions.

Reproduction

  1. Open a draft PR with a shared native source change. Only the inexpensive checks should run. Mark it ready for review to start the affected Android, iOS, and macOS integration jobs.
  2. In the iOS jobs, confirm that the static-framework entry configures statically linked frameworks and the no-framework entry uses static libraries.
  3. Open a documentation-only PR. It should build the docs without compiling native apps.
  4. Dispatch CI with the full option enabled to include the secondary Android and Xcode configurations.
  5. Change a dependency without committing its refreshed lockfile. CI should fail before native compilation and attach the prepared lockfiles.

@vercel

vercel Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
react-native-nitro-sqlite Skipped Skipped Oct 2, 2026 5:40am UTC

Request Review

@chrispader
chrispader added this pull request to stack #436 October 2, 2026 05:43
@chrispader
chrispader merged commit 9090047 into main Oct 2, 2026
8 checks passed

This branch was previously deployed

1 inactive deployment
Preview — c852bfa6 Deployed Oct 2, 2026 by vercel[bot]
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