From 049eb886c3d988cf5d356d8ae304e2b7a2e399fb Mon Sep 17 00:00:00 2001 From: Maciej Jastrzebski Date: Tue, 19 Aug 2025 21:15:29 +0200 Subject: [PATCH 1/2] chore: CI RN@next build --- .github/actions/setup-deps-rn-next/action.yml | 34 ++++++++++ .../action.yml | 0 .github/workflows/react-native-next.yml | 68 +++++++++++++++++++ .github/workflows/react-native-nightly.yml | 10 +-- 4 files changed, 107 insertions(+), 5 deletions(-) create mode 100644 .github/actions/setup-deps-rn-next/action.yml rename .github/actions/{setup-deps-nightly => setup-deps-rn-nightly}/action.yml (100%) create mode 100644 .github/workflows/react-native-next.yml diff --git a/.github/actions/setup-deps-rn-next/action.yml b/.github/actions/setup-deps-rn-next/action.yml new file mode 100644 index 00000000..1450abfe --- /dev/null +++ b/.github/actions/setup-deps-rn-next/action.yml @@ -0,0 +1,34 @@ +name: Setup deps (nightly) +description: Setup Node.js and install dependencies + +runs: + using: composite + steps: + - name: Setup Node.js + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 + with: + node-version-file: .nvmrc + + - name: Cache deps + id: yarn-cache + uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + with: + path: | + ./node_modules + .yarn/install-state.gz + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}-${{ hashFiles('**/package.json', '!node_modules/**') }} + restore-keys: | + ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} + ${{ runner.os }}-yarn- + + - name: Install deps + if: steps.yarn-cache.outputs.cache-hit != 'true' + run: yarn install --immutable + shell: bash + + - name: Switch to React Native Next + run: | + yarn remove react react-test-renderer react-native @react-native/babel-preset + yarn add -D react@19.1.0 react-test-renderer@19.1.0 react-native@next @react-native/babel-preset@next + yarn add -P react@19.1.0 react-test-renderer@19.1.0 react-native@next + shell: bash diff --git a/.github/actions/setup-deps-nightly/action.yml b/.github/actions/setup-deps-rn-nightly/action.yml similarity index 100% rename from .github/actions/setup-deps-nightly/action.yml rename to .github/actions/setup-deps-rn-nightly/action.yml diff --git a/.github/workflows/react-native-next.yml b/.github/workflows/react-native-next.yml new file mode 100644 index 00000000..e1f2b380 --- /dev/null +++ b/.github/workflows/react-native-next.yml @@ -0,0 +1,68 @@ +name: React Native Next +on: + # Runs every night at 2 AM + schedule: + - cron: '0 2 * * *' + # Manual trigger + workflow_dispatch: + +# Set minimal permissions by default +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ !contains(github.ref, 'main')}} + +jobs: + install-cache-deps: + runs-on: ubuntu-latest + name: Install and Cache deps + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Setup + uses: ./.github/actions/setup-deps-rn-next + + lint: + needs: [install-cache-deps] + runs-on: ubuntu-latest + name: Lint + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Setup Node.js and deps + uses: ./.github/actions/setup-deps-rn-next + + - name: Lint + run: yarn lint + + typecheck: + needs: [install-cache-deps] + runs-on: ubuntu-latest + name: Typecheck + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Setup Node.js and deps + uses: ./.github/actions/setup-deps-rn-next + + - name: Typecheck + run: yarn typecheck + + test: + needs: [install-cache-deps] + runs-on: ubuntu-latest + name: Test + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Setup Node.js and deps + uses: ./.github/actions/setup-deps-rn-next + + - name: Test + run: yarn test:ci diff --git a/.github/workflows/react-native-nightly.yml b/.github/workflows/react-native-nightly.yml index 125d8cf4..50c30b1e 100644 --- a/.github/workflows/react-native-nightly.yml +++ b/.github/workflows/react-native-nightly.yml @@ -3,7 +3,7 @@ on: # Runs every night at 5 AM schedule: - cron: '0 5 * * *' - # Manaual trigger + # Manual trigger workflow_dispatch: # Set minimal permissions by default @@ -23,7 +23,7 @@ jobs: uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Setup - uses: ./.github/actions/setup-deps + uses: ./.github/actions/setup-deps-rn-nightly lint: needs: [install-cache-deps] @@ -34,7 +34,7 @@ jobs: uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Setup Node.js and deps - uses: ./.github/actions/setup-deps-nightly + uses: ./.github/actions/setup-deps-rn-nightly - name: Lint run: yarn lint @@ -48,7 +48,7 @@ jobs: uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Setup Node.js and deps - uses: ./.github/actions/setup-deps-nightly + uses: ./.github/actions/setup-deps-rn-nightly - name: Typecheck run: yarn typecheck @@ -62,7 +62,7 @@ jobs: uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Setup Node.js and deps - uses: ./.github/actions/setup-deps-nightly + uses: ./.github/actions/setup-deps-rn-nightly - name: Test run: yarn test:ci From 0c1574e6bb21b065aeef589fa525a302795d31ed Mon Sep 17 00:00:00 2001 From: Maciej Jastrzebski Date: Tue, 19 Aug 2025 21:21:32 +0200 Subject: [PATCH 2/2] . --- .github/actions/setup-deps-rn-next/action.yml | 2 +- .github/actions/setup-deps-rn-nightly/action.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/setup-deps-rn-next/action.yml b/.github/actions/setup-deps-rn-next/action.yml index 1450abfe..ec323263 100644 --- a/.github/actions/setup-deps-rn-next/action.yml +++ b/.github/actions/setup-deps-rn-next/action.yml @@ -1,4 +1,4 @@ -name: Setup deps (nightly) +name: Setup deps (RN @next) description: Setup Node.js and install dependencies runs: diff --git a/.github/actions/setup-deps-rn-nightly/action.yml b/.github/actions/setup-deps-rn-nightly/action.yml index 49d1008b..013e01c2 100644 --- a/.github/actions/setup-deps-rn-nightly/action.yml +++ b/.github/actions/setup-deps-rn-nightly/action.yml @@ -1,4 +1,4 @@ -name: Setup deps (nightly) +name: Setup deps (RN nightly) description: Setup Node.js and install dependencies runs: