Update appium dependencies and add android CI tests #3
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Android CI test | |
| on: | |
| push: | |
| branches: [ master, master_appium ] | |
| pull_request: | |
| branches: [ master ] | |
| env: | |
| ANDROID_ARCH: x86_64 | |
| ANDROID_TARGET: google_apis_playstore | |
| API_LEVEL: 33 | |
| ANDROID_BUILD_TOOLS_VERSION: 33.0.2 | |
| ANDROID_SDK_PACKAGES: system-images;android-33;google_apis_playstore;x86_64 platforms;android-33 build-tools;33.0.2 platform-tools emulator | |
| EMULATOR_TIMEOUT: 350 | |
| EMULATOR_NAME: nexus | |
| jobs: | |
| android: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| strategy: | |
| matrix: | |
| java: [ '11' ] | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Set up Java ${{ matrix.java }} | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'corretto' | |
| java-version: ${{ matrix.java }} | |
| # https://github.com/marketplace/actions/android-emulator-runner#running-hardware-accelerated-emulators-on-linux-runners | |
| - 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 | |
| # https://github.com/amrsa1/android-emulator-workflow | |
| - name: Add avdmanager and sdkmanager to system PATH | |
| run: | | |
| echo "$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/${{ env.ANDROID_BUILD_TOOLS_VERSION }}" >> $GITHUB_PATH | |
| - name: Install SDK | |
| run: | | |
| yes Y | sdkmanager --licenses | |
| sdkmanager --install ${ANDROID_SDK_PACKAGES} | |
| - name: Build emulator | |
| run: | | |
| echo "no" | avdmanager --verbose create avd --force -n $EMULATOR_NAME --abi "${ANDROID_TARGET}/${ANDROID_ARCH}" -k "system-images;android-${API_LEVEL};${ANDROID_TARGET};${ANDROID_ARCH}" | |
| - name: Launch emulator | |
| run: | | |
| chmod +x ./.github/workflows/start_emu_headless.sh | |
| EMULATOR_TIMEOUT=$EMULATOR_TIMEOUT EMULATOR_NAME=$EMULATOR_NAME ./.github/workflows/start_emu_headless.sh | |
| # https://github.com/TESTARtool/TESTAR_dev/wiki/TESTAR-and-Appium-for-Mobile-Systems#installing-appium | |
| - name: Install Appium | |
| run: | | |
| npm i -g appium@next | |
| appium --version | |
| appium driver install uiautomator2 | |
| appium driver list --installed | |
| - name: Start Appium Server | |
| run: | | |
| appium --relaxed-security --session-override --base-path /wd/hub & | |
| - name: Test Appium Connection | |
| run: | | |
| # Wait for Appium to be fully up and running | |
| sleep 30 | |
| # Test the connection to the Appium server by hitting the WebDriver endpoint | |
| curl --silent --output /dev/null --write-out "HTTP Response Code: %{http_code}" http://127.0.0.1:4723/wd/hub/status | |
| # Build and run TESTAR | |
| - name: Grant execute permission for gradlew | |
| run: chmod +x gradlew | |
| - name: Prepare TESTAR protocols | |
| run: ./gradlew init_workflow_test | |
| - name: Build TESTAR with Gradle | |
| run: ./gradlew build | |
| - name: Prepare installed distribution of TESTAR with Gradle | |
| run: ./gradlew installDist | |
| - name: Run TESTAR android generic protocol | |
| run: ./gradlew runTestAndroidGenericOk | |
| - name: Save runTestAndroidGenericOk HTML report artifact | |
| uses: actions/upload-artifact@v4 | |
| # Only upload GitHub Actions results if this task fails (Can be replaced with 'if: always()') | |
| #if: failure() | |
| with: | |
| name: Java${{ matrix.java }}-runTestAndroidGenericOk-artifact | |
| path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/android_ok | |
| - name: Run TESTAR android generic protocol with suspicious message | |
| run: ./gradlew runTestAndroidGenericSuspiciousTag | |
| - name: Save runTestAndroidGenericSuspiciousTag HTML report artifact | |
| uses: actions/upload-artifact@v4 | |
| # Only upload GitHub Actions results if this task fails (Can be replaced with 'if: always()') | |
| #if: failure() | |
| with: | |
| name: Java${{ matrix.java }}-runTestAndroidGenericSuspiciousTag-artifact | |
| path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/android_suspicious |