Skip to content

[CI] Upload application artifacts - #4378

Merged
j-piasecki merged 2 commits into
mainfrom
jpiasecki/upload-app-artifacts
Aug 6, 2026
Merged

[CI] Upload application artifacts#4378
j-piasecki merged 2 commits into
mainfrom
jpiasecki/upload-app-artifacts

Conversation

@j-piasecki

@j-piasecki j-piasecki commented Aug 4, 2026

Copy link
Copy Markdown
Member

Description

Updates the CI:

  • build-android, build-ios are now reusable workflows that upload the app binary once finished
    • the apps are now built in release variant
  • adds android, ios workflows that build expo example (tests can be plugged here)
  • adds android-basic, ios-basic workflows that build basic example (they don't depend on the library JS code)

Test plan

CI run

Copilot AI review requested due to automatic review settings August 4, 2026 12:01
@j-piasecki
j-piasecki requested review from m-bert and removed request for Copilot August 4, 2026 12:01
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a1a6fc2f-9b6a-43cc-bdef-b2317d30ace0

📥 Commits

Reviewing files that changed from the base of the PR and between e58c43a and 56ae3e9.

📒 Files selected for processing (7)
  • .github/workflows/android-basic.yml
  • .github/workflows/android-build.yml
  • .github/workflows/android.yml
  • .github/workflows/ios-basic.yml
  • .github/workflows/ios-build.yml
  • .github/workflows/ios.yml
  • .github/workflows/static-example-apps-checks.yml
🚧 Files skipped from review as they are similar to previous changes (5)
  • .github/workflows/android-basic.yml
  • .github/workflows/ios.yml
  • .github/workflows/static-example-apps-checks.yml
  • .github/workflows/ios-basic.yml
  • .github/workflows/android.yml

📝 Walkthrough

Summary by CodeRabbit

  • CI/CD
    • Added automated Android and iOS validation for relevant pull requests, pushes to main, and manual runs.
    • Builds Release artifacts for both example apps across supported platforms.
    • Added configurable builds for selected apps, architectures, schemes, and toolchain versions.
    • Publishes short-retention APK and iOS application artifacts for testing.
    • Improved workflow efficiency by canceling superseded runs.
  • Bug Fixes
    • Corrected path filtering for Basic Example checks.

Walkthrough

The PR converts Android and iOS build workflows into reusable workflow_call workflows. It adds filtered example-app workflows for pull requests, pushes to main, and manual dispatch. The workflows build and upload Android APKs and iOS simulator archives.

Changes

CI Build Workflow Refactor

Layer / File(s) Summary
Reusable Android build workflow
.github/workflows/android-build.yml
Accepts app, artifact-name, and abi inputs. Builds the selected app in Release mode for the requested ABI and uploads the APK with three-day retention.
Android example-app test workflows
.github/workflows/android.yml, .github/workflows/android-basic.yml, .github/workflows/static-example-apps-checks.yml
Adds filtered pull-request, main push, and manual triggers. The workflows cancel superseded runs, apply repository gating, and call the reusable Android workflow for expo-example and basic-example. The basic-example path filter is corrected.
Reusable iOS build workflow
.github/workflows/ios-build.yml
Accepts app, scheme, artifact-name, and xcode-version inputs. Selects Xcode, builds a Release simulator app with xcodebuild, packages the .app as a tar archive, and uploads it with three-day retention.
iOS example-app test workflows
.github/workflows/ios.yml, .github/workflows/ios-basic.yml
Adds filtered pull-request, main push, and manual triggers. The workflows cancel superseded runs, apply repository gating, and call the reusable iOS workflow for the Expo and BasicExample apps using Xcode 26.4.1.

Sequence Diagram(s)

sequenceDiagram
  participant TriggerWorkflow
  participant ReusableBuildWorkflow
  participant BuildToolchain
  participant ArtifactStorage
  TriggerWorkflow->>ReusableBuildWorkflow: pass app-specific build inputs
  ReusableBuildWorkflow->>BuildToolchain: install dependencies and build release artifact
  BuildToolchain-->>ReusableBuildWorkflow: return APK or packaged iOS app
  ReusableBuildWorkflow->>ArtifactStorage: upload artifact
Loading
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the primary CI change: uploading application artifacts.
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.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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/android.yml:
- Around line 4-16: Update the pull_request paths filter in the Android workflow
to include source changes bundled by the Android build: add app-wide or explicit
source globs for apps/basic-example, apps/expo-example, and
packages/react-native-gesture-handler/src beyond the existing specs path, while
preserving the current workflow, native, and configuration entries.
🪄 Autofix

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: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: fab1a01d-8fbb-4882-9abc-79566e38e9a6

📥 Commits

Reviewing files that changed from the base of the PR and between 35a0aea and e483f5b.

📒 Files selected for processing (4)
  • .github/workflows/android-build.yml
  • .github/workflows/android.yml
  • .github/workflows/ios-build.yml
  • .github/workflows/ios.yml

Comment thread .github/workflows/android.yml

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates CI to build Android/iOS example apps via reusable workflows and upload the resulting application binaries as artifacts, enabling downstream jobs (e.g., future e2e) to reuse the exact built outputs without rebuilding.

Changes:

  • Adds new top-level Android and iOS workflows that run an app build matrix and call reusable build workflows.
  • Refactors Android/iOS build workflows into workflow_call-based reusable workflows that build Release variants and upload artifacts (APK / tarred .app).
  • Adds iOS artifact packaging step that preserves executable permissions by uploading a tarball instead of a zip.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
.github/workflows/ios.yml Adds iOS matrix workflow that calls the reusable iOS build workflow and uploads per-app artifacts.
.github/workflows/ios-build.yml Converts iOS build to a reusable workflow; builds Release simulator app and uploads a tarred .app artifact.
.github/workflows/android.yml Adds Android matrix workflow that calls the reusable Android build workflow and uploads per-app artifacts.
.github/workflows/android-build.yml Converts Android build to a reusable workflow; builds Release APK and uploads it as an artifact.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/ios-build.yml Outdated
Comment thread .github/workflows/ios-build.yml
@j-piasecki
j-piasecki force-pushed the jpiasecki/upload-app-artifacts branch from e483f5b to c03d934 Compare August 5, 2026 08:44
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@j-piasecki
j-piasecki requested a review from m-bert August 5, 2026 08:50
@j-piasecki
j-piasecki force-pushed the jpiasecki/upload-app-artifacts branch from c03d934 to 2ca1cea Compare August 5, 2026 08:52

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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/ios-build.yml:
- Around line 39-44: Update the XCODE_APP availability check in the iOS build
workflow to fail immediately when the requested XCODE_VERSION is not installed.
Keep the diagnostic listing of available Xcode installations, then exit with a
nonzero status instead of selecting a fallback Xcode.app or continuing the
build.
🪄 Autofix

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: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9fb5151b-8bf2-43e3-9afe-1767489a424e

📥 Commits

Reviewing files that changed from the base of the PR and between ae8e704 and c03d934.

📒 Files selected for processing (7)
  • .github/workflows/android-basic.yml
  • .github/workflows/android-build.yml
  • .github/workflows/android.yml
  • .github/workflows/ios-basic.yml
  • .github/workflows/ios-build.yml
  • .github/workflows/ios.yml
  • .github/workflows/static-example-apps-checks.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/android.yml

Comment thread .github/workflows/ios-build.yml Outdated
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

Turn `android-build.yml` and `ios-build.yml` into reusable workflows driven
by new `android.yml` / `ios.yml` entry points, and have them upload the app they
built. Builds now run in Release for the simulator/emulator ABI, so the uploaded
APK / .app bundle is exactly what a later job can install instead of building the
app a second time.
@j-piasecki
j-piasecki force-pushed the jpiasecki/upload-app-artifacts branch from 2ca1cea to ac25885 Compare August 5, 2026 08:54
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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/android-build.yml:
- Around line 42-53: Validate the app input before any install, build, or
artifact steps in .github/workflows/android-build.yml (lines 42-53) and
.github/workflows/ios-build.yml (lines 55-65 and 80), allowing only supported
values such as basic-example and expo-example and rejecting path separators or
all other values. Ensure every subsequent working-directory, Gradle/Xcode path,
and artifact path uses only the validated app value.
🪄 Autofix

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: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f5a61508-5a1a-4e3f-b127-13c53e041acb

📥 Commits

Reviewing files that changed from the base of the PR and between ae8e704 and ac25885.

📒 Files selected for processing (7)
  • .github/workflows/android-basic.yml
  • .github/workflows/android-build.yml
  • .github/workflows/android.yml
  • .github/workflows/ios-basic.yml
  • .github/workflows/ios-build.yml
  • .github/workflows/ios.yml
  • .github/workflows/static-example-apps-checks.yml
🚧 Files skipped from review as they are similar to previous changes (5)
  • .github/workflows/android.yml
  • .github/workflows/android-basic.yml
  • .github/workflows/ios.yml
  • .github/workflows/ios-basic.yml
  • .github/workflows/static-example-apps-checks.yml

Comment thread .github/workflows/android-build.yml
Comment thread .github/workflows/android.yml Outdated
Comment thread .github/workflows/ios.yml Outdated
@j-piasecki
j-piasecki force-pushed the jpiasecki/upload-app-artifacts branch from ac25885 to 56ae3e9 Compare August 6, 2026 08:34
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@j-piasecki
j-piasecki merged commit 10db6d3 into main Aug 6, 2026
5 checks passed
@j-piasecki
j-piasecki deleted the jpiasecki/upload-app-artifacts branch August 6, 2026 08:53
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.

3 participants