test: validate per-app CI matrix pipeline#4
Closed
msluszniak wants to merge 16 commits into
Closed
Conversation
Replaces the LLM-only Android/iOS build workflows with one matrix-based workflow per platform that gates each app's build on `dorny/paths-filter`. Adds coverage for computer-vision, speech, text-embeddings, and bare-rn demos, plus a Jest smoke test for bare-rn. Skips builds on draft PRs and fires on ready_for_review so flipping a draft to ready triggers CI. Closes software-mansion#963.
… hash - bundle job now runs `yarn prepare` before bundling bare-rn so react-native-executorch-bare-resource-fetcher's lib/ exists for metro (Expo apps don't need it; expo export resolves workspace deps directly). - iOS composite caches CocoaPods recipes + installed Pods keyed by Podfile.lock, saving ~3-5 min per cell on cache hits. - compute-app-hash.js excludes .github/workflows/build-apps.yml from the content hash. Workflow edits still trigger the matrix, but each cell hits its existing marker and skips. Build-behavior workflow edits (with:, runs-on:, env:) need a manual cache clear via the UI.
Pull_request runs scope caches to refs/pull/N/merge, which gets dereferenced when the PR is closed. Switch to a push-driven trigger so caches save against refs/heads/<branch> and survive close/reopen. - push: branches ['**'] covers every commit to every branch. - pull_request: types narrowed to [opened, reopened, ready_for_review] — the events with no corresponding push. - pull_request: synchronize removed (push already covers every commit). - Workflow-level concurrency keyed by event_name + branch so push and pull_request runs don't cancel each other. - Draft status resolved via `gh pr list` for push events, preserving the no-CI-on-drafts rule from software-mansion#963 even without a pull_request payload.
… wipe them" This reverts commit 0dd4cba.
Two issues compounded into bare-rn rebuilding on a CV-only push: 1. dorny defaulted to comparing against the PR base, so each push re-evaluated the cumulative PR diff and pulled every app whose filter ever matched into the matrix. Setting `base: event.before || pull_request.base.sha` restricts the diff to just the current push (with PR-base fallback for opened / reopened / ready_for_review). 2. The Gradle (~3 GB) and CocoaPods (~500 MB × 5 iOS apps) caches saved during a single run, plus setup-java's redundant gradle cache, pushed the repo over GitHub's 10 GB cache quota and evicted the tiny (~250 B) build markers under LRU. Cells appeared in the matrix on subsequent pushes (legitimately, per PR-base diff) but missed the cache and rebuilt. Dropping these peer caches so markers survive — markers gate entire build cells, which is worth more than the 3-10 min those caches saved on warm-up.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Test PR for validating the per-app CI matrix introduced in software-mansion#1112.
Mirrors the upstream branch
@ms/ci-coverage. Used to exercise:base: github.event.before(single-app push fires only that app)Not for merge.