Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .github/workflows/android-e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Android E2E (Reusable)

on:
workflow_call:
inputs:
target:
description: "TARGET_SDK value (min/max/custom)"
required: true
type: string
runs_on:
description: "GitHub runner label"
required: false
type: string
default: "ubuntu-latest"

jobs:
android-e2e:
runs-on: ${{ inputs.runs_on }}
env:
ANALYTICS_CI_DEBUG: "1"
EMU_HEADLESS: 1
AVD_ABI: x86_64
steps:
- uses: actions/checkout@v4
- name: Aggressive disk cleanup (Ubuntu)
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/local/share/boost
sudo rm -rf /usr/local/share/chromium
sudo rm -rf /usr/local/share/powershell
sudo rm -rf /usr/local/share/edge_driver
sudo rm -rf /usr/local/share/gecko_driver
sudo rm -rf /usr/local/share/phantomjs
sudo rm -rf "$HOME/.cache"
df -H
- name: Resolve devbox config
run: |
case "${{ inputs.target }}" in
min|max)
echo "DEVBOX_CONFIG=shells/android-${{ inputs.target }}/devbox.json" >> "$GITHUB_ENV"
;;
*)
echo "Unsupported target '${{ inputs.target }}' for CI. Use min or max." >&2
exit 1
;;
esac
- name: devbox installer
uses: jetify-com/devbox-install-action@v0.14.0
with:
project-path: ${{ env.DEVBOX_CONFIG }}
enable-cache: 'false'
- name: Android E2E Tests
run: devbox run --pure --config=${{ env.DEVBOX_CONFIG }} test-android
94 changes: 14 additions & 80 deletions .github/workflows/ci-e2e-full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,104 +4,38 @@ on:
schedule:
- cron: '0 6 * * *'
workflow_dispatch:
pull_request:

concurrency:
group: e2e-full-${{ github.ref }}
cancel-in-progress: false

jobs:
run-e2e-ios:
runs-on: macos-26
env:
YARN_ENABLE_HARDENED_MODE: 0
XCODE_VERSION: '26.2'
strategy:
matrix:
include:
- name: ios-min
target: min
runs_on: macos-14
- name: ios-latest
steps:
- uses: actions/checkout@v4
- name: Aggressive disk cleanup (macOS)
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf "/usr/local/share/boost"
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
sudo rm -rf /Applications/Android\ Studio.app
sudo rm -rf /usr/local/share/miniconda
sudo rm -rf /opt/homebrew
sudo rm -rf "$HOME/Library/Android"
sudo rm -rf "$HOME/.gradle"
sudo rm -rf "$HOME/Library/Developer/CoreSimulator/Devices"
sudo rm -rf "$HOME/Library/Developer/Xcode/DerivedData"
df -H
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '26.2'
- name: devbox installer
uses: jetify-com/devbox-install-action@v0.14.0
with:
project-path: shells/devbox-ios.json
enable-cache: 'false'
- name: Resolve iOS targets
run: |
. scripts/platform-versions.sh
if [ "${{ matrix.name }}" = "ios-min" ]; then
echo "DETOX_IOS_DEVICE=${PLATFORM_IOS_MIN_DEVICE}" >> "$GITHUB_ENV"
echo "IOS_RUNTIME=${PLATFORM_IOS_MIN_RUNTIME}" >> "$GITHUB_ENV"
else
echo "DETOX_IOS_DEVICE=${PLATFORM_IOS_MAX_DEVICE}" >> "$GITHUB_ENV"
echo "IOS_RUNTIME=${PLATFORM_IOS_MAX_RUNTIME}" >> "$GITHUB_ENV"
fi
- name: iOS E2E Tests
run: devbox run --config=shells/devbox-ios.json test-ios
target: max
runs_on: macos-26
uses: ./.github/workflows/ios-e2e.yml
with:
target: ${{ matrix.target }}
runs_on: ${{ matrix.runs_on }}
secrets: inherit

run-e2e-android:
runs-on: ubuntu-24.04-arm
env:
EMU_HEADLESS: 1
strategy:
matrix:
include:
- name: android-min
target: min
- name: android-latest
target: max
steps:
- uses: actions/checkout@v4
- name: Aggressive disk cleanup (Ubuntu)
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/local/share/boost
sudo rm -rf /usr/local/share/chromium
sudo rm -rf /usr/local/share/powershell
sudo rm -rf /usr/local/share/edge_driver
sudo rm -rf /usr/local/share/gecko_driver
sudo rm -rf /usr/local/share/phantomjs
sudo rm -rf "$HOME/.cache"
df -H
- name: devbox installer
uses: jetify-com/devbox-install-action@v0.14.0
with:
project-path: shells/devbox-android.json
enable-cache: 'false'
- name: Resolve Android targets
run: |
. scripts/platform-versions.sh
if [ "${{ matrix.target }}" = "min" ]; then
api="$PLATFORM_ANDROID_MIN_API"
device="$PLATFORM_ANDROID_MIN_DEVICE"
else
api="$PLATFORM_ANDROID_MAX_API"
device="$PLATFORM_ANDROID_MAX_DEVICE"
fi
avd_name="${device}_API${api}_arm64_v8a"
echo "DETOX_AVD=${avd_name}" >> "$GITHUB_ENV"
- name: Android E2E Tests
run: devbox run --config=shells/devbox-android.json test-android
uses: ./.github/workflows/android-e2e.yml
with:
target: ${{ matrix.target }}
secrets: inherit
78 changes: 8 additions & 70 deletions .github/workflows/ci-e2e-latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,75 +9,13 @@ concurrency:

jobs:
run-e2e-ios:
runs-on: macos-26
env:
YARN_ENABLE_HARDENED_MODE: 0
XCODE_VERSION: '26.2'
steps:
- uses: actions/checkout@v4
- name: Aggressive disk cleanup (macOS)
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf "/usr/local/share/boost"
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
sudo rm -rf /Applications/Android\ Studio.app
sudo rm -rf /usr/local/share/miniconda
sudo rm -rf /opt/homebrew
sudo rm -rf "$HOME/Library/Android"
sudo rm -rf "$HOME/.gradle"
sudo rm -rf "$HOME/Library/Developer/CoreSimulator/Devices"
sudo rm -rf "$HOME/Library/Developer/Xcode/DerivedData"
df -H
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '26.2'
- name: devbox installer
uses: jetify-com/devbox-install-action@v0.14.0
with:
project-path: shells/devbox-ios.json
enable-cache: 'false'
- name: Resolve iOS targets
run: |
. scripts/platform-versions.sh
echo "DETOX_IOS_DEVICE=${PLATFORM_IOS_MAX_DEVICE}" >> "$GITHUB_ENV"
echo "IOS_RUNTIME=${PLATFORM_IOS_MAX_RUNTIME}" >> "$GITHUB_ENV"
- name: iOS E2E Tests (latest)
run: devbox run --config=shells/devbox-ios.json test-ios
uses: ./.github/workflows/ios-e2e.yml
with:
target: max
secrets: inherit

run-e2e-android:
runs-on: ubuntu-24.04-arm
env:
EMU_HEADLESS: 1
steps:
- uses: actions/checkout@v4
- name: Aggressive disk cleanup (Ubuntu)
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/local/share/boost
sudo rm -rf /usr/local/share/chromium
sudo rm -rf /usr/local/share/powershell
sudo rm -rf /usr/local/share/edge_driver
sudo rm -rf /usr/local/share/gecko_driver
sudo rm -rf /usr/local/share/phantomjs
sudo rm -rf "$HOME/.cache"
df -H
- name: devbox installer
uses: jetify-com/devbox-install-action@v0.14.0
with:
project-path: shells/devbox-android.json
enable-cache: 'false'
- name: Resolve Android targets
run: |
. scripts/platform-versions.sh
api="$PLATFORM_ANDROID_MAX_API"
device="$PLATFORM_ANDROID_MAX_DEVICE"
avd_name="${device}_API${api}_arm64_v8a"
echo "DETOX_AVD=${avd_name}" >> "$GITHUB_ENV"
- name: Android E2E Tests (latest)
run: devbox run --config=shells/devbox-android.json test-android
uses: ./.github/workflows/android-e2e.yml
with:
target: max
secrets: inherit
4 changes: 2 additions & 2 deletions .github/workflows/ci-fast.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: devbox installer
uses: jetify-com/devbox-install-action@v0.14.0
with:
project-path: shells/devbox-fast.json
project-path: shells/minimal/devbox.json
enable-cache: 'false'
- name: build
run: devbox run --config=shells/devbox-fast.json build
run: devbox run --pure --config=shells/minimal/devbox.json build
Loading
Loading