Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
2330ffa
Initial plan
Copilot Aug 29, 2025
8203cbc
Set up Appium 2 with uiautomator2 driver and basic test structure
Copilot Aug 29, 2025
bccadf1
Add driver management demo and finalize Appium 2 setup
Copilot Aug 29, 2025
46767a1
Merge branch 'main' into copilot/fix-3
Copilot Sep 11, 2025
9788b24
Successfully merge main branch into copilot/fix-3
Copilot Sep 11, 2025
9416355
Improve configuration with environment variables and better examples
Copilot Sep 11, 2025
a44cfbf
add tests & integrated with CI
Ebazhanov Sep 28, 2025
63ee208
upd readme fix CI
Ebazhanov Sep 28, 2025
de1e4a9
upd CI & add more artifacts
Ebazhanov Sep 28, 2025
4f43d3b
upd CI & add more artifacts
Ebazhanov Sep 28, 2025
f8220d8
fix ci
Ebazhanov Sep 28, 2025
ea08c69
fix ci & upd readme
Ebazhanov Sep 28, 2025
89945f9
rm failed tests & upd CI
Ebazhanov Sep 28, 2025
6ba72a8
upd CI
Ebazhanov Sep 28, 2025
b6726b1
upd yml file
Ebazhanov Sep 28, 2025
a3971dc
upd yml file
Ebazhanov Sep 28, 2025
b0ead64
upd yml file
Ebazhanov Sep 28, 2025
1c83b03
fix: sync package-lock.json with package.json
Ebazhanov Sep 28, 2025
25adb5e
upd yml file
Ebazhanov Sep 28, 2025
9692c97
attempt to fix ci
Ebazhanov Sep 28, 2025
84f1dab
attempt to fix ci #02
Ebazhanov Sep 28, 2025
a64be23
attempt to fix ci #02
Ebazhanov Sep 28, 2025
534655f
upd CI attempt to fix #03
Ebazhanov Sep 28, 2025
1f76ee6
Merge remote-tracking branch 'origin/copilot/fix-3' into copilot/fix-3
Ebazhanov Sep 28, 2025
73bca4b
attempt to fix ci #04
Ebazhanov Sep 28, 2025
29975e5
upd docs
Ebazhanov Sep 28, 2025
728502a
fixes
Ebazhanov Sep 28, 2025
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
11 changes: 11 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Appium Configuration Environment Variables
# Copy this file to .env and update with your values

# Path to your APK file for app testing
APP_PATH=./apps/sample-app.apk

# Device UDID for real device testing (get with 'adb devices')
DEVICE_UDID=your_device_udid_here

# Appium server URL (default: http://localhost:4723/wd/hub)
APPIUM_SERVER_URL=http://localhost:4723/wd/hub
97 changes: 97 additions & 0 deletions .github/workflows/android-appium.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: "🤖 Android Appium Tests"

on:
push:
branches-ignore:
- '**'
pull_request:
types: [opened, synchronize, reopened]
branches:
- main

jobs:
run-android-appium-suite:
name: "📲 Run Android Appium Suite"
runs-on: macos-latest
timeout-minutes: 60
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Cache npm dependencies
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-npm-cache-${{ hashFiles('package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-cache-

# Cache Android ARM64 system image only (API 33, google_apis, arm64-v8a)
- name: Cache Android system image (arm64-v8a)
uses: actions/cache@v4
with:
path: ~/Library/Android/sdk/system-images/android-33/google_apis/arm64-v8a
key: ${{ runner.os }}-android-system-image-33-google_apis-arm64-v8a
restore-keys: |
${{ runner.os }}-android-system-image-33-google_apis-arm64-v8a

# Cache the rest of the Android SDK (excluding system-images and emulator)
- name: Cache Android SDK (core)
uses: actions/cache@v4
with:
path: |
~/Library/Android/sdk/platforms
~/Library/Android/sdk/platform-tools
~/Library/Android/sdk/build-tools
key: ${{ runner.os }}-android-sdk-core-v1
restore-keys: |
${{ runner.os }}-android-sdk-core-v1

- name: Install Android SDK components (emulator + tools + arm64-v8a system image)
run: |
export ANDROID_SDK_ROOT=~/Library/Android/sdk
export ANDROID_HOME=~/Library/Android/sdk
yes | ~/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager --licenses
yes | ~/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager --install \
"platform-tools" \
"platforms;android-33" \
"build-tools;33.0.2" \
"emulator" \
"system-images;android-33;google_apis;arm64-v8a"

- name: Verify emulator installation
run: |
export ANDROID_SDK_ROOT=~/Library/Android/sdk
export ANDROID_HOME=~/Library/Android/sdk
ls -l ~/Library/Android/sdk/emulator || true
ls -l ~/Library/Android/sdk/emulator/lib64/qt || true
~/Library/Android/sdk/emulator/emulator -version || true

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install Appium and dependencies
run: |
npm install -g appium
npm install -g appium-doctor
npm ci

- name: Check package-lock.json is in sync with package.json
run: |
npm install --package-lock-only --ignore-scripts
git diff --exit-code package-lock.json || (echo "package-lock.json is not in sync with package.json. Please run 'npm install' and commit the updated lock file." && exit 1)

- name: Run full local CI-like workflow (AVD, emulator, Appium, tests)
run: |
./scripts/run-local-ci.sh
19 changes: 18 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,28 @@ build/
out/

# Test outputs
mochawesome-report/
test-results/
test-results.xml
allure-results/
allure-report/
screenshots/
videos/
logs/

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Coverage directory used by tools like istanbul
coverage/
*.lcov

# nyc test coverage
.nyc_output

# IDE files
.vscode/
.idea/
Expand Down Expand Up @@ -59,5 +74,7 @@ local.properties
*.dSYM

# Appium specific
.appium/
appium.log
*.log
*.log
test-results.xml
Loading
Loading