Skip to content

chore: unskip e2e tests #657

chore: unskip e2e tests

chore: unskip e2e tests #657

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: read
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v6.0.0
- name: Setup Node.js
uses: actions/setup-node@v6.0.0
with:
node-version: "24"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
fastlane-validate:
name: Fastlane Metadata
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v6.0.0
- name: Validate
uses: ashutoshgngwr/validate-fastlane-supply-metadata@v2.1.0
with:
usePlayStoreLocales: true
ios-detox:
name: "iOS Detox (build + test)"
runs-on: depot-macos-15
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v6.0.0
- name: Setup Xcode 26.0
run: |
sudo xcode-select -s /Applications/Xcode_26.0.app/Contents/Developer
xcodebuild -version
sudo xcodebuild -runFirstLaunch
xcrun simctl list runtimes
if ! xcrun simctl list runtimes | grep -q "iOS"; then
sudo xcodebuild -downloadPlatform iOS
fi
- name: Setup Node.js
uses: actions/setup-node@v6.0.0
with:
node-version: "24"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Setup Expo
run: npx expo install
- name: Prebuild iOS
run: npx expo prebuild --platform ios --clean
- name: Build Detox framework cache
run: npx detox build-framework-cache
- name: Build
run: npx detox build --configuration ios.sim.release
- name: Install applesimutils
run: brew tap wix/brew && brew install applesimutils
- name: Setup evcc daemon
run: |
brew tap evcc-io/tap
brew update
brew install evcc
sudo evcc --disable-auth &
- name: Setup Caddy
run: |
curl -sS https://webi.sh/caddy | sh
source ~/.config/envman/PATH.env
caddy run &
- name: Test
run: npx detox test --configuration ios.sim.release --cleanup --headless
- name: Upload artifacts on failure
if: failure()
uses: actions/upload-artifact@v5.0.0
with:
name: ios-detox-artifacts
path: e2e/artifacts/
retention-days: 7
android-build:
name: "Android Detox (build)"
runs-on: depot-ubuntu-24.04-32
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v6.0.0
- name: Setup Node.js
uses: actions/setup-node@v6.0.0
with:
node-version: "24"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Setup Expo
run: npx expo install
- name: Prebuild Android
run: npx expo prebuild --platform android --clean
- name: Setup Java
uses: actions/setup-java@v5.0.0
with:
distribution: "temurin"
java-version: "17"
- name: Gradle cache
uses: gradle/actions/setup-gradle@v5
- name: Build
run: npx detox build --configuration android.emu.release
- name: Upload app apk
uses: actions/upload-artifact@v5.0.0
with:
name: app-release.apk
path: android/app/build/outputs/apk/release/app-release.apk
if-no-files-found: error
retention-days: 7
- name: Upload detox apk
uses: actions/upload-artifact@v5.0.0
with:
name: app-release-androidTest.apk
path: android/app/build/outputs/apk/androidTest/release/app-release-androidTest.apk
if-no-files-found: error
retention-days: 7
android-test:
name: "Android Detox (test)"
runs-on: ubuntu-latest
timeout-minutes: 20
needs: android-build
strategy:
matrix:
api-level: [34]
steps:
- name: Checkout
uses: actions/checkout@v6.0.0
- name: Setup Node.js
uses: actions/setup-node@v6.0.0
with:
node-version: "24"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Setup Expo
run: npx expo install
- name: Prebuild Android
run: npx expo prebuild --platform android --clean
- name: Download app apk
uses: actions/download-artifact@v6.0.0
with:
name: app-release.apk
path: android/app/build/outputs/apk/release
- name: Download detox apk
uses: actions/download-artifact@v6.0.0
with:
name: app-release-androidTest.apk
path: android/app/build/outputs/apk/androidTest/release
- name: Install system dependencies for android emulator
run: |
sudo apt-get update
sudo apt-get install -y libpulse0
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Setup evcc daemon
run: |
curl -1sLf 'https://dl.evcc.io/public/evcc/stable/setup.deb.sh' | sudo -E bash
sudo apt update
sudo apt install -y evcc
sudo systemctl stop evcc
sudo evcc --disable-auth --database /var/lib/evcc/evcc.db &
- name: Setup Caddy
run: |
curl -sS https://webi.sh/caddy | sh
caddy run &
- name: Test
uses: reactivecircus/android-emulator-runner@v2.35.0
with:
api-level: ${{ matrix.api-level }}
disk-size: 1G
heap-size: 1G
force-avd-creation: false
target: google_apis
arch: x86_64
disable-animations: true
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
script: npx detox test --configuration android.emu.release --cleanup --headless
- name: Upload artifacts on failure
if: failure()
uses: actions/upload-artifact@v5.0.0
with:
name: android-detox-artifacts-api-level-${{ matrix.api-level }}
path: e2e/artifacts/
retention-days: 7