Update appium dependencies and add android CI tests #440
This file contains 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
# This workflow will build a Java project with Gradle | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle | |
name: Gradle CI tests | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
windows: | |
runs-on: windows-latest | |
timeout-minutes: 15 | |
strategy: | |
fail-fast: false | |
matrix: | |
java: [ '11', '17', '21' ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Java ${{ matrix.java }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'corretto' | |
java-version: ${{ matrix.java }} | |
- 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: Save JUnit test results | |
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 }}-saveJunitTests-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/reports/tests | |
- name: Prepare installed distribution of TESTAR with Gradle | |
run: ./gradlew installDist | |
- name: Run TESTAR dialog | |
run: ./gradlew runTestRunGUI | |
- name: Run desktop_generic protocol with TESTAR using COMMAND_LINE | |
run: ./gradlew runTestDesktopGenericCommandLineOk | |
- name: Save runTestDesktopGenericCommandLineOk 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 }}-runTestDesktopGenericCommandLineOk-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/notepad_ok | |
- name: Run desktop_generic protocol with TESTAR to test waitAndLeftClickWidgetWithMatchingTags feature | |
run: ./gradlew runTestDesktopGenericMultiTags | |
- name: Save runTestDesktopGenericMultiTags 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 }}-runTestDesktopGenericMultiTags-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/notepad_multitags | |
- name: Run desktop_generic protocol that contains SuspiciousTag with TESTAR | |
run: ./gradlew runTestDesktopGenericCommandLineSuspiciousTag | |
- name: Save runTestDesktopGenericCommandLineSuspiciousTag 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 }}-runTestDesktopGenericCommandLineSuspiciousTag-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/notepad_command_and_suspicious | |
- name: Run desktop_generic protocol using specific filtering and detect a SuspiciousTag with TESTAR | |
run: ./gradlew runTestDesktopGenericCommandLineSettingsFilterSuspiciousTag | |
- name: Save runTestDesktopGenericCommandLineSettingsFilterSuspiciousTag 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 }}-runTestDesktopGenericCommandLineSettingsFilterSuspiciousTag-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/notepad_command_settings_filter_and_suspicious | |
- name: Run desktop_generic protocol but connect using SUT_PROCESS_NAME and detect SuspiciousTag | |
run: ./gradlew runTestDesktopGenericProcessNameSuspiciousTag | |
- name: Save runTestDesktopGenericProcessNameSuspiciousTag 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 }}-runTestDesktopGenericProcessNameSuspiciousTag-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/notepad_process_and_suspicious | |
- name: Run desktop_generic protocol but connect using SUT_WINDOW_TITLE and detect SuspiciousTag | |
run: ./gradlew runTestDesktopGenericTitleNameSuspiciousTag | |
- name: Save runTestDesktopGenericTitleNameSuspiciousTag 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 }}-runTestDesktopGenericTitleNameSuspiciousTag-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/notepad_title_and_suspicious | |
# Enable Java Access Bridge | |
- name: Enable Java Access Bridge | |
shell: cmd | |
run: jabswitch /enable | |
# Run the Java Swing Test | |
- name: Run desktop_java_swing protocol which uses Java Access Bridge for Java Swing apps | |
run: ./gradlew runTestDesktopJavaSwing | |
- name: Save runTestDesktopJavaSwing 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 }}-runTestDesktopJavaSwing-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/java_swing_ok | |
# Always Disable Java Access Bridge to revert environment changes | |
- name: Disable Java Access Bridge | |
if: always() | |
shell: cmd | |
run: jabswitch /disable | |
- name: Run desktop_generic with OrientDB to infer a TESTAR State Model | |
run: ./gradlew runTestDesktopGenericStateModel | |
- name: Save runTestDesktopGenericStateModel 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 }}-runTestDesktopGenericStateModel-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/notepad_state_model | |
- name: Run desktop_generic doing a customization in the AbstractID identifer | |
run: ./gradlew runTestDesktopGenericStateModelCustomAbstraction | |
- name: Save runTestDesktopGenericStateModelCustomAbstraction 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 }}-runTestDesktopGenericStateModelCustomAbstraction-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/notepad_state_model_custom | |
- name: Run webdriver protocol and detect SuspiciousTag | |
run: ./gradlew runTestWebdriverSuspiciousTag | |
- name: Save runTestWebdriverSuspiciousTag 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 }}-runTestWebdriverSuspiciousTag-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/webdriver_and_suspicious | |
- name: Run webdriver to login in parabank and detect browser console error | |
run: ./gradlew runTestWebdriverParabankLoginAndConsoleError | |
- name: Save runTestWebdriverParabankLoginAndConsoleError 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 }}-runTestWebdriverParabankLoginAndConsoleError-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/webdriver_login_console_error | |
- name: Run webdriver to login in parabank using form filling | |
run: ./gradlew runTestWebdriverParabankFormFilling | |
- name: Save runTestWebdriverParabankFormFilling 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 }}-runTestWebdriverParabankFormFilling-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/webdriver_form_filling | |
- name: Run webdriver to login in parabank and execute webdriver remote actions | |
run: ./gradlew runTestWebdriverParabankRemoteActions | |
- name: Save runTestWebdriverParabankRemoteActions 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 }}-runTestWebdriverParabankRemoteActions-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/webdriver_remote_actions | |
- name: Run TESTAR Replay mode with a web page to check that replayed correctly | |
run: ./gradlew runTestWebdriverCorrectReplay | |
- name: Save runTestWebdriverCorrectReplay 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 }}-runTestWebdriverCorrectReplay-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/webdriver_replay | |
- name: Run TESTAR Replay mode to detect a not replayable button | |
run: ./gradlew runTestWebdriverUnreplayable | |
- name: Save runTestWebdriverUnreplayable 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 }}-runTestWebdriverUnreplayable-artifact | |
path: D:/a/TESTAR_dev/TESTAR_dev/testar/target/install/testar/bin/webdriver_unreplayable | |
linux: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
continue-on-error: true | |
strategy: | |
fail-fast: false | |
matrix: | |
java: [ '11', '17', '21' ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Java ${{ matrix.java }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'corretto' | |
java-version: ${{ matrix.java }} | |
- 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: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt install -y xvfb x11-utils libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 xdotool | |
- name: Run webdriver protocol and detect SuspiciousTag | |
run: xvfb-run ./gradlew runTestWebdriverSuspiciousTagUbuntu | |
macos: | |
runs-on: macos-latest | |
timeout-minutes: 10 | |
continue-on-error: true | |
strategy: | |
fail-fast: false | |
matrix: | |
java: [ '11', '17', '21' ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Java ${{ matrix.java }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'corretto' | |
java-version: ${{ matrix.java }} | |
- 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 webdriver protocol and detect SuspiciousTag | |
run: ./gradlew runTestWebdriverSuspiciousTagMacOS |