From ed209519208ee7b948dfd6b909b5267d22c4be10 Mon Sep 17 00:00:00 2001 From: Marcin Szalski Date: Wed, 13 May 2026 16:57:46 +0200 Subject: [PATCH 1/2] chore(ci): optimize ci only to be invoked on path changes --- .github/workflows/ci.yml | 78 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 74 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 95e3bb7e..a86ad282 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,9 +11,43 @@ concurrency: cancel-in-progress: true jobs: + filter: + name: Detect changed paths + runs-on: ubuntu-latest + outputs: + packages: ${{ steps.filter.outputs.packages }} + rnapp: ${{ steps.filter.outputs.rnapp }} + expo54: ${{ steps.filter.outputs.expo54 }} + expo55: ${{ steps.filter.outputs.expo55 }} + androidapp: ${{ steps.filter.outputs.androidapp }} + appleapp: ${{ steps.filter.outputs.appleapp }} + steps: + - name: Checkout + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 + + - name: Filter paths + uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + packages: + - 'packages/**' + rnapp: + - 'apps/RNApp/**' + expo54: + - 'apps/ExpoApp54/**' + expo55: + - 'apps/ExpoApp55/**' + androidapp: + - 'apps/AndroidApp/**' + appleapp: + - 'apps/AppleApp/**' + check-changeset: name: Check changeset runs-on: ubuntu-latest + needs: filter + if: needs.filter.outputs.packages == 'true' steps: - name: Checkout repository uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 @@ -30,6 +64,8 @@ jobs: build-lint: name: Build, lint, typecheck & Jest runs-on: ubuntu-latest + needs: filter + if: needs.filter.outputs.packages == 'true' steps: - name: Checkout uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 @@ -56,7 +92,16 @@ jobs: android-androidapp-expo: name: Android road test (RNApp & AndroidApp - Expo ${{ matrix.version }}) runs-on: ubuntu-latest - needs: build-lint + needs: [filter, build-lint] + if: | + always() && + ( + needs.filter.outputs.expo54 == 'true' || + needs.filter.outputs.expo55 == 'true' || + needs.filter.outputs.androidapp == 'true' || + needs.filter.outputs.packages == 'true' + ) && + (needs.build-lint.result == 'success' || needs.build-lint.result == 'skipped') strategy: matrix: include: @@ -77,7 +122,15 @@ jobs: android-androidapp-vanilla: name: Android road test (RNApp & AndroidApp - Vanilla) runs-on: ubuntu-latest - needs: build-lint + needs: [filter, build-lint] + if: | + always() && + ( + needs.filter.outputs.rnapp == 'true' || + needs.filter.outputs.androidapp == 'true' || + needs.filter.outputs.packages == 'true' + ) && + (needs.build-lint.result == 'success' || needs.build-lint.result == 'skipped') steps: - name: Checkout @@ -93,7 +146,15 @@ jobs: ios-appleapp-vanilla: name: iOS road test (RNApp & AppleApp - Vanilla) runs-on: macos-26 - needs: build-lint + needs: [filter, build-lint] + if: | + always() && + ( + needs.filter.outputs.rnapp == 'true' || + needs.filter.outputs.appleapp == 'true' || + needs.filter.outputs.packages == 'true' + ) && + (needs.build-lint.result == 'success' || needs.build-lint.result == 'skipped') steps: - name: Checkout @@ -108,7 +169,16 @@ jobs: ios-appleapp-expo: name: iOS road test (RNApp & AppleApp - Expo ${{ matrix.version }}) runs-on: macos-26 - needs: build-lint + needs: [filter, build-lint] + if: | + always() && + ( + needs.filter.outputs.expo54 == 'true' || + needs.filter.outputs.expo55 == 'true' || + needs.filter.outputs.appleapp == 'true' || + needs.filter.outputs.packages == 'true' + ) && + (needs.build-lint.result == 'success' || needs.build-lint.result == 'skipped') strategy: matrix: include: From 268bb904af53f9ffa5a039950d0704e067fabf13 Mon Sep 17 00:00:00 2001 From: Marcin Szalski Date: Wed, 13 May 2026 17:00:34 +0200 Subject: [PATCH 2/2] chore(ci): readme only --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e669ad4e..9cff95d6 100644 --- a/README.md +++ b/README.md @@ -65,3 +65,4 @@ Like the project? ⚛️ [Join the team](https://callstack.com/careers/?utm_camp [tweet]: https://twitter.com/intent/tweet?text=Check%20out%20react-native-brownfield!%20https://github.com/callstack/react-native-brownfield%20%F0%9F%91%8D [callstack-badge]: https://callstack.com/images/callstack-badge.svg [callstack]: https://callstack.com/open-source/?utm_source=github.com&utm_medium=referral&utm_campaign=rnbrownfield&utm_term=readme +