E2E Tests #1940
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
name: E2E Tests | |
on: | |
pull_request: | |
branches: [ main ] | |
schedule: | |
- cron: '00 1 * * *' | |
workflow_dispatch: | |
env: | |
GLOBAL_TESTING_SCOPE: "!%regex[.*DatabaseActions.*], !%regex[.*CLI.*], !%regex[.*DB.*], !%regex[.*Db.*], !%regex[.*db.*], !%regex[.*API.*], !%regex[.*Api.*], !%regex[.*uestBuilder.*], !%regex[.*Rest.*], !%regex[.*Json.*], !%regex[.*JSON.*], !%regex[.*json.*], !%regex[.*ndroid.*], !%regex[.*IOS.*], !%regex[.*obile.*], !%regex[.*CucumberTests.*], !%regex[.*LT.*]" | |
jobs: | |
Ubuntu_Database: | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres | |
env: | |
POSTGRES_PASSWORD: postgres | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5432:5432 | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Connect to PostgreSQL | |
run: | | |
cd src/main/resources/docker-compose/postgres/ | |
npm install pg | |
node client.js | |
env: | |
POSTGRES_HOST: localhost | |
POSTGRES_PORT: 5432 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Run tests | |
continue-on-error: true | |
run: mvn -e test "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*DatabaseActions.*], %regex[.*DB.*], %regex[.*Db.*], %regex[.*db.*]" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Ubuntu_Database_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() | |
Ubuntu_APIs: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.5 | |
- name: Run tests | |
continue-on-error: true | |
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DsetParallelMode=DYNAMIC" "-DsetParallel=METHODS" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*API.*], %regex[.*Api.*], %regex[.*uestBuilder.*], %regex[.*Rest.*], %regex[.*Json.*], %regex[.*JSON.*], %regex[.*json.*]" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Ubuntu_APIs_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() | |
Ubuntu_Firefox_Grid: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up Native Selenium Grid | |
run: docker compose -f src/main/resources/docker-compose/selenium4.yml up --scale chrome=0 --scale edge=0 --scale firefox=10 -d | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.5 | |
- name: Check running containers | |
run: docker ps | |
- name: Run tests | |
continue-on-error: true | |
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DsetParallelMode=DYNAMIC" "-DsetParallel=METHODS" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=localhost:4444" "-DtargetOperatingSystem=LINUX" "-DtargetBrowserName=firefox" "-DheadlessExecution=true" "-DgenerateAllureReportArchive=true" "-Dtest=${GLOBAL_TESTING_SCOPE}" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Ubuntu_Firefox_Grid_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() | |
Ubuntu_Chrome_Grid: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up Native Selenium Grid | |
run: docker compose -f src/main/resources/docker-compose/selenium4.yml up --scale chrome=10 --scale edge=0 --scale firefox=0 -d | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.5 | |
- name: Check running containers | |
run: docker ps | |
- name: Run tests | |
continue-on-error: true | |
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DsetParallelMode=DYNAMIC" "-DsetParallel=METHODS" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=localhost:4444" "-DtargetOperatingSystem=LINUX" "-DtargetBrowserName=chrome" "-DheadlessExecution=true" "-DgenerateAllureReportArchive=true" "-Dtest=${GLOBAL_TESTING_SCOPE}" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Ubuntu_Chrome_Grid_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() | |
Ubuntu_Edge_Grid: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up Native Selenium Grid | |
run: docker compose -f src/main/resources/docker-compose/selenium4.yml up --scale chrome=0 --scale edge=10 --scale firefox=0 -d | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.5 | |
- name: Check running containers | |
run: docker ps | |
- name: Run tests | |
continue-on-error: true | |
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DsetParallelMode=DYNAMIC" "-DsetParallel=METHODS" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=localhost:4444" "-DtargetOperatingSystem=LINUX" "-DtargetBrowserName=MicrosoftEdge" "-DheadlessExecution=true" "-DgenerateAllureReportArchive=true" "-Dtest=${GLOBAL_TESTING_SCOPE}" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Ubuntu_Edge_Grid_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() | |
Android_Native_BrowserStack: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.5 | |
- name: Run tests | |
continue-on-error: true | |
run: mvn -e test "-DdefaultElementIdentificationTimeout=60" "-DretryMaximumNumberOfAttempts=2" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=android" "-Dmobile_automationName=UIAutomator2" "-DbrowserStack.platformVersion=13.0" "-DbrowserStack.deviceName=Google Pixel 7" "-DbrowserStack.appName=ApiDemos-debug.apk" "-DbrowserStack.appRelativeFilePath=src/test/resources/testDataFiles/apps/ApiDemos-debug.apk" "-DbrowserStack.appUrl=" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*ndroidBasic.*]" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Android_Native_BrowserStack_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() | |
iOS_Web_SAFARI_BrowserStack: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.5 | |
- name: Run tests | |
continue-on-error: true | |
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=iOS" "-Dmobile_automationName=XCuiTest" "-DbrowserStack.osVersion=16" "-DbrowserStack.deviceName=iPhone 14" "-Dmobile_browserName=safari" "-DbrowserStack.appName=" "-DbrowserStack.appRelativeFilePath=" "-DbrowserStack.appUrl=" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*MobileWebTest.*]" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: iOS_Web_SAFARI_BrowserStack_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() | |
Android_Web_Chrome_BrowserStack: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.5 | |
- name: Run tests | |
continue-on-error: true | |
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=android" "-Dmobile_automationName=UIAutomator2" "-DbrowserStack.osVersion=13.0" "-DbrowserStack.deviceName=Samsung Galaxy S23" "-Dmobile_browserName=chrome" "-DbrowserStack.appName=" "-DbrowserStack.appRelativeFilePath=" "-DbrowserStack.appUrl=" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*MobileWebTest.*]" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Android_Web_Chrome_BrowserStack_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() | |
Android_Web_Samsung_BrowserStack: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.5 | |
- name: Run tests | |
continue-on-error: true | |
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=android" "-Dmobile_automationName=UIAutomator2" "-DbrowserStack.osVersion=13.0" "-DbrowserStack.deviceName=Samsung Galaxy S23" "-Dmobile_browserName=samsung" "-DbrowserStack.appName=" "-DbrowserStack.appRelativeFilePath=" "-DbrowserStack.appUrl=" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*MobileWebTest.*]" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Android_Web_Samsung_BrowserStack_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() | |
MacOSX_Safari_BrowserStack: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.5 | |
- name: Run tests | |
continue-on-error: true | |
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=MAC" "-DtargetBrowserName=Safari" "-DbrowserStack.os=OS X" "-DbrowserStack.osVersion=Sonoma" "-DbrowserStack.browserVersion=17.0" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*BrowserActionsTests.*], %regex[.*BigPageActionsTest.*]" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: MacOSX_Safari_BrowserStack_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() | |
Ubuntu_Chrome_Cucumber_Grid: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '16' | |
- name: Set up Native Selenium Grid | |
if: runner.os == 'Linux' | |
run: docker compose -f src/main/resources/docker-compose/selenium4.yml up --scale chrome=10 --scale edge=0 --scale firefox=0 -d | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.5 | |
- name: Check running containers | |
if: runner.os == 'Linux' | |
run: docker ps | |
- name: Run tests on Linux/MacOS | |
if: runner.os != 'Windows' | |
continue-on-error: true | |
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DsetParallelMode=DYNAMIC" "-DsetParallel=METHODS" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=localhost:4444" "-DtargetOperatingSystem=LINUX" "-DtargetBrowserName=chrome" "-DmaximumPerformanceMode=2" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*CucumberTests.*]" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Ubuntu_Chrome_Cucumber_Grid_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() | |
MacOSX_Safari_Cucumber_BrowserStack: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '16' | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.5 | |
- name: Run tests | |
continue-on-error: true | |
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=MAC" "-DtargetBrowserName=Safari" "-DmaximumPerformanceMode=1" "-DbrowserStack.os=OS X" "-DbrowserStack.osVersion=Sonoma" "-DbrowserStack.browserVersion=17.0" -DgenerateAllureReportArchive="true" -Dtest="%regex[.*CucumberTests.*]" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: ./target/jacoco/jacoco.xml | |
verbose: true | |
- name: Upload Allure Report as Pipeline Artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: MacOSX_Safari_Cucumber_BrowserStack_Allure | |
path: "allure-report/*.html" | |
- name: Test Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: "target/surefire-reports/junitreports/TEST-*.xml" | |
if: always() |