chore(deps): update React Native to v0.85.3 #18448
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
| name: Build & Test | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - release/** | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| jobs: | |
| diff_check: | |
| uses: ./.github/workflows/skip-ci.yml | |
| job_test: | |
| name: Test | |
| runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"] | |
| needs: [diff_check] | |
| if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - run: corepack enable | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| package-manager-cache: false | |
| node-version: 18 | |
| cache: 'yarn' | |
| cache-dependency-path: yarn.lock | |
| - name: Install Dependencies | |
| run: yarn install | |
| - name: Test | |
| run: yarn test | |
| job_lint: | |
| name: Lint | |
| runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"] | |
| needs: [diff_check] | |
| if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - run: corepack enable | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| package-manager-cache: false | |
| node-version: 18 | |
| cache: 'yarn' | |
| cache-dependency-path: yarn.lock | |
| - name: Install Dependencies | |
| run: yarn install | |
| # Default of ubuntu and apt packages are too old compared to macos packages. | |
| # This is required for using a newer version of clang-format. | |
| - name: Setup clang-format V22 | |
| run: | | |
| wget -O - https://apt.llvm.org/llvm.sh | sudo bash -s 22 | |
| sudo apt-get install -y clang-22 clang-format-22 lld-22 lldb-22 | |
| - name: Set clang-format V22 as default | |
| run: | | |
| sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-22 200 | |
| sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-22 200 | |
| sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-22 200 | |
| clang --version | |
| clang-format --version | |
| - name: Install Swiftly and Swift | |
| run: | | |
| # Install Swift dependencies first | |
| sudo apt-get update | |
| sudo apt-get -y install libcurl4-openssl-dev libz3-dev libncurses-dev libedit-dev libxml2-dev | |
| ARCH=$(uname -m) | |
| SWIFTLY_FILE="swiftly-${ARCH}.tar.gz" | |
| curl -sL "https://download.swift.org/swiftly/linux/swiftly-${ARCH}.tar.gz" -o "$SWIFTLY_FILE" | |
| tar zxf "$SWIFTLY_FILE" | |
| ./swiftly init --quiet-shell-followup | |
| . "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh" | |
| hash -r | |
| # Install Swift 6.0 (compatible with SwiftLint 0.63.2) | |
| swiftly install 6.0 | |
| swift --version | |
| # Export Swift toolchain path for SwiftLint's SourceKit | |
| SWIFT_BIN=$(which swift) | |
| SWIFT_TOOLCHAIN=$(dirname $(dirname "$SWIFT_BIN")) | |
| SOURCEKIT_PATH=$(find "${SWIFT_TOOLCHAIN}" -name "libsourcekitdInProc.so" -print -quit 2>/dev/null) | |
| if [ -n "$SOURCEKIT_PATH" ]; then | |
| echo "LINUX_SOURCEKIT_LIB_PATH=$(dirname "$SOURCEKIT_PATH")" >> $GITHUB_ENV | |
| else | |
| echo "ERROR: libsourcekitdInProc.so not found under ${SWIFT_TOOLCHAIN}" | |
| exit 1 | |
| fi | |
| - name: Lint | |
| run: | | |
| . "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh" | |
| yarn lint | |
| job_check_integrity: | |
| name: Check package integrity | |
| runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"] | |
| needs: [diff_check] | |
| if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - run: corepack enable | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| package-manager-cache: false | |
| node-version: 18 | |
| cache: 'yarn' | |
| cache-dependency-path: yarn.lock | |
| - name: Install Dependencies | |
| run: yarn install | |
| - name: Save initial lock file | |
| run: cp yarn.lock yarn.lock.initial | |
| - name: Install Dependencies (update lock if necessary) | |
| run: yarn install | |
| - name: Check lock file integrity | |
| run: | | |
| [ "$(diff yarn.lock.initial yarn.lock)" = "" ] | |
| job_build: | |
| name: Build | |
| runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"] | |
| needs: [diff_check] | |
| if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - run: corepack enable | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| package-manager-cache: false | |
| node-version: 18 | |
| cache: 'yarn' | |
| cache-dependency-path: yarn.lock | |
| - name: Install Dependencies | |
| run: yarn install | |
| - name: Build | |
| run: yarn build | |
| - name: Archive dist | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: dist | |
| path: packages/core/dist | |
| - name: Archive ts3.8 | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ts3.8 | |
| path: packages/core/ts3.8 | |
| - name: Archive Expo Plugin | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: expo-plugin | |
| path: packages/core/plugin/build | |
| - name: Pack | |
| run: yarn build:tarball | |
| - name: Archive Artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ github.sha }} | |
| path: | | |
| ${{ github.workspace }}/packages/core/*.tgz | |
| ${{ github.workspace }}/packages/expo-upload-sourcemaps/*.tgz | |
| job_validate_tarball: | |
| name: Validate tarball | |
| runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"] | |
| needs: [job_build, diff_check] | |
| if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| node-version: 18 | |
| - name: Download tarball artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: ${{ github.sha }} | |
| path: artifacts | |
| - name: Verify executable bits in tarball | |
| run: | | |
| set -e | |
| TARBALL=$(find artifacts -name 'sentry-react-native-*.tgz' -print -quit) | |
| [ -n "$TARBALL" ] || { echo "::error::tarball not found in artifacts/"; exit 1; } | |
| echo "Tarball: $TARBALL" | |
| FAILED=0 | |
| for entry in package/scripts/sentry-xcode.sh \ | |
| package/scripts/sentry-xcode-debug-files.sh \ | |
| package/scripts/collect-modules.sh \ | |
| package/scripts/eas-build-hook.js \ | |
| package/scripts/expo-upload-sourcemaps.js; do | |
| mode=$(tar -tvf "$TARBALL" "$entry" 2>/dev/null | awk 'NR==1{print $1}') | |
| if [ -z "$mode" ]; then | |
| echo "::error::$entry missing from tarball" | |
| FAILED=1 | |
| elif [ "$mode" != "-rwxr-xr-x" ]; then | |
| echo "::error::$entry has mode $mode, expected -rwxr-xr-x" | |
| FAILED=1 | |
| else | |
| echo "OK: $entry ($mode)" | |
| fi | |
| done | |
| exit $FAILED | |
| - name: Install tarball into fresh project | |
| run: | | |
| set -e | |
| CORE_TARBALL=$(find "$PWD/artifacts" -name 'sentry-react-native-*.tgz' -print -quit) | |
| EXPO_TARBALL=$(find "$PWD/artifacts" -name 'sentry-expo-upload-sourcemaps-*.tgz' -print -quit) | |
| [ -n "$CORE_TARBALL" ] || { echo "::error::core tarball not found"; exit 1; } | |
| [ -n "$EXPO_TARBALL" ] || { echo "::error::expo-upload-sourcemaps tarball not found"; exit 1; } | |
| mkdir -p /tmp/install-test | |
| cd /tmp/install-test | |
| npm init -y >/dev/null | |
| # Install both local tarballs together so the @sentry/expo-upload-sourcemaps | |
| # cross-dep is satisfied locally. On a release branch the bumped version | |
| # is not on the npm registry yet (workspace:* resolves to the version | |
| # we are about to publish), and a registry fetch would fail with ETARGET. | |
| npm install --no-save "$EXPO_TARBALL" "$CORE_TARBALL" | |
| # workspace:* spec must have been resolved by yarn pack (#6037 regression) | |
| if grep -q 'workspace:' node_modules/@sentry/react-native/package.json; then | |
| echo "::error::published package.json still contains unresolved workspace: spec" | |
| grep workspace: node_modules/@sentry/react-native/package.json | |
| exit 1 | |
| fi | |
| # bin entries must be linked into node_modules/.bin and executable | |
| for bin in sentry-eas-build-on-complete \ | |
| sentry-eas-build-on-error \ | |
| sentry-eas-build-on-success \ | |
| sentry-expo-upload-sourcemaps; do | |
| if [ ! -x "node_modules/.bin/$bin" ]; then | |
| echo "::error::node_modules/.bin/$bin missing or not executable" | |
| ls -la node_modules/.bin/ | grep -i sentry || true | |
| exit 1 | |
| fi | |
| echo "OK: node_modules/.bin/$bin" | |
| done | |
| # sentry-xcode.sh is invoked directly by the iOS build phase, so it | |
| # must remain executable after install (#6047) | |
| if [ ! -x node_modules/@sentry/react-native/scripts/sentry-xcode.sh ]; then | |
| echo "::error::scripts/sentry-xcode.sh is not executable after install" | |
| ls -la node_modules/@sentry/react-native/scripts/sentry-xcode.sh | |
| exit 1 | |
| fi | |
| echo "OK: scripts/sentry-xcode.sh executable" | |
| job_type_check: | |
| name: Type Check Typescript 3.8 | |
| runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"] | |
| needs: [job_build, diff_check] | |
| if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
| env: | |
| YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - run: corepack enable | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| package-manager-cache: false | |
| node-version: 18 | |
| cache: 'yarn' | |
| cache-dependency-path: yarn.lock | |
| - name: Install Dependencies | |
| run: yarn install | |
| - name: Download dist | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: dist | |
| path: packages/core/dist | |
| - name: Download ts3.8 | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: ts3.8 | |
| path: packages/core/ts3.8 | |
| - name: Install Global Dependencies | |
| run: npm i -g yalc | |
| - name: Type Check | |
| working-directory: dev-packages/type-check | |
| run: yarn type-check | |
| job_circular_dep_check: | |
| name: Circular Dependency Check | |
| runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"] | |
| needs: [job_build, diff_check] | |
| if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - run: corepack enable | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| package-manager-cache: false | |
| node-version: 18 | |
| cache: 'yarn' | |
| cache-dependency-path: yarn.lock | |
| - name: Install Dependencies | |
| run: yarn install | |
| - name: Download dist | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: dist | |
| path: packages/core/dist | |
| - name: Download Expo Plugin | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: expo-plugin | |
| path: packages/core/plugin/build | |
| - name: Run madge | |
| run: yarn circularDepCheck | |
| job_bundle: | |
| name: Bundle | |
| runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"] | |
| needs: [job_test, job_build, diff_check] | |
| if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
| strategy: | |
| # we want that the matrix keeps running, default is to cancel them if it fails. | |
| fail-fast: false | |
| matrix: | |
| platform: ['ios', 'android'] | |
| dev: [true, false] | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - run: corepack enable | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| package-manager-cache: false | |
| node-version: 22 | |
| cache: 'yarn' | |
| cache-dependency-path: yarn.lock | |
| - name: Install Dependencies | |
| run: yarn install | |
| - name: Build | |
| run: yarn build | |
| - name: Make Sample Build Directory | |
| run: mkdir build | |
| working-directory: samples/react-native | |
| - name: Bundle | |
| run: | | |
| yarn run react-native bundle \ | |
| --entry-file index.js \ | |
| --platform ${{ matrix.platform }} \ | |
| --dev ${{ matrix.dev }} \ | |
| --reset-cache \ | |
| --bundle-output build/bundle.${{ matrix.platform }}.js \ | |
| --sourcemap-output build/bundle.${{ matrix.platform }}.map | |
| working-directory: samples/react-native |