name: prepare-hermes-v1-app description: Prepares a React Native app with Hermes V1 enabled inputs: retry-count: description: 'Number of times to retry the yarn install on failure' runs: using: composite steps: - name: Create new app shell: bash run: | cd /tmp npx @react-native-community/cli init RNApp --skip-install --version nightly - name: Select latest Hermes V1 version shell: bash run: | node "$GITHUB_WORKSPACE/.github/workflow-scripts/selectLatestHermesV1Version.js" - name: Apply patch to enable Hermes V1 shell: bash run: | cd /tmp/RNApp git apply --binary --3way --whitespace=nowarn "$GITHUB_WORKSPACE/.github/workflow-scripts/hermes-v1.patch" echo "✅ Patch applied successfully" - name: Install app dependencies with retry uses: nick-fields/retry@v3 with: timeout_minutes: 10 max_attempts: ${{ inputs.retry-count }} retry_wait_seconds: 15 shell: bash command: | cd /tmp/RNApp yarn install on_retry_command: | echo "Cleaning up for yarn retry..." cd /tmp/RNApp rm -rf node_modules yarn.lock || true yarn cache clean || true