diff --git a/.github/workflows/V8-reanimated-build-check-nightly.yml b/.github/workflows/V8-reanimated-build-check-nightly.yml index b79a507fb79..ba053a94a1b 100644 --- a/.github/workflows/V8-reanimated-build-check-nightly.yml +++ b/.github/workflows/V8-reanimated-build-check-nightly.yml @@ -33,17 +33,19 @@ jobs: java-version: '17' - name: Setup Yarn - # Sometimes `npx react-native init` fails due to dependency mismatches or other - # rather vague errors. This is a workaround for that. + # Sometimes `npx @react-native-community/cli init` fails at random. + # Pre-installing it with Yarn seems to improve stability. run: corepack enable && yarn init - - name: Install React Native - run: yarn add react-native + - name: Install React Native CLI + run: yarn add @react-native-community/cli - name: Create app - run: | - yarn react-native init ${{ env.APP_NAME }} --version ${{env.LATEST_SUPPORTED_RN_VERSION_IN_V8}} --skip-install --pm yarn --skip-install --install-pods false --skip-git-init - - name: Setup Yarn Modern + run: yarn rnc-cli init ${{ env.APP_NAME }} --version ${{env.LATEST_SUPPORTED_RN_VERSION_IN_V8}} --skip-install --pm yarn --install-pods false --skip-git-init + - name: Setup Yarn Modern in app working-directory: ${{ env.APP_NAME }} - run: touch yarn.lock && yarn set version berry && yarn config set nodeLinker node-modules + run: | + touch yarn.lock + yarn set version berry + yarn config set nodeLinker node-modules - name: Install dependencies working-directory: ${{ env.APP_NAME }} run: yarn install diff --git a/.github/workflows/example-ios-build-check.yml b/.github/workflows/example-ios-build-check.yml index b3cb44c11b7..5b1b6a3cacc 100644 --- a/.github/workflows/example-ios-build-check.yml +++ b/.github/workflows/example-ios-build-check.yml @@ -58,4 +58,4 @@ jobs: - name: Build app working-directory: ${{ matrix.working-directory }} - run: npx react-native run-ios --no-packager + run: yarn react-native run-ios --no-packager diff --git a/.github/workflows/expo-devclient-build-check-nightly.yml b/.github/workflows/expo-devclient-build-check-nightly.yml index 56a7f08aa9b..8f4a7773e88 100644 --- a/.github/workflows/expo-devclient-build-check-nightly.yml +++ b/.github/workflows/expo-devclient-build-check-nightly.yml @@ -66,7 +66,7 @@ jobs: - name: Build app (iOS) working-directory: ${{ env.APP_NAME }} if: ${{ matrix.platform == 'iOS' }} - run: npx react-native run-ios --simulator='iPhone 14' --terminal='Terminal' + run: yarn react-native run-ios --terminal='Terminal' - name: Build app (Android) working-directory: ${{ env.APP_NAME }}/android if: ${{ matrix.platform == 'Android' }} diff --git a/.github/workflows/monorepo-app-reanimated-build-check-action.yml b/.github/workflows/monorepo-app-reanimated-build-check-action.yml index f9262ddd4f3..729ef3503f7 100644 --- a/.github/workflows/monorepo-app-reanimated-build-check-action.yml +++ b/.github/workflows/monorepo-app-reanimated-build-check-action.yml @@ -35,15 +35,17 @@ jobs: # TODO: Put Monorepo template into a separate repo/package run: echo '{"name":"rnos-monorepo-tester","version":"1.0.0","license":"MIT","private":true,"workspaces":{"packages":["RootApp","packages/PackageApp", "AppA", "AppB"],"nohoist":["**/react","**/react-dom","**/react-native","**/react-native/**","**/react-native-codegen","**/react-native-dev-menu"]}}' > package.json - name: Install dependencies + working-directory: monorepo run: yarn install + - name: Install React Native CLI + working-directory: monorepo + run: yarn add -W @react-native-community/cli - name: Create RootApp working-directory: monorepo - # TODO: Revise if we want to hardcode 0.73 here. - run: npx react-native@0.73 init RootApp --skip-install --version 0.73 + run: yarn rnc-cli init RootApp --skip-install --pm yarn --install-pods false --skip-git-init - name: Create PackageApp working-directory: monorepo/packages - # TODO: Revise if we want to hardcode 0.73 here. - run: npx react-native@0.73 init PackageApp --skip-install --version 0.73 + run: yarn rnc-cli init PackageApp --skip-install --pm yarn --install-pods false --skip-git-init - name: Install dependencies for RootApp working-directory: monorepo/RootApp diff --git a/.github/workflows/react-native-nightly-reanimated-build-check-nightly.yml b/.github/workflows/react-native-nightly-reanimated-build-check-nightly.yml index 2491f8177cd..53739f28a2b 100644 --- a/.github/workflows/react-native-nightly-reanimated-build-check-nightly.yml +++ b/.github/workflows/react-native-nightly-reanimated-build-check-nightly.yml @@ -27,8 +27,8 @@ jobs: cancel-in-progress: true steps: - name: Setup Yarn - # Sometimes `npx react-native init` fails due to dependency mismatches or other - # rather vague errors. This is a workaround for that. + # Sometimes `npx @react-native-community/cli init` fails at random. + # Pre-installing it with Yarn seems to improve stability. run: corepack enable && yarn init - name: Set up JDK 18 if: ${{ matrix.platform == 'Android' }} @@ -41,14 +41,16 @@ jobs: if npm view react-native dist-tags | grep -q 'next:' ; then echo "REACT_NATIVE_TAG=next" >> $GITHUB_ENV fi - - name: Install React Native - run: yarn add react-native@${{ env.REACT_NATIVE_TAG }} + - name: Install React Native CLI + run: yarn add @react-native-community/cli - name: Create app - run: | - yarn react-native init ${{ env.APP_NAME }} --version ${{ env.REACT_NATIVE_TAG }} --pm yarn --skip-install --install-pods false --skip-git-init - - name: Setup Yarn Modern + run: yarn rnc-cli init ${{ env.APP_NAME }} --version ${{ env.REACT_NATIVE_TAG }} --pm yarn --skip-install --install-pods false --skip-git-init + - name: Setup Yarn Modern in app working-directory: ${{ env.APP_NAME }} - run: touch yarn.lock && yarn set version berry + run: | + touch yarn.lock + yarn set version berry + yarn config set nodeLinker node-modules - name: Install Reanimated working-directory: ${{ env.APP_NAME }} run: yarn add "react-native-reanimated@https://github.com/software-mansion/react-native-reanimated.git#workspace=react-native-reanimated&commit=${{ github.sha }}" @@ -67,7 +69,7 @@ jobs: - name: Build app (iOS) if: ${{ matrix.platform == 'iOS' }} working-directory: ${{ env.APP_NAME }} - run: yarn react-native run-ios --simulator='iPhone 14' + run: yarn react-native run-ios --terminal='Terminal' - name: Build app (Android) if: ${{ matrix.platform == 'Android' }} working-directory: ${{ env.APP_NAME }}/android diff --git a/.github/workflows/reanimated-compatibility-check-nightly.yml b/.github/workflows/reanimated-compatibility-check-nightly.yml index 8bde71c666e..308152632ae 100644 --- a/.github/workflows/reanimated-compatibility-check-nightly.yml +++ b/.github/workflows/reanimated-compatibility-check-nightly.yml @@ -44,13 +44,22 @@ jobs: uses: actions/setup-node@v3 with: node-version: 18 + - name: + Setup Yarn + # Sometimes `npx @react-native-community/cli init` fails at random. + # Pre-installing it with Yarn seems to improve stability. + run: corepack enable && yarn init + - name: Install React Native CLI + run: yarn add @react-native-community/cli - name: Create app - run: | - npx react-native@latest init ${{env.APP_NAME}} --version ${{ matrix.react-native.version }} --skip-install --pm yarn --skip-install --install-pods 0 --skip-git-init - - name: Setup Yarn Modern + run: yarn rnc-cli init ${{env.APP_NAME}} --version ${{ matrix.react-native.version }} --skip-install --pm yarn --install-pods 0 --skip-git-init + - name: Setup Yarn Modern in app # For convenience, sometimes there are vague issues with RN CLI and Yarn Legacy on the runner. working-directory: ${{ env.APP_NAME }} - run: corepack enable && yarn set version berry + run: | + touch yarn.lock + yarn set version berry + yarn config set nodeLinker node-modules - name: Install Reanimated working-directory: ${{ env.APP_NAME }} run: yarn add "react-native-reanimated@https://github.com/software-mansion/react-native-reanimated.git#workspace=react-native-reanimated&commit=${{ github.sha }}" diff --git a/.github/workflows/static-framework-reanimated-build-check-nightly.yml b/.github/workflows/static-framework-reanimated-build-check-nightly.yml index b7cff8b68ed..b29edb45149 100644 --- a/.github/workflows/static-framework-reanimated-build-check-nightly.yml +++ b/.github/workflows/static-framework-reanimated-build-check-nightly.yml @@ -21,20 +21,37 @@ jobs: concurrency: group: ios-static-framework-${{ matrix.react-native-architecture }}-${{ github.ref }} cancel-in-progress: true + env: + APP_NAME: app steps: - - name: Create React Native app - run: npx react-native init app + - name: Setup Yarn + # Sometimes `npx @react-native-community/cli init` fails at random. + # Pre-installing it with Yarn seems to improve stability. + run: corepack enable && yarn init + - name: Install React Native + run: yarn add @react-native-community/cli + - name: Create app + run: yarn rnc-cli init ${{ env.APP_NAME }} --skip-install --pm yarn --install-pods false --skip-git-init + - name: Setup Yarn Modern in app + working-directory: ${{ env.APP_NAME }} + run: | + touch yarn.lock + yarn set version berry + yarn config set nodeLinker node-modules + - name: Install dependencies + working-directory: ${{ env.APP_NAME }} + run: yarn install - name: Install Reanimated - working-directory: app + working-directory: ${{ env.APP_NAME }} run: yarn add "react-native-reanimated@https://github.com/software-mansion/react-native-reanimated.git#workspace=react-native-reanimated&commit=${{ github.sha }}" - name: Install Paper Pods if: ${{ matrix.react-native-architecture == 'Paper' }} - working-directory: app/ios + working-directory: ${{env.APP_NAME}}/ios run: export USE_FRAMEWORKS=static NO_FLIPPER=1 && bundle install && bundle exec pod install - name: Install Fabric Pods if: ${{ matrix.react-native-architecture == 'Fabric' }} - working-directory: app/ios - run: export USE_FRAMEWORKS=static NO_FLIPPER=1 RCT_NEW_ARCH_ENABLED=1 && bundle install && bundle exec pod install + working-directory: ${{env.APP_NAME}}/ios + run: export USE_FRAMEWORKS=static NO_FLIPPER=1 RCT_NEW_ARCH_ENABLED=1 && bundle install && bundle exec pod update - name: Build app - working-directory: app - run: npx react-native run-ios --no-packager + working-directory: ${{env.APP_NAME}}/ios + run: xcodebuild -workspace ${{env.APP_NAME}}.xcworkspace -scheme ${{env.APP_NAME}} -configuration Debug -destination 'generic/platform=iOS Simulator' build | xcpretty diff --git a/.github/workflows/windows-hosted-app-reanimated-build-check-nightly.yml b/.github/workflows/windows-hosted-app-reanimated-build-check-nightly.yml index dc188fe19b4..cdee2b230b2 100644 --- a/.github/workflows/windows-hosted-app-reanimated-build-check-nightly.yml +++ b/.github/workflows/windows-hosted-app-reanimated-build-check-nightly.yml @@ -25,17 +25,21 @@ jobs: with: distribution: 'zulu' java-version: '17' - - name: Setup Yarn - # Sometimes `npx react-native init` fails due to dependency mismatches or other - # rather vague errors. This is a workaround for that. + - name: + Setup Yarn + # Sometimes `npx @react-native-community/cli init` fails at random. + # Pre-installing it with Yarn seems to improve stability. run: corepack enable && yarn init --yes - name: Install React Native run: yarn add @react-native-community/cli - name: Create app run: yarn rnc-cli init ${{ env.APP_NAME }} --pm yarn --skip-install --install-pods false --skip-git-init - - name: Setup Yarn Modern + - name: Setup Yarn Modern in app working-directory: ${{ env.APP_NAME }} - run: touch yarn.lock && yarn set version berry + run: | + touch yarn.lock + yarn set version berry + yarn config set nodeLinker node-modules - name: Install dependencies working-directory: ${{ env.APP_NAME }} run: yarn