Files
everything-is-suitable/everything-is-suitable-uniapp/.github/workflows/mobile-test.yml
T
张翔 08ea5fbe98 feat(admin): 添加用户管理相关文件
添加用户管理视图、API和状态管理文件
2026-03-28 14:37:29 +08:00

138 lines
3.3 KiB
YAML

name: Mobile Test
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
workflow_dispatch:
jobs:
mobile-test-android:
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8
- name: Install dependencies
run: pnpm install
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Create Android virtual device
run: |
echo "y" | sdkmanager "system-images;android-30;google_apis;x86_64"
echo "no" | avdmanager create avd -n test_device -k "system-images;android-30;google_apis;x86_64" --force
- name: Start Android emulator
run: |
emulator -avd test_device -no-audio -no-window -no-snapshot -gpu swiftshader_indirect &
adb wait-for-device
adb shell input keyevent 82
- name: Build Android app
run: pnpm run build:app
- name: Install Appium
run: |
npm install -g appium@2.11.3
appium driver install uiautomator2
- name: Start Appium server
run: |
appium --port 4723 --relaxed-security &
sleep 10
- name: Run Android tests
run: pnpm run test:mobile:android
continue-on-error: true
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: android-test-results
path: test-results/mobile/
retention-days: 30
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v4
with:
name: android-screenshots
path: test-results/mobile/screenshots/
retention-days: 30
mobile-test-ios:
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8
- name: Install dependencies
run: pnpm install
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.0'
- name: Start iOS simulator
run: |
xcrun simctl boot "iPhone 15" || true
xcrun simctl list devices
- name: Build iOS app
run: pnpm run build:app
- name: Install Appium
run: |
npm install -g appium@2.11.3
appium driver install xcuitest
- name: Start Appium server
run: |
appium --port 4723 --relaxed-security &
sleep 10
- name: Run iOS tests
run: pnpm run test:mobile:ios
continue-on-error: true
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: ios-test-results
path: test-results/mobile/
retention-days: 30
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v4
with:
name: ios-screenshots
path: test-results/mobile/screenshots/
retention-days: 30