diff --git a/.github/actions/detect-platform-change/action.yml b/.github/actions/detect-platform-change/action.yml index ab7b3635e48daa..5c18311feb6c82 100644 --- a/.github/actions/detect-platform-change/action.yml +++ b/.github/actions/detect-platform-change/action.yml @@ -26,13 +26,13 @@ runs: using: 'composite' steps: - name: ๐Ÿ‘€ Checkout - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: fetch-depth: 1000 filter: 'blob:none' - name: ๐Ÿง Check changes categories id: changes - uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47 + uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47.0.0 with: # If the number of commits from actions/checkout is not sufficient to find a base commit, # tj-actions/changed-files tries 10 times to fetch more commits by this amount: diff --git a/.github/actions/use-android-emulator/action.yml b/.github/actions/use-android-emulator/action.yml index 898525ff51f2db..d7105bd6cab4ed 100644 --- a/.github/actions/use-android-emulator/action.yml +++ b/.github/actions/use-android-emulator/action.yml @@ -39,7 +39,7 @@ runs: - name: '๐Ÿ’ฟ Setup Android Emulator #1' id: retries-1 continue-on-error: true - uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2 + uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0 with: api-level: ${{ inputs.avd-api }} avd-name: ${{ inputs.avd-name }} @@ -62,7 +62,7 @@ runs: id: retries-2 continue-on-error: true if: steps.retries-1.outcome == 'failure' - uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2 + uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0 with: api-level: ${{ inputs.avd-api }} avd-name: ${{ inputs.avd-name }} @@ -84,7 +84,7 @@ runs: id: retries-3 # continue-on-error: true if: steps.retries-2.outcome == 'failure' - uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2 + uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0 with: api-level: ${{ inputs.avd-api }} avd-name: ${{ inputs.avd-name }} diff --git a/.github/workflows/android-instrumentation-tests.yml b/.github/workflows/android-instrumentation-tests.yml index f28b91e2cdcebd..65ec163703525c 100644 --- a/.github/workflows/android-instrumentation-tests.yml +++ b/.github/workflows/android-instrumentation-tests.yml @@ -60,18 +60,18 @@ jobs: - name: ๐Ÿ‘€ Check out repository uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿงน Cleanup GitHub Linux runner disk space uses: ./.github/actions/cleanup-linux-disk-space - name: ๐Ÿ”จ Use JDK 17 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/android-unit-tests.yml b/.github/workflows/android-unit-tests.yml index 63ba32b650dc5c..d9f8a88bcb6aa9 100644 --- a/.github/workflows/android-unit-tests.yml +++ b/.github/workflows/android-unit-tests.yml @@ -37,18 +37,18 @@ jobs: - name: ๐Ÿ‘€ Check out repository uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿงน Cleanup GitHub Linux runner disk space uses: ./.github/actions/cleanup-linux-disk-space - name: ๐Ÿ”จ Use JDK 17 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/bare-diffs.yml b/.github/workflows/bare-diffs.yml index 27b8b71b9e0d77..40b9f56eca1a3b 100644 --- a/.github/workflows/bare-diffs.yml +++ b/.github/workflows/bare-diffs.yml @@ -14,13 +14,13 @@ jobs: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --ignore-scripts --frozen-lockfile diff --git a/.github/workflows/check-issues-nightly.yml b/.github/workflows/check-issues-nightly.yml index feb2d438844d5d..ca0e6c5023d417 100644 --- a/.github/workflows/check-issues-nightly.yml +++ b/.github/workflows/check-issues-nightly.yml @@ -15,13 +15,13 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --ignore-scripts --frozen-lockfile diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index bf18f2adfc506e..3354d8708764cc 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -71,18 +71,18 @@ jobs: if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' - name: ๐Ÿ—๏ธ Setup pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ—๏ธ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 20 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: '1.x' @@ -129,18 +129,18 @@ jobs: if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' - name: ๐Ÿ—๏ธ Setup pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ—๏ธ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 20 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: '1.x' @@ -173,18 +173,18 @@ jobs: if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' - name: ๐Ÿ—๏ธ Setup pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ—๏ธ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 20 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: '1.x' @@ -254,18 +254,18 @@ jobs: if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' - name: ๐Ÿ—๏ธ Setup pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ—๏ธ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 20 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: '1.x' diff --git a/.github/workflows/code-review.yml b/.github/workflows/code-review.yml index bd61caefac3911..56df33607a7de5 100644 --- a/.github/workflows/code-review.yml +++ b/.github/workflows/code-review.yml @@ -29,13 +29,13 @@ jobs: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH @@ -54,7 +54,7 @@ jobs: # swift build -c release # cp .build/release/swiftlint /usr/local/bin/ # - name: ๐Ÿ“ฆ Make an artifact - # uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + # uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 # with: # name: swiftlint # path: SwiftLint/.build diff --git a/.github/workflows/commentator.yml b/.github/workflows/commentator.yml index 0fbedb6bea7d86..be30add108f767 100644 --- a/.github/workflows/commentator.yml +++ b/.github/workflows/commentator.yml @@ -17,13 +17,13 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --ignore-scripts --frozen-lockfile diff --git a/.github/workflows/create-expo-app.yml b/.github/workflows/create-expo-app.yml index 3f547d3d52ca36..a6b7366a907626 100644 --- a/.github/workflows/create-expo-app.yml +++ b/.github/workflows/create-expo-app.yml @@ -26,7 +26,7 @@ jobs: strategy: fail-fast: false matrix: - node: [20, 22] + node: [22, 24] steps: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 @@ -36,14 +36,14 @@ jobs: run: git fetch origin ${{ github.event.before || github.base_ref || 'main' }}:${{ github.event.before || github.base_ref || 'main' }} --depth 100 if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' - name: ๐Ÿ—๏ธ Setup pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: 1.x - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node }} cache: 'pnpm' diff --git a/.github/workflows/create-expo-module.yml b/.github/workflows/create-expo-module.yml index e1aaea2f66180f..87677126415895 100644 --- a/.github/workflows/create-expo-module.yml +++ b/.github/workflows/create-expo-module.yml @@ -26,7 +26,7 @@ jobs: strategy: fail-fast: false matrix: - node: [20, 22] + node: [22, 24] steps: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 @@ -36,10 +36,10 @@ jobs: run: git fetch origin ${{ github.event.before || github.base_ref || 'main' }}:${{ github.event.before || github.base_ref || 'main' }} --depth 100 if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' - name: ๐Ÿ—๏ธ Setup pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node }} cache: 'pnpm' diff --git a/.github/workflows/development-client-e2e.yml b/.github/workflows/development-client-e2e.yml index 602ec27a5e1172..0299f34d242199 100644 --- a/.github/workflows/development-client-e2e.yml +++ b/.github/workflows/development-client-e2e.yml @@ -34,20 +34,20 @@ jobs: brew install applesimutils brew install watchman - name: ๐Ÿ’Ž Setup Ruby and install gems - uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1 + uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1.312.0 with: bundler-cache: true ruby-version: 3.2.2 - name: ๐Ÿ’Ž Install cocoapods run: sudo gem install cocoapods - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches diff --git a/.github/workflows/development-client-latest-e2e.yml b/.github/workflows/development-client-latest-e2e.yml index fd2d157850412b..a512dcd5eb88a5 100644 --- a/.github/workflows/development-client-latest-e2e.yml +++ b/.github/workflows/development-client-latest-e2e.yml @@ -27,25 +27,25 @@ jobs: brew install applesimutils brew install watchman - name: ๐Ÿ’Ž Setup Ruby and install gems - uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1 + uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1.312.0 with: bundler-cache: true ruby-version: 3.2.2 - name: ๐Ÿ’Ž Install cocoapods run: sudo gem install cocoapods - name: ๐Ÿ”จ Use JDK 11 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: distribution: 'temurin' java-version: '11' - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches diff --git a/.github/workflows/development-client.yml b/.github/workflows/development-client.yml index 23e511e7978050..54aeb3ea1170ed 100644 --- a/.github/workflows/development-client.yml +++ b/.github/workflows/development-client.yml @@ -30,13 +30,13 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches @@ -94,13 +94,13 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches diff --git a/.github/workflows/docs-pr-destroy.yml b/.github/workflows/docs-pr-destroy.yml index 419070b83d909d..ab714d984250b8 100644 --- a/.github/workflows/docs-pr-destroy.yml +++ b/.github/workflows/docs-pr-destroy.yml @@ -15,14 +15,14 @@ concurrency: jobs: docs-pr-destroy: if: github.repository == 'expo/expo' && - ((github.event.action == 'closed' && contains(github.event.pull_request.labels.*.name, 'preview')) || - (github.event.action == 'unlabeled' && github.event.label.name == 'preview')) + ((github.event.action == 'closed' && contains(github.event.pull_request.labels.*.name, 'preview')) || + (github.event.action == 'unlabeled' && github.event.label.name == 'preview')) runs-on: ubuntu-24.04 steps: - name: ๐Ÿ‘€ Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: 24 - name: ๐Ÿงน Delete preview deployments diff --git a/.github/workflows/docs-pr.yml b/.github/workflows/docs-pr.yml index 5713f9755922be..c24d14be5fdc3e 100644 --- a/.github/workflows/docs-pr.yml +++ b/.github/workflows/docs-pr.yml @@ -26,15 +26,15 @@ jobs: runs-on: ubuntu-24.04 steps: - name: ๐Ÿ‘€ Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ—๏ธ Setup pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' cache-dependency-path: docs/pnpm-lock.yaml - name: โ™ป๏ธ Restore caches diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index b5aa1887093238..d87610444ffc25 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -25,17 +25,17 @@ jobs: runs-on: ubuntu-24.04 steps: - name: ๐Ÿ‘€ Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 30000 - name: ๐Ÿ—๏ธ Setup pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches diff --git a/.github/workflows/expo-go-android-lint.yml b/.github/workflows/expo-go-android-lint.yml index f702d1c2ea1216..8629d05794cecc 100644 --- a/.github/workflows/expo-go-android-lint.yml +++ b/.github/workflows/expo-go-android-lint.yml @@ -29,18 +29,18 @@ jobs: with: submodules: true - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿงน Cleanup GitHub Linux runner disk space uses: ./.github/actions/cleanup-linux-disk-space - name: ๐Ÿ”จ Use JDK 17 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/expotools.yml b/.github/workflows/expotools.yml index 8ddc5efca04618..b5897b89e7bb84 100644 --- a/.github/workflows/expotools.yml +++ b/.github/workflows/expotools.yml @@ -23,13 +23,13 @@ jobs: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --ignore-scripts --frozen-lockfile diff --git a/.github/workflows/fingerprint.yml b/.github/workflows/fingerprint.yml index ca487c22e33a9b..4aeafbfc142ac8 100644 --- a/.github/workflows/fingerprint.yml +++ b/.github/workflows/fingerprint.yml @@ -35,16 +35,16 @@ jobs: with: fetch-depth: 100 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿš€ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: latest - name: โฌ‡๏ธ Fetch commits from base branch @@ -135,17 +135,17 @@ jobs: runs-on: ubuntu-latest steps: - name: ๐Ÿ“ฅ Download fingerprint (macos) - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v4 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: fingerprint-macos-latest - name: ๐Ÿ“ฅ Download fingerprint (ubuntu) - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v4 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: fingerprint-ubuntu-latest - name: ๐Ÿ“ฅ Download fingerprint (windows) - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v4 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: fingerprint-windows-latest diff --git a/.github/workflows/ios-prebuild-external-xcframeworks.yml b/.github/workflows/ios-prebuild-external-xcframeworks.yml index 9476f37bb82015..c3e5d6eeed593f 100644 --- a/.github/workflows/ios-prebuild-external-xcframeworks.yml +++ b/.github/workflows/ios-prebuild-external-xcframeworks.yml @@ -175,14 +175,14 @@ jobs: run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: Install node modules @@ -219,7 +219,7 @@ jobs: - name: Authenticate to Google Cloud if: ${{ success() && (github.event.inputs.publish == 'true' || github.event_name == 'push') && github.repository == 'expo/expo' }} - uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3 + uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0 with: project_id: exponentjs workload_identity_provider: projects/321830142373/locations/global/workloadIdentityPools/github/providers/expo diff --git a/.github/workflows/ios-static-frameworks.yml b/.github/workflows/ios-static-frameworks.yml index 78eb328c3f42f6..b78652a07f1f0d 100644 --- a/.github/workflows/ios-static-frameworks.yml +++ b/.github/workflows/ios-static-frameworks.yml @@ -24,19 +24,19 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ’Ž Setup Ruby - uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1 + uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1.312.0 with: ruby-version: 3.2.2 - name: ๐Ÿ’Ž Install Ruby gems run: gem install cocoapods xcpretty - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches diff --git a/.github/workflows/ios-unit-tests.yml b/.github/workflows/ios-unit-tests.yml index 3617a2cb2329e3..cbc444c9514c37 100644 --- a/.github/workflows/ios-unit-tests.yml +++ b/.github/workflows/ios-unit-tests.yml @@ -47,7 +47,7 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ’Ž Setup Ruby and install gems - uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1 + uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1.312.0 with: bundler-cache: true ruby-version: 3.2.2 @@ -59,13 +59,13 @@ jobs: xcrun simctl shutdown all sudo xcodebuild -runFirstLaunch - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: Setup ccache uses: ./.github/actions/setup-ccache diff --git a/.github/workflows/issue-closed.yml b/.github/workflows/issue-closed.yml index 076bfb17f7ea0c..bf7f0934614bf6 100644 --- a/.github/workflows/issue-closed.yml +++ b/.github/workflows/issue-closed.yml @@ -14,13 +14,13 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --ignore-scripts --frozen-lockfile diff --git a/.github/workflows/issue-opened.yml b/.github/workflows/issue-opened.yml index a4ef525b2ecb51..f644c6c91a1c59 100644 --- a/.github/workflows/issue-opened.yml +++ b/.github/workflows/issue-opened.yml @@ -41,13 +41,13 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --ignore-scripts --frozen-lockfile diff --git a/.github/workflows/issue-triage.yml b/.github/workflows/issue-triage.yml index a335455cd2648d..496da36cbfd1b8 100644 --- a/.github/workflows/issue-triage.yml +++ b/.github/workflows/issue-triage.yml @@ -129,13 +129,13 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --ignore-scripts --frozen-lockfile diff --git a/.github/workflows/native-component-list.yml b/.github/workflows/native-component-list.yml index ea092fed92f242..8d8d5d5f5855a3 100644 --- a/.github/workflows/native-component-list.yml +++ b/.github/workflows/native-component-list.yml @@ -29,13 +29,13 @@ jobs: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --ignore-scripts --frozen-lockfile diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index cbfc09fe6cb5ce..78921c269a05ca 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -44,13 +44,13 @@ jobs: run: git fetch origin main:main --depth 100 if: github.event_name == 'pull_request' - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --ignore-scripts --frozen-lockfile @@ -61,7 +61,7 @@ jobs: echo base-commit=$(git log -n 1 main --pretty=format:'%H' -- .github/workflows/pr-labeler.yml apps/bare-expo apps/test-suite packages pnpm-lock.yaml) >> "$GITHUB_OUTPUT" - name: ๐Ÿ“ท Check fingerprint id: fingerprint - uses: expo/actions/fingerprint@d56a519244cfad3b09a73b4b485a1de7f44590cd # main + uses: expo/actions/fingerprint@150c682164cec02a2d43347b70906d234d33f575 # main with: working-directory: apps/bare-expo previous-git-commit: ${{ steps.base-commit.outputs.base-commit }} diff --git a/.github/workflows/publish-canaries.yml b/.github/workflows/publish-canaries.yml index 1f79d3cf4c588d..a210b51c6f9cb4 100644 --- a/.github/workflows/publish-canaries.yml +++ b/.github/workflows/publish-canaries.yml @@ -32,17 +32,17 @@ jobs: - name: ๐Ÿ”จ Add bin to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' registry-url: https://registry.npmjs.org/ - name: ๐Ÿ”จ Use JDK 17 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/router.yml b/.github/workflows/router.yml index ae910047d0f3bb..445b488b33281f 100644 --- a/.github/workflows/router.yml +++ b/.github/workflows/router.yml @@ -28,16 +28,16 @@ jobs: with: fetch-depth: 100 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 20 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: latest - name: ๐Ÿ“ฆ Install dependencies diff --git a/.github/workflows/sdk.yml b/.github/workflows/sdk.yml index 2207357e1dfff5..0feeb2fab8db66 100644 --- a/.github/workflows/sdk.yml +++ b/.github/workflows/sdk.yml @@ -49,15 +49,15 @@ jobs: run: git fetch origin ${{ github.base_ref || github.event.before || 'main' }}:${{ github.base_ref || github.event.before || 'main' }} --depth 100 if: github.event_name == 'pull_request' - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 20 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: latest - name: ๐Ÿ“ฆ Install dependencies @@ -90,15 +90,15 @@ jobs: with: fetch-depth: 100 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 20 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: latest - name: ๐Ÿ“ฆ Install dependencies diff --git a/.github/workflows/swift-format.yml b/.github/workflows/swift-format.yml index 6748f812d1e4f2..12b78a6fc1ccf6 100644 --- a/.github/workflows/swift-format.yml +++ b/.github/workflows/swift-format.yml @@ -52,7 +52,7 @@ jobs: echo "/opt/swift/usr/bin" >> "$GITHUB_PATH" - name: โ™ป๏ธ Cache swift-format binary id: swift-format-cache - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v4 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ~/.local/bin/swift-format key: swift-format-${{ runner.os }}-${{ env.SWIFT_FORMAT_VERSION }} diff --git a/.github/workflows/test-react-native-nightly.yml b/.github/workflows/test-react-native-nightly.yml index 160432ed4032c2..0625398cbccfa5 100644 --- a/.github/workflows/test-react-native-nightly.yml +++ b/.github/workflows/test-react-native-nightly.yml @@ -35,20 +35,20 @@ jobs: run: | brew install watchman || true - name: ๐Ÿ—๏ธ Setup pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿš€ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: latest - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 20 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ’Ž Setup Ruby - uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1 + uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1.312.0 with: ruby-version: 3.2.2 - name: ๐Ÿ’Ž Install Ruby gems @@ -103,20 +103,20 @@ jobs: - name: ๐Ÿงน Cleanup GitHub Linux runner disk space uses: ./.github/actions/cleanup-linux-disk-space - name: ๐Ÿ—๏ธ Setup pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿš€ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: latest - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 20 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ”จ Use JDK 17 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/test-suite-lint.yml b/.github/workflows/test-suite-lint.yml index 8946ddc60b2884..a29f2c336fc458 100644 --- a/.github/workflows/test-suite-lint.yml +++ b/.github/workflows/test-suite-lint.yml @@ -21,13 +21,13 @@ jobs: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: โฌข Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --ignore-scripts --frozen-lockfile diff --git a/.github/workflows/test-suite-macos.yml b/.github/workflows/test-suite-macos.yml index 5581073557f1e9..c4b733cdec8a5e 100644 --- a/.github/workflows/test-suite-macos.yml +++ b/.github/workflows/test-suite-macos.yml @@ -64,18 +64,18 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ’Ž Setup Ruby and install gems - uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1 + uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1.312.0 with: bundler-cache: true ruby-version: 3.2.2 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches diff --git a/.github/workflows/test-suite-nightly.yml b/.github/workflows/test-suite-nightly.yml index 067914069e0832..c6646f691201ed 100644 --- a/.github/workflows/test-suite-nightly.yml +++ b/.github/workflows/test-suite-nightly.yml @@ -26,7 +26,7 @@ jobs: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: 1.x - name: ๐Ÿ”จ Switch to Xcode 26.4.1 @@ -37,18 +37,18 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ’Ž Setup Ruby and install gems - uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1 + uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1.312.0 with: bundler-cache: true ruby-version: 3.2.2 - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches @@ -93,7 +93,7 @@ jobs: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: 1.x - name: ๐Ÿ”จ Switch to Xcode 26.4.1 @@ -101,7 +101,7 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐ŸŒ  Download builds - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v4 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: bare-expo-ios-builds path: apps/bare-expo/ios/build/BareExpo.app @@ -117,13 +117,13 @@ jobs: curl -Ls "https://get.maestro.mobile.dev" | bash echo "${HOME}/.maestro/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches @@ -162,24 +162,24 @@ jobs: - name: ๐Ÿงน Cleanup GitHub Linux runner disk space uses: ./.github/actions/cleanup-linux-disk-space - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: 1.x - name: ๐Ÿ”จ Use JDK 17 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: distribution: 'temurin' java-version: '17' - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches @@ -223,11 +223,11 @@ jobs: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: 1.x - name: ๐ŸŒ  Download builds - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v4 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: bare-expo-android-builds path: apps/bare-expo/android/app/build/outputs/apk @@ -239,13 +239,13 @@ jobs: curl -Ls "https://get.maestro.mobile.dev" | MAESTRO_VERSION=2.4.0 bash echo "${HOME}/.maestro/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml index d3bc0fe248d66c..15b257d6d2608b 100644 --- a/.github/workflows/test-suite.yml +++ b/.github/workflows/test-suite.yml @@ -146,7 +146,7 @@ jobs: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: 1.x - name: ๐Ÿ”จ Switch to Xcode 26.4.1 @@ -157,20 +157,20 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ’Ž Setup Ruby and install gems - uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1 + uses: ruby/setup-ruby@12fd324f1d0b43274fdc8130f6980590a667c455 # v1.312.0 with: bundler-cache: true ruby-version: 3.2.2 - name: Setup ccache uses: ./.github/actions/setup-ccache - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches @@ -199,14 +199,14 @@ jobs: echo base-commit=$(git log -n 1 main --pretty=format:'%H' -- .github/workflows/test-suite.yml apps/bare-expo apps/test-suite packages pnpm-lock.yaml) >> "$GITHUB_OUTPUT" - name: ๐Ÿ“น Check fingerprint id: fingerprint - uses: expo/actions/fingerprint@d56a519244cfad3b09a73b4b485a1de7f44590cd # main + uses: expo/actions/fingerprint@150c682164cec02a2d43347b70906d234d33f575 # main with: working-directory: apps/bare-expo previous-git-commit: ${{ steps.base-commit.outputs.base-commit }} fingerprint-state-output-file: ${{ runner.temp }}/fingerprint-state.json fingerprint-db-cache-path: .fingerprint.db - name: ๐Ÿ—๏ธ Build/Repack iOS project (bare-expo) - uses: expo/actions/repack-app-artifact@d56a519244cfad3b09a73b4b485a1de7f44590cd # main + uses: expo/actions/repack-app-artifact@150c682164cec02a2d43347b70906d234d33f575 # main timeout-minutes: 55 env: EXPO_DEBUG: 1 @@ -244,7 +244,7 @@ jobs: - name: ๐Ÿ‘€ Checkout uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: 1.x - name: ๐Ÿ”จ Switch to Xcode 26.4.1 @@ -252,7 +252,7 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐ŸŒ  Download builds - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v4 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: bare-expo-ios-builds path: apps/bare-expo/ios/build/BareExpo.app @@ -268,13 +268,13 @@ jobs: curl -Ls "https://get.maestro.mobile.dev" | bash echo "${HOME}/.maestro/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches @@ -353,11 +353,11 @@ jobs: - name: ๐Ÿงน Cleanup GitHub Linux runner disk space uses: ./.github/actions/cleanup-linux-disk-space - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: 1.x - name: ๐Ÿ”จ Use JDK 17 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: distribution: 'temurin' java-version: '17' @@ -366,13 +366,13 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches @@ -401,14 +401,14 @@ jobs: echo base-commit=$(git log -n 1 main --pretty=format:'%H' -- .github/workflows/test-suite.yml apps/bare-expo apps/test-suite packages pnpm-lock.yaml) >> "$GITHUB_OUTPUT" - name: ๐Ÿ“น Check fingerprint id: fingerprint - uses: expo/actions/fingerprint@d56a519244cfad3b09a73b4b485a1de7f44590cd # main + uses: expo/actions/fingerprint@150c682164cec02a2d43347b70906d234d33f575 # main with: working-directory: apps/bare-expo previous-git-commit: ${{ steps.base-commit.outputs.base-commit }} fingerprint-state-output-file: ${{ runner.temp }}/fingerprint-state.json fingerprint-db-cache-path: .fingerprint.db - name: ๐Ÿ—๏ธ Build/Repack Android project (bare-expo) - uses: expo/actions/repack-app-artifact@d56a519244cfad3b09a73b4b485a1de7f44590cd # main + uses: expo/actions/repack-app-artifact@150c682164cec02a2d43347b70906d234d33f575 # main timeout-minutes: 35 env: EXPO_DEBUG: 1 @@ -445,11 +445,11 @@ jobs: - name: ๐Ÿงน Cleanup GitHub Linux runner disk space uses: ./.github/actions/cleanup-linux-disk-space - name: ๐Ÿ—๏ธ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: 1.x - name: ๐ŸŒ  Download builds - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v4 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: bare-expo-android-builds path: apps/bare-expo/android/app/build/outputs/apk/release @@ -461,13 +461,13 @@ jobs: curl -Ls "https://get.maestro.mobile.dev" | MAESTRO_VERSION=2.4.0 bash echo "${HOME}/.maestro/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches diff --git a/.github/workflows/validate-npm-owners.yml b/.github/workflows/validate-npm-owners.yml index 78b31fc8aeb751..9bae3d469244e1 100644 --- a/.github/workflows/validate-npm-owners.yml +++ b/.github/workflows/validate-npm-owners.yml @@ -15,13 +15,13 @@ jobs: - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿ”จ Install pnpm - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 with: version: 10 - name: ๐Ÿ”จ Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --ignore-scripts --frozen-lockfile diff --git a/apps/bare-expo/e2e/TestSuite-test.native.js b/apps/bare-expo/e2e/TestSuite-test.native.js index f39060e4c7025a..13d8526b5688d2 100644 --- a/apps/bare-expo/e2e/TestSuite-test.native.js +++ b/apps/bare-expo/e2e/TestSuite-test.native.js @@ -1,8 +1,10 @@ /** - * The test cases for bare-expo E2E testing. - * When adding or removing tests, also update the paths in .github/workflows/test-suite.yml + * The test cases for bare-expo E2E testing. The Maestro flow is generated from this list + * (see `createMaestroFlowAsync`), so adding or removing an entry is all that's needed; each + * test must also be registered in `apps/test-suite/TestModules.ts` so the app can run it. */ const TESTS = [ + 'AppMetrics', 'Basic', // 'Asset', // 'FileSystem', diff --git a/apps/native-component-list/src/screens/AppMetricsScreen.tsx b/apps/native-component-list/src/screens/AppMetricsScreen.tsx index b39061ad171998..811878e3e4ab02 100644 --- a/apps/native-component-list/src/screens/AppMetricsScreen.tsx +++ b/apps/native-component-list/src/screens/AppMetricsScreen.tsx @@ -11,12 +11,14 @@ export default function AppMetricsScreen() { useFocusEffect( React.useCallback(() => { - let cancelled = false; - AppMetrics.getMainSession().then((s) => { - if (!cancelled) setMetrics(s?.metrics ?? []); - }); + let canceled = false; + AppMetrics.getMainSession() + .getMetrics() + .then((m) => { + if (!canceled) setMetrics(m); + }); return () => { - cancelled = true; + canceled = true; }; }, []) ); @@ -24,7 +26,7 @@ export default function AppMetricsScreen() { const onRefresh = React.useCallback(async () => { setRefreshing(true); try { - setMetrics((await AppMetrics.getMainSession())?.metrics ?? []); + setMetrics(await AppMetrics.getMainSession().getMetrics()); } finally { setRefreshing(false); } diff --git a/apps/observe-tester/app/(tabs)/(sessions)/sessions/[id].tsx b/apps/observe-tester/app/(tabs)/(sessions)/sessions/[id].tsx index 1c2d658121b5e7..7d9ac9472152b9 100644 --- a/apps/observe-tester/app/(tabs)/(sessions)/sessions/[id].tsx +++ b/apps/observe-tester/app/(tabs)/(sessions)/sessions/[id].tsx @@ -1,4 +1,4 @@ -import AppMetrics, { type Session } from 'expo-app-metrics'; +import AppMetrics, { type DebugSession } from 'expo-app-metrics'; import { useFocusEffect, useLocalSearchParams } from 'expo-router'; import { useCallback, useState } from 'react'; @@ -6,7 +6,7 @@ import { SessionDetail } from '@/components/SessionDetail'; export default function InactiveSessionScreen() { const { id } = useLocalSearchParams<{ id: string }>(); - const [session, setSession] = useState(null); + const [session, setSession] = useState(null); const [loaded, setLoaded] = useState(false); useFocusEffect( diff --git a/apps/observe-tester/app/(tabs)/(sessions)/sessions/foreground.tsx b/apps/observe-tester/app/(tabs)/(sessions)/sessions/foreground.tsx index c759e20d390810..11d2a5261e85de 100644 --- a/apps/observe-tester/app/(tabs)/(sessions)/sessions/foreground.tsx +++ b/apps/observe-tester/app/(tabs)/(sessions)/sessions/foreground.tsx @@ -1,11 +1,11 @@ -import AppMetrics, { type Session } from 'expo-app-metrics'; +import AppMetrics, { type DebugSession } from 'expo-app-metrics'; import { useFocusEffect } from 'expo-router'; import { useCallback, useState } from 'react'; import { SessionDetail, liveSessionToRecord } from '@/components/SessionDetail'; export default function ForegroundSessionScreen() { - const [session, setSession] = useState(null); + const [session, setSession] = useState(null); const [loaded, setLoaded] = useState(false); useFocusEffect( diff --git a/apps/observe-tester/app/(tabs)/(sessions)/sessions/index.tsx b/apps/observe-tester/app/(tabs)/(sessions)/sessions/index.tsx index 33b5c0805ffc8f..5abc481f785348 100644 --- a/apps/observe-tester/app/(tabs)/(sessions)/sessions/index.tsx +++ b/apps/observe-tester/app/(tabs)/(sessions)/sessions/index.tsx @@ -1,4 +1,4 @@ -import AppMetrics, { type Session, type SessionType } from 'expo-app-metrics'; +import AppMetrics, { type DebugSession, type Session, type SessionType } from 'expo-app-metrics'; import { useObserve } from 'expo-observe'; import { type Href, router, Stack, useFocusEffect } from 'expo-router'; import { useCallback, useEffect, useState } from 'react'; @@ -50,9 +50,9 @@ export default function SessionsList() { AppMetrics.getMainSession(), AppMetrics.getForegroundSession(), ]); - const active = live - .filter((session): session is Session => session != null) - .map(liveSessionToRow); + const active = await Promise.all( + live.filter((session): session is Session => session != null).map(liveSessionToRow) + ); const records = await AppMetrics.getInactiveSessions(); const inactive: SessionRowData[] = records @@ -143,20 +143,20 @@ export default function SessionsList() { ); } -function liveSessionToRow(session: Session): SessionRowData { +async function liveSessionToRow(session: Session): Promise { return { id: session.id, type: session.type, startDate: session.startDate, endDate: null, isActive: true, - metricCount: session.metrics.length, + metricCount: (await session.getMetrics()).length, crashed: false, href: `/sessions/${session.type}`, }; } -function inactiveSessionToRow(session: Session): SessionRowData { +function inactiveSessionToRow(session: DebugSession): SessionRowData { return { id: session.id, type: session.type, @@ -164,7 +164,7 @@ function inactiveSessionToRow(session: Session): SessionRowData { endDate: session.endDate ?? null, isActive: false, metricCount: session.metrics.length, - crashed: 'crashReport' in session ? !!session.crashReport : false, + crashed: !!session.crashReport, href: `/sessions/${session.id}`, }; } diff --git a/apps/observe-tester/app/(tabs)/(sessions)/sessions/main.tsx b/apps/observe-tester/app/(tabs)/(sessions)/sessions/main.tsx index 7b05be5c63c696..1b6e2b23f3ed8c 100644 --- a/apps/observe-tester/app/(tabs)/(sessions)/sessions/main.tsx +++ b/apps/observe-tester/app/(tabs)/(sessions)/sessions/main.tsx @@ -1,19 +1,20 @@ -import AppMetrics, { type Session } from 'expo-app-metrics'; +import AppMetrics, { type DebugSession } from 'expo-app-metrics'; import { useFocusEffect } from 'expo-router'; import { useCallback, useState } from 'react'; import { SessionDetail, liveSessionToRecord } from '@/components/SessionDetail'; export default function MainSessionScreen() { - const [session, setSession] = useState(null); + const [session, setSession] = useState(null); const [loaded, setLoaded] = useState(false); useFocusEffect( useCallback(() => { let cancelled = false; - AppMetrics.getMainSession().then((mainSession) => { + const mainSession = AppMetrics.getMainSession(); + liveSessionToRecord(mainSession).then((record) => { if (cancelled) return; - setSession(mainSession ? liveSessionToRecord(mainSession) : null); + setSession(record); setLoaded(true); }); return () => { diff --git a/apps/observe-tester/app/(tabs)/debug/index.tsx b/apps/observe-tester/app/(tabs)/debug/index.tsx index 7225821f7fd1da..e4722d65d787c1 100644 --- a/apps/observe-tester/app/(tabs)/debug/index.tsx +++ b/apps/observe-tester/app/(tabs)/debug/index.tsx @@ -45,13 +45,28 @@ export default function Debug() {