Skip to content

Updated workflow flow #64

Updated workflow flow

Updated workflow flow #64

# GitHub Actions Workflow for Appium Java Android Application Automation
# This GitHub Actions workflow is designed to build a Maven project and execute Appium tests using an Android mobile device.
# The automation project utilizes TestNG, Appium, Maven, and Java as its core technologies.
# For more details on building and testing Java projects with Maven using GitHub Actions, please refer to the official documentation:
# https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Appium Java Android Application Automation CI
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'
jobs:
build:
runs-on: macos-latest
steps:
- name: Checkout code
- uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install Appium server and Appium android driver
run: |
npm install -g appium
appium -v
appium driver install uiautomator2
- 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
stages:
- name: smoke-test
runs-on: ubuntu-latest
needs: build
steps:
- name: Start Appium server
run: |
appium &>/dev/null &
- name: Execute Android smoke test suite
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 29
script: mvn clean test -Pandroid,qa,smoke-test
- name: Archive smoke test reports
if: always()
uses: actions/upload-artifact@v4
with:
name: smoke-test-reports
path: reports
- name: regression-test
runs-on: ubuntu-latest
needs: smoke-test
steps:
- name: Start Appium server
run: |
appium &>/dev/null &
- name: Execute Android regression test suite
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 29
script: mvn clean test -Pandroid,qa,regression-test
- name: Archive regression test reports
if: always()
uses: actions/upload-artifact@v4
with:
name: regression-test-reports
path: reports