Skip to content

Commit

Permalink
test: clone and run wdio-android test (#54)
Browse files Browse the repository at this point in the history
  • Loading branch information
saikrishna321 authored Jul 13, 2024
1 parent 5f8b024 commit eef6fd6
Show file tree
Hide file tree
Showing 8 changed files with 27,722 additions and 30,729 deletions.
66 changes: 61 additions & 5 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,14 @@ version: 2.1
# Define a job to be invoked later in a workflow.
# See: https://circleci.com/docs/jobs-steps/#jobs-overview & https://circleci.com/docs/configuration-reference/#jobs
jobs:
build:
WDIO_IOS:
# Specify the execution environment.
# See: https://circleci.com/docs/executor-intro/ & https://circleci.com/docs/configuration-reference/#executor-job
macos:
# Specify the Xcode version you desire here
# See: https://circleci.com/docs/using-macos/
xcode: 15.2.0

# Add steps to the job
# See: https://circleci.com/docs/jobs-steps/#steps-overview & https://circleci.com/docs/configuration-reference/#steps
steps:
# Checkout the code as the first step.
Expand All @@ -33,6 +32,10 @@ jobs:
asset_urls=$(echo "$release_info" | grep "browser_download_url" | cut -d '"' -f 4)
ios_app=$(echo "$asset_urls" | tail -n 1)
echo "$ios_app"
curl -LO $ios_app
echo 'export APP_PATH=$CIRCLE_WORKING_DIRECTORY/ios.zip' >> $BASH_ENV
echo $pwd
echo ls
nvm install v20.2.0 && nvm alias default 20.2.0
node -v
target_sim_id=$(xcrun simctl list devices available | grep "iPhone 14" | cut -d "(" -f2 | cut -d ")" -f1 | head -n 1)
Expand All @@ -43,7 +46,7 @@ jobs:
npm install -g appium
npm ci
npm run build
appium driver run xcuitest build-wda
appium driver run xcuitest build-wda
wda=$(ls -d /Users/distiller/Library/Developer/Xcode/DerivedData/WebDriverAgent*)
echo $wda
echo 'export WDA_PATH=$wda' >> $BASH_ENV
Expand All @@ -52,15 +55,68 @@ jobs:
xcrun simctl install $target_sim_id $wda/Build/Products/Debug-iphonesimulator/WebDriverAgentRunner-Runner.app
xcrun simctl launch $target_sim_id "com.facebook.WebDriverAgentRunner.xctrunner"
mkdir appium-logs
UDID=$target_sim_id APP_PATH=$ios_app npm run wdio-ios
git clone https://github.com/AppiumTestDistribution/flutter-finder.git
UDID=$target_sim_id APP_PATH=$ios_app npm run wdio-ios-ci
- store_artifacts:
path: appium-logs
JAVA_IOS:
# Specify the execution environment.
# See: https://circleci.com/docs/executor-intro/ & https://circleci.com/docs/configuration-reference/#executor-job
# Add steps to the job
# See: https://circleci.com/docs/jobs-steps/#steps-overview & https://circleci.com/docs/configuration-reference/#steps
macos:
# Specify the Xcode version you desire here
# See: https://circleci.com/docs/using-macos/
xcode: 15.2.0
steps:
# Checkout the code as the first step.
- checkout
- run: xcrun simctl list devices available
- run:
name: Node Version
command: |
nvm install v20.2.0 && nvm alias default 20.2.0
- run:
name: Install Appium and Run iOS Test
command: |
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)
ios_app=$(echo "$asset_urls" | tail -n 1)
echo "$ios_app"
curl -LO $ios_app
echo 'export APP_PATH=$CIRCLE_WORKING_DIRECTORY/ios.zip' >> $BASH_ENV
echo $APP_PATH
nvm install v20.2.0 && nvm alias default 20.2.0
node -v
target_sim_id=$(xcrun simctl list devices available | grep "iPhone 14" | cut -d "(" -f2 | cut -d ")" -f1 | head -n 1)
echo $target_sim_id
echo 'export UDID=$target_sim_id' >> $BASH_ENV
xcrun simctl boot $target_sim_id
xcrun simctl bootstatus $target_sim_id -b
npm install -g appium
npm ci
npm run build
appium driver run xcuitest build-wda
wda=$(ls -d /Users/distiller/Library/Developer/Xcode/DerivedData/WebDriverAgent*)
echo $wda
echo 'export WDA_PATH=$wda' >> $BASH_ENV
echo ${WDA_PATH}
echo ${PROJECT_ENV_VAR}
xcrun simctl install $target_sim_id $wda/Build/Products/Debug-iphonesimulator/WebDriverAgentRunner-Runner.app
xcrun simctl launch $target_sim_id "com.facebook.WebDriverAgentRunner.xctrunner"
mkdir appium-logs
git clone https://github.com/AppiumTestDistribution/flutter-finder.git
cd flutter-finder/flutter-by/java
UDID=$target_sim_id APP_PATH=$ios_app Platform=ios ./gradlew clean test --debug
- store_artifacts:
path: flutter-finder/flutter-by/java/appium.log
# Orchestrate jobs using workflows
# See: https://circleci.com/docs/workflows/ & https://circleci.com/docs/configuration-reference/#workflows
workflows:
ios: # This is the name of the workflow, feel free to change it to better match your workflow.
# Inside the workflow, you define the jobs you want to run.
jobs:
- build
- WDIO_IOS
- JAVA_IOS
101 changes: 95 additions & 6 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

name: Appium Flutter Integration Driver
jobs:
Build_Server:
Android_E2E_WDIO:
runs-on: ubuntu-latest
strategy:
matrix:
Expand Down Expand Up @@ -48,6 +48,18 @@ jobs:
run: |
npm install
npm run prettier-check
- name: Build Driver
run: |
npm run build
- name: Install Drivers
run: |
npm install -g appium
appium driver list
- name: Checkout Test from Flutter Finder
uses: actions/checkout@v2
with:
repository: AppiumTestDistribution/flutter-finder
path: finder
- name: run tests
uses: reactivecircus/android-emulator-runner@v2
with:
Expand All @@ -59,19 +71,96 @@ jobs:
echo ${{ env }}
adb devices
node --version
npm install -g wait-on
npm install -g appium
npm install
npm run build
echo ${{ github.workspace }}
ls ${{ github.workspace }}/finder -R
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
APP_PATH=${{ env.APP_PATH }} npm run wdio-android-ci
# 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
npm run prettier-check
- name: Build Driver
run: |
npm run build
- name: Install Drivers
run: |
npm install -g appium
appium driver list
- name: Checkout Test from Flutter Finder
uses: actions/checkout@v2
with:
repository: AppiumTestDistribution/flutter-finder
path: finder
- name: run tests
uses: reactivecircus/android-emulator-runner@v2
with:
working-directory: ${{ github.workspace }}/finder/flutter-by/java
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
arch: x86_64
profile: Nexus 6
script: |
echo ${{ env }}
adb devices
node --version
echo ${{ github.workspace }}
ls ${{ github.workspace }}/finder -R
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 }}/appium-logs
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

flutter-finder
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

Expand Down
Loading

0 comments on commit eef6fd6

Please sign in to comment.