TESTAR-LLM prompt and WdElement updates #155
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: Ubuntu TESTAR Android CI tests | |
| on: | |
| push: | |
| branches: [ master ] | |
| 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: 10 | |
| strategy: | |
| matrix: | |
| java: [ '17' ] | |
| 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: Verify Installed SDK Packages | |
| run: sdkmanager --list | grep "system-images" | |
| - 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: List Available AVDs | |
| run: avdmanager list avd | |
| - name: Detect AVD Home | |
| run: | | |
| if [ -d "$HOME/.config/.android/avd" ]; then | |
| export ANDROID_AVD_HOME="$HOME/.config/.android/avd" | |
| else | |
| export ANDROID_AVD_HOME="$HOME/.android/avd" | |
| fi | |
| echo "ANDROID_AVD_HOME=$ANDROID_AVD_HOME" >> $GITHUB_ENV | |
| - 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: | | |
| MAX_WAIT=30 | |
| INTERVAL=1 | |
| echo "Waiting for Appium to be fully up and running..." | |
| for i in $(seq 1 $MAX_WAIT); do | |
| if [ "$(curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:4723/wd/hub/status)" -eq 200 ]; then | |
| echo "Appium is up and running." | |
| exit 0 | |
| fi | |
| sleep $INTERVAL | |
| done | |
| echo "Appium did not start within $MAX_WAIT seconds." | |
| exit 1 | |
| # 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: Run TESTAR android generic protocol with suspicious message | |
| run: ./gradlew runTestAndroidGenericSuspiciousTagStateModel |