Skip to content

feat: Appium 3 support #5

feat: Appium 3 support

feat: Appium 3 support #5

Workflow file for this run

on:
pull_request:
name: Appium Flutter Integration Driver with Appium 3
jobs:
Android_E2E_WDIO:
runs-on: ubuntu-latest
strategy:
matrix:
api-level: [35]
target: [google_apis]
steps:
- name: Check out my other private repo
uses: actions/checkout@master
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Android SDK
uses: android-actions/[email protected]
- name: 'List files'
run: |
release_info=$(curl -s https://api.github.com/repos/AppiumTestDistribution/appium-flutter-server/releases/latest)
asset_urls=$(echo "$release_info" | grep "browser_download_url" | cut -d '"' -f 4)
android_app=$(echo "$asset_urls" | head -n 1)
echo "$android_app"
ios_app=$(echo "$asset_urls" | tail -n 1)
echo "$ios_app"
curl -LO $android_app
ls ${{ github.workspace }}
echo "APP_PATH=${{ github.workspace }}/app-debug.apk" >> $GITHUB_ENV
- uses: actions/setup-node@v4
with:
node-version: 22
- name: Enable KVM group perms
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: Linting
run: |
npm run build-flutter-by-service
npm install --no-package-lock
npm run prettier-check
- name: Build Driver
run: |
npm run build
- name: Install Drivers
run: |
npm install -g appium
appium driver list
- name: run tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
arch: x86_64
profile: Nexus 6
script: |
echo ${{ env }}
adb devices
appium driver list
mkdir ${{ github.workspace }}/appium-logs
adb logcat > ${{ github.workspace }}/appium-logs/flutter.txt &
echo $android_app
APP_PATH=${{ env.APP_PATH }} npm run wdio-android
# appium server -pa=/wd/hub & wait-on http://127.0.0.1:4723/wd/hub/status &&
- name: upload appium logs
if: always()
uses: actions/upload-artifact@v4
with:
name: appium-logs
path: ${{ github.workspace }}/appium-logs
# Android_E2E_JAVA:
# runs-on: ubuntu-latest
# strategy:
# matrix:
# api-level: [ 29 ]
# target: [ google_apis ]
# steps:
# - name: Check out my other private repo
# uses: actions/checkout@master
# - name: Set up JDK 17
# uses: actions/setup-java@v3
# with:
# java-version: '17'
# distribution: 'adopt'
# - name: Setup Android SDK
# uses: android-actions/[email protected]
# - name: 'List files'
# run: |
# release_info=$(curl -s https://api.github.com/repos/AppiumTestDistribution/appium-flutter-server/releases/latest)
# asset_urls=$(echo "$release_info" | grep "browser_download_url" | cut -d '"' -f 4)
# android_app=$(echo "$asset_urls" | head -n 1)
# echo "$android_app"
# ios_app=$(echo "$asset_urls" | tail -n 1)
# echo "$ios_app"
# curl -LO $android_app
# ls ${{ github.workspace }}
# echo "APP_PATH=${{ github.workspace }}/app-debug.apk" >> $GITHUB_ENV
# - uses: actions/setup-node@v4
# with:
# node-version: 20
# - name: Enable KVM group perms
# 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: Linting
# run: |
# npm install --no-package-lock
# npm run prettier-check
# - name: Build Driver
# run: |
# npm run build
# - name: Install Drivers
# run: |
# npm install -g [email protected]
# appium driver list
# - name: run tests
# uses: reactivecircus/android-emulator-runner@v2
# with:
# api-level: ${{ matrix.api-level }}
# target: ${{ matrix.target }}
# arch: x86_64
# profile: Nexus 6
# script: |
# echo ${{ env }}
# adb devices
# node --version
# appium driver list
# mkdir ${{ github.workspace }}/appium-logs
# adb logcat > ${{ github.workspace }}/appium-logs/flutter.txt &
# echo $android_app
# ls
# APP_PATH=${{ env.APP_PATH }} Platform=android ./gradlew clean test
# # appium server -pa=/wd/hub & wait-on http://127.0.0.1:4723/wd/hub/status &&
# - name: upload appium logs
# if: always()
# uses: actions/upload-artifact@v4
# with:
# name: appium-logs-java
# path: ${{ github.workspace }}/finder/flutter-by/java/appium.log