Bump net.datafaker:datafaker from 2.5.3 to 2.5.4 #17660
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: Vividus CI | |
| on: | |
| push: | |
| branches: | |
| - master | |
| tags: | |
| - release-[0-9]+.[0-9]+.[0-9]+ | |
| paths: | |
| - '**/**' | |
| - '!docs/**' | |
| - '!*.md' | |
| - '!.github/workflows/docs.yml' | |
| pull_request: | |
| branches: | |
| - master | |
| paths: | |
| - '**/**' | |
| - '!docs/**' | |
| - '!*.md' | |
| - '!.github/workflows/docs.yml' | |
| jobs: | |
| build: | |
| strategy: | |
| matrix: | |
| platform: [ubuntu-latest, macos-latest, windows-latest] | |
| fail-fast: false | |
| runs-on: ${{ matrix.platform }} | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout (including submodules and tags) | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Cache ~/.gradle/caches | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.gradle/caches | |
| key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle-caches- | |
| - name: Cache ~/.gradle/wrapper | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('vividus-build-system/**/wrapper/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle-wrapper- | |
| - name: Cache tests history | |
| if: github.ref == 'refs/heads/master' && matrix.platform == 'ubuntu-latest' | |
| uses: actions/cache@v5 | |
| with: | |
| save-always: true | |
| path: vividus-tests/output/history | |
| key: tests-history-cache-${{ github.sha }} | |
| restore-keys: | | |
| tests-history-cache- | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: 25 | |
| - name: Warm up VIVIDUS test site | |
| run: curl https://vividus-test-site-a92k.onrender.com/ & | |
| - name: Build | |
| env: | |
| MATRIX_PLATFORM: ${{ matrix.platform }} | |
| shell: bash | |
| run: | | |
| if [[ $MATRIX_PLATFORM = "ubuntu-latest" ]]; then | |
| ./gradlew build -Ptest.testLogging.exceptionFormat=full | |
| else | |
| ./gradlew build -x spotbugsMain -x spotbugsTest -x spotbugsIntegrationTest \ | |
| -x pmdMain -x pmdTest -x pmdIntegrationTest \ | |
| -Ptest.testLogging.exceptionFormat=full --no-daemon | |
| fi | |
| - name: Publish unit and integration tests reports | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: Unit and Integration Tests - Reports - ${{ matrix.platform }} | |
| path: vividus/output/reports/tests | |
| - name: Upload coverage to Codecov | |
| if: ${{ !github.event.pull_request.head.repo.fork || github.ref == 'refs/heads/master'}} | |
| uses: codecov/codecov-action@v5.5.2 | |
| with: | |
| fail_ci_if_error: true | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| - name: Upload coverage to Codecov | |
| if: ${{ github.event.pull_request.head.repo.fork }} | |
| uses: codecov/codecov-action@v5.5.2 | |
| - name: SonarQube Cloud analysis | |
| if: matrix.platform == 'ubuntu-latest' | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed by Sonar to get PR information, if any | |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
| shell: bash | |
| run: | | |
| if [[ -n $SONAR_TOKEN ]]; then | |
| ./gradlew sonar -Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=vividus -Dsonar.projectKey=vividus-framework_vividus --no-parallel | |
| else | |
| echo No SONAR_TOKEN, SonarQube Cloud analysis is skipped | |
| fi | |
| - name: VIVIDUS tasks validation | |
| run: | | |
| ./gradlew validateKnownIssues printSteps countSteps -x testVividusInitialization -p vividus-tests --project-prop 'vividus.variables.iterationLimit=3' --project-prop 'vividus.variables.target-platform=ios' | |
| - name: Integration tests | |
| run: | | |
| ./gradlew :vividus-tests:debugStories --project-prop 'vividus.configuration-set.active=integration' --project-prop 'vividus.allure.history-directory=output/history/integration-tests' --project-prop 'vividus.allure.executor.name="Github Actions (Vividus)"' --project-prop 'vividus.allure.executor.type=github' --project-prop 'vividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions' --project-prop 'vividus.allure.executor.build-order=${GITHUB_RUN_ID}' --project-prop 'vividus.allure.executor.build-name="Integration Tests ${GITHUB_RUN_ID}"' --project-prop 'vividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID}' --project-prop 'vividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID}' --project-prop 'vividus.allure.executor.report-name="Integration tests report"' --project-prop "fileToSaveExitCode=$(pwd)/exitCode.txt" --no-daemon | |
| - name: Publish integration tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: Integration Tests - Report - ${{ matrix.platform }} | |
| path: vividus-tests/output/reports/allure | |
| - name: Validate successful exit code | |
| if: (matrix.platform == 'ubuntu-latest' || matrix.platform == 'windows-latest') | |
| shell: bash | |
| run: | | |
| exitCode=$(cat ./exitCode.txt) | |
| if [[ $exitCode -ne '1' ]]; then | |
| exit $exitCode | |
| fi | |
| - name: Validate failed exit code | |
| if: (matrix.platform == 'ubuntu-latest' || matrix.platform == 'windows-latest') && failure() | |
| shell: bash | |
| run: | | |
| exitCode=$(cat ./exitCode.txt) | |
| if [[ $exitCode -ne '2' ]]; then | |
| echo Exit code is $exitCode | |
| exit -1 | |
| fi | |
| - name: Integration tests - Playwright | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=integration \ | |
| -Pvividus.configuration.suites= \ | |
| -Pvividus.configuration.profiles=web_pw/headless/chromium \ | |
| -Pvividus.batch-1.meta-filters="groovy: playwrightSupported || playwrightOnly" \ | |
| -Pvividus.batch-1.resource-location=story/integration \ | |
| -Pvividus.batch-1.resource-include-patterns=**/*Steps*.story,DynamicVariablesTests.story \ | |
| -Pvividus.allure.history-directory=output/history/playwright-integration-tests \ | |
| -Pvividus.allure.executor.name="Github Actions (Vividus)" \ | |
| -Pvividus.allure.executor.type=github \ | |
| -Pvividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions \ | |
| -Pvividus.allure.executor.build-order=${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.build-name="Playwright integration tests ${GITHUB_RUN_ID}" \ | |
| -Pvividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-name="Playwright integration tests report" | |
| - name: Publish Playwright integration tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: Playwright Integration Tests - Report - ${{ matrix.platform }} | |
| path: vividus-tests/output/reports/allure | |
| - name: System tests | |
| if: matrix.platform == 'ubuntu-latest' | |
| env: | |
| BROWSERSTACK_USER: ${{ secrets.BROWSERSTACK_USER }} | |
| BROWSERSTACK_KEY: ${{ secrets.BROWSERSTACK_KEY }} | |
| APPLITOOLS_EXECUTE_KEY: ${{ secrets.APPLITOOLS_EXECUTE_KEY }} | |
| APPLITOOLS_READ_KEY: ${{ secrets.APPLITOOLS_READ_KEY }} | |
| MONGODB_USERNAME: ${{ secrets.MONGODB_USERNAME }} | |
| MONGODB_PASSWORD: ${{ secrets.MONGODB_PASSWORD }} | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_REGION: ${{ secrets.AWS_REGION }} | |
| AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} | |
| AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} | |
| AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} | |
| AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
| AZURE_COSMOS_DB_KEY: ${{ secrets.AZURE_COSMOS_DB_KEY }} | |
| GMAIL_PASSWORD: ${{ secrets.GMAIL_PASSWORD }} | |
| LIGHTHOUSE_API_KEY: ${{ secrets.LIGHTHOUSE_API_KEY }} | |
| shell: bash | |
| run: | | |
| if [[ -n $BROWSERSTACK_USER && -n $BROWSERSTACK_KEY && -n $APPLITOOLS_READ_KEY && -n $APPLITOOLS_READ_KEY && -n $MONGODB_USERNAME && -n $MONGODB_PASSWORD && -n $AWS_ACCESS_KEY_ID && -n $AWS_SECRET_ACCESS_KEY && -n $AWS_REGION && -n $AZURE_CLIENT_ID && -n $AZURE_CLIENT_SECRET && -n $AZURE_TENANT_ID && -n $AZURE_SUBSCRIPTION_ID && -n $AZURE_COSMOS_DB_KEY && -n $GMAIL_PASSWORD ]]; then | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration-set.active=system \ | |
| -Pvividus.selenium.grid.username=${BROWSERSTACK_USER} \ | |
| -Pvividus.selenium.grid.password=${BROWSERSTACK_KEY} \ | |
| -Pvividus.selenium.grid.capabilities.bstack\:options.buildName="VIVIDUS System Tests" \ | |
| -Pvividus.lighthouse.api-key=${LIGHTHOUSE_API_KEY} \ | |
| -Pvividus.allure.history-directory=output/history/system-tests \ | |
| -Pvividus.allure.executor.name="Github Actions (Vividus)" \ | |
| -Pvividus.allure.executor.type=github \ | |
| -Pvividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions \ | |
| -Pvividus.allure.executor.build-order=${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.build-name="System Tests ${GITHUB_RUN_ID}" \ | |
| -Pvividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-name="System tests report" \ | |
| -Pvividus.azure.cosmos-db.account.vividus.key=${AZURE_COSMOS_DB_KEY} \ | |
| -Pvividus.notifications.base.comment="VIVIDUS CI - System tests" \ | |
| -Pvividus.notifications.base.report-link=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.notifications.base.project=vividus-tests \ | |
| -Pvividus.notifications.mail.host=smtp.gmail.com \ | |
| -Pvividus.notifications.mail.port=465 \ | |
| -Pvividus.notifications.mail.username=vividus.team@gmail.com \ | |
| -Pvividus.notifications.mail.password=${GMAIL_PASSWORD} \ | |
| -Pvividus.notifications.mail.from=vividus.team@gmail.com \ | |
| -Pvividus.notifications.mail.recipient="vividus.team@gmail.com, ivan@vividus.dev" \ | |
| -Pvividus.notifications.mail.security-protocol=SSL | |
| else | |
| echo No passwords/access keys are available, skipping system tests | |
| fi | |
| - name: Publish system tests report | |
| if: matrix.platform == 'ubuntu-latest' && always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: System Tests - Report | |
| path: vividus-tests/output/reports/allure | |
| - name: Headless - Web - System tests | |
| if: matrix.platform == 'ubuntu-latest' | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.profiles=web/headless/firefox \ | |
| -Pvividus.configuration.suites=health_check | |
| # New headless Chrome is used in CI, it will be made default in VIVIDUS 0.7.0 if testing passes (see more: https://developer.chrome.com/docs/chromium/new-headless) | |
| # 0 - Default, 1 - Allow, 2 - Block | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.profiles=web/headless/chrome \ | |
| -Pvividus.web.driver.chrome.command-line-arguments="--headless=new --hide-scrollbars" \ | |
| -Pvividus.web.driver.chrome.experimental-options='{"prefs": {"profile": {"default_content_setting_values": {"geolocation": 1}}}}' \ | |
| -Pvividus.configuration.suites= \ | |
| -Pvividus.batch-1.resource-location=story/web/permissions \ | |
| -Pvividus.batch-1.meta-filters="groovy: !targetPlatform" | |
| # 0 - Default, 1 - Allow, 2 - Block | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.profiles=web/headless/edge \ | |
| -Pvividus.web.driver.edge.experimental-options='{"prefs": {"profile": {"default_content_setting_values": {"geolocation": 1}}}}' \ | |
| -Pvividus.configuration.suites= \ | |
| -Pvividus.batch-1.resource-location=story/web/permissions \ | |
| -Pvividus.batch-1.meta-filters="groovy: !targetPlatform" | |
| - name: LambdaTest - Desktop - Web - System tests | |
| if: matrix.platform == 'macos-latest' | |
| env: | |
| LAMBDATEST_USER: ${{ secrets.LAMBDATEST_USER }} | |
| LAMBDATEST_KEY: ${{ secrets.LAMBDATEST_KEY }} | |
| shell: bash | |
| run: | | |
| if [[ -n $LAMBDATEST_USER && -n $LAMBDATEST_KEY ]]; then | |
| declare -a profiles=( iexplore chrome firefox edge safari ) | |
| for profile in "${profiles[@]}"; do | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments= \ | |
| -Pvividus.configuration.suites=health_check \ | |
| -Pvividus.configuration.profiles=lambdatest/web,web/desktop/${profile} \ | |
| -Pvividus.selenium.grid.username=${LAMBDATEST_USER} \ | |
| -Pvividus.selenium.grid.password=${LAMBDATEST_KEY} \ | |
| -Pvividus.selenium.grid.capabilities.LT\:Options.build="VIVIDUS System Tests" | |
| done | |
| else | |
| echo No LAMBDATEST_USER and/or LAMBDATEST_KEY, LambdaTest integration tests will be skipped | |
| fi | |
| - name: SauceLabs - Desktop - Web - System tests | |
| if: matrix.platform == 'ubuntu-latest' | |
| env: | |
| SAUCELABS_USER: ${{ secrets.SAUCELABS_USER }} | |
| SAUCELABS_KEY: ${{ secrets.SAUCELABS_KEY }} | |
| shell: bash | |
| run: | | |
| if [[ -n $SAUCELABS_USER && -n $SAUCELABS_KEY ]]; then | |
| declare -a profiles=( chrome firefox edge ) | |
| for profile in "${profiles[@]}"; do | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=system/saucelabs \ | |
| -Pvividus.configuration.suites=health_check \ | |
| -Pvividus.configuration.profiles=saucelabs/web,web/desktop/${profile} \ | |
| -Pvividus.selenium.grid.username=${SAUCELABS_USER} \ | |
| -Pvividus.selenium.grid.password=${SAUCELABS_KEY} \ | |
| -Pvividus.selenium.grid.capabilities.platformName="Windows 11" | |
| done | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=system/saucelabs \ | |
| -Pvividus.configuration.suites=health_check \ | |
| -Pvividus.configuration.profiles=saucelabs/web,web/desktop/iexplore \ | |
| -Pvividus.selenium.grid.username=${SAUCELABS_USER} \ | |
| -Pvividus.selenium.grid.password=${SAUCELABS_KEY} | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=system/saucelabs \ | |
| -Pvividus.configuration.suites=health_check \ | |
| -Pvividus.configuration.profiles=saucelabs/web,web/desktop/safari \ | |
| -Pvividus.selenium.grid.username=${SAUCELABS_USER} \ | |
| -Pvividus.selenium.grid.password=${SAUCELABS_KEY} | |
| else | |
| echo No SAUCELABS_USER and/or SAUCELABS_KEY, SauceLabs system tests will be skipped | |
| fi | |
| - name: SauceLabs - Desktop - Chrome DevTools | |
| if: matrix.platform == 'ubuntu-latest' | |
| env: | |
| SAUCELABS_USER: ${{ secrets.SAUCELABS_USER }} | |
| SAUCELABS_KEY: ${{ secrets.SAUCELABS_KEY }} | |
| shell: bash | |
| run: | | |
| if [[ -n $SAUCELABS_USER && -n $SAUCELABS_KEY ]]; then | |
| declare -a configs=( 'Windows 11:1920x1080' 'macOS 13:1920x1440' ) | |
| for config in "${configs[@]}"; do | |
| platform=${config%%:*} | |
| resolution=${config##*:} | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=system/saucelabs \ | |
| -Pvividus.configuration.suites=cdp \ | |
| -Pvividus.configuration.profiles=saucelabs/web,web/desktop/chrome \ | |
| -Pvividus.selenium.grid.username=${SAUCELABS_USER} \ | |
| -Pvividus.selenium.grid.password=${SAUCELABS_KEY} \ | |
| -Pvividus.selenium.grid.capabilities.platformName="${platform}" \ | |
| -Pvividus.selenium.grid.screen-resolution="${resolution}" | |
| done | |
| else | |
| echo No SAUCELABS_USER and/or SAUCELABS_KEY, SauceLabs system tests will be skipped | |
| fi | |
| - name: SauceLabs - Desktop - Web + Proxy + SauceConnect - System tests | |
| if: (matrix.platform == 'ubuntu-latest' || matrix.platform == 'windows-latest') | |
| env: | |
| SAUCELABS_USER: ${{ secrets.SAUCELABS_USER }} | |
| SAUCELABS_KEY: ${{ secrets.SAUCELABS_KEY }} | |
| shell: bash | |
| run: | | |
| if [[ -n $SAUCELABS_USER && -n $SAUCELABS_KEY ]]; then | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=system/saucelabs \ | |
| -Pvividus.configuration.suites= \ | |
| -Pvividus.configuration.profiles=saucelabs/web,web/desktop/chrome \ | |
| -Pvividus.batch-1.resource-location=story/integration \ | |
| -Pvividus.batch-1.resource-include-patterns=ProxyStepsTests.story \ | |
| -Pvividus.selenium.grid.username=${SAUCELABS_USER} \ | |
| -Pvividus.selenium.grid.password=${SAUCELABS_KEY} \ | |
| -Pvividus.selenium.grid.capabilities.platformName="Windows 11" \ | |
| -Pvividus.saucelabs.sauce-connect.command-line-arguments="--proxy-localhost --no-ssl-bump-domains saucedemo.com,vividus-test-site-a92k.onrender.com" | |
| else | |
| echo No SAUCELABS_USER and/or SAUCELABS_KEY, SauceLabs system tests will be skipped | |
| fi | |
| - name: Validate fail fast | |
| if: matrix.platform == 'macos-latest' | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:validateRunStatistics \ | |
| -Pvividus.configuration.suites=failFast \ | |
| -PexpectedRunStatistics="resources/main/failFast/expected.json" \ | |
| -Pvividus.story.fail-fast=true \ | |
| -Pvividus.scenario.fail-fast=true \ | |
| -Pvividus.batch.fail-fast=true | |
| - name: Validate fail fast configured at batch level | |
| if: matrix.platform == 'macos-latest' | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:validateRunStatistics \ | |
| -Pvividus.configuration.suites=failFast \ | |
| -PexpectedRunStatistics="resources/main/failFast/expected.json" \ | |
| -Pvividus.batch-1.story.fail-fast=true \ | |
| -Pvividus.batch-1.scenario.fail-fast=true \ | |
| -Pvividus.batch.fail-fast=true | |
| - name: Validate fail fast batch override | |
| if: matrix.platform == 'macos-latest' | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:validateRunStatistics \ | |
| -Pvividus.configuration.suites=failFast \ | |
| -PexpectedRunStatistics="resources/main/failFast/expected-batch.json" \ | |
| -Pvividus.story.fail-fast=true \ | |
| -Pvividus.scenario.fail-fast=true \ | |
| -Pvividus.batch-1.story.fail-fast=false \ | |
| -Pvividus.batch-1.scenario.fail-fast=false \ | |
| -Pvividus.batch.fail-fast=true | |
| - name: Replace and validate deprecated steps | |
| if: matrix.platform == 'macos-latest' | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:replaceDeprecatedSteps | |
| actualStory="vividus-tests/src/main/resources/story/replacement/ReplacedStepsActual.story" | |
| expectedStory="vividus-tests/src/main/resources/story/replacement/ReplacedStepsExpected.story" | |
| actualComposites="vividus-tests/src/main/resources/steps/replacement/replaced_composites_actual.steps" | |
| expectedComposites="vividus-tests/src/main/resources/steps/replacement/replaced_composites_expected.steps" | |
| cmp "$actualStory" "$expectedStory" | |
| cmp "$actualComposites" "$expectedComposites" | |
| - name: Replace and validate deprecated properties | |
| if: matrix.platform == 'macos-latest' | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:replaceDeprecatedProperties | |
| actualProperties="vividus-tests/src/main/resources/properties/environment/system/properties_replacer/actual_properties.properties" | |
| expectedProperties="vividus-tests/src/main/resources/properties/environment/system/properties_replacer/expected_properties.properties" | |
| cmp "$actualProperties" "$expectedProperties" | |
| - name: Publish artifacts to GitHub packages | |
| if: (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/release-')) && matrix.platform == 'ubuntu-latest' | |
| run: ./gradlew publish | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Login to Docker Hub | |
| if: (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/release-')) && matrix.platform == 'ubuntu-latest' | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - name: Build and push Docker image to Docker Hub | |
| if: (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/release-')) && matrix.platform == 'ubuntu-latest' | |
| run: ./gradlew :vividus-docker-bundler:pushImage | |
| system-kafka-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout (including submodules and tags) | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Restore cached ~/.gradle/caches | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: ~/.gradle/caches | |
| key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle-caches- | |
| - name: Restore cached ~/.gradle/wrapper | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('vividus-build-system/**/wrapper/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle-wrapper- | |
| - name: Restore cached tests history | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: vividus-tests/output/history | |
| key: kafka-tests-history-cache-${{ github.sha }} | |
| restore-keys: | | |
| kafka-tests-history-cache- | |
| - name: Run Kafka KRaft Broker | |
| uses: spicyparrot/kafka-kraft-action@v1.1.3 | |
| with: | |
| kafka-version: "3.9.0" | |
| kafka-topics: "vividus-topic,1" | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: 25 | |
| - name: System Kafka tests | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments= \ | |
| -Pvividus.configuration.suites= \ | |
| -Pvividus.configuration.profiles= \ | |
| -Pvividus.batch-1.resource-location=story/system/kafka \ | |
| -Pvividus.kafka.producer.vividus.bootstrap.servers=${{ env.kafka_runner_address }}:9093 \ | |
| -Pvividus.kafka.consumer.vividus.bootstrap.servers=${{ env.kafka_runner_address }}:9093 \ | |
| -Pvividus.kafka.consumer.vividus.group.id=vividus \ | |
| -Pvividus.kafka.consumer.vividus.auto.offset.reset=earliest \ | |
| -Pvividus.allure.executor.name="Github Actions (Vividus)" \ | |
| -Pvividus.allure.executor.type=github \ | |
| -Pvividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions \ | |
| -Pvividus.allure.executor.build-order=${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.build-name="System Kafka Tests ${GITHUB_RUN_ID}" \ | |
| -Pvividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-name="System Kafka tests report" | |
| - name: Publish system Kafka tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: System Kafka Tests - Report | |
| path: vividus-tests/output/reports/allure | |
| - name: Cache tests history | |
| if: always() && github.ref == 'refs/heads/master' | |
| uses: actions/cache/save@v5 | |
| with: | |
| path: vividus-tests/output/history | |
| key: kafka-tests-history-cache-${{ github.sha }} | |
| restore-keys: | | |
| kafka-tests-history-cache- | |
| system-mobile-tests-on-saucelabs: | |
| if: github.event.pull_request.head.repo.fork == false && github.actor != 'dependabot[bot]' | |
| env: | |
| TEST_APP_VERSION: 0.6.0 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout (including submodules and tags) | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Restore cached ~/.gradle/caches | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: ~/.gradle/caches | |
| key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle-caches- | |
| - name: Restore cached ~/.gradle/wrapper | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('vividus-build-system/**/wrapper/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle-wrapper- | |
| - name: Restore cached tests history | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: vividus-tests/output/history | |
| key: mobile-tests-on-saucelabs-history-cache-${{ github.sha }} | |
| restore-keys: | | |
| mobile-tests-on-saucelabs-history-cache- | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: 25 | |
| - name: SauceLabs - Tablet - Web - System tests | |
| env: | |
| SAUCELABS_USER: ${{ secrets.SAUCELABS_USER }} | |
| SAUCELABS_KEY: ${{ secrets.SAUCELABS_KEY }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=system/saucelabs \ | |
| -Pvividus.configuration.profiles=saucelabs/web,web/tablet/ipad \ | |
| -Pvividus.configuration.suites=system \ | |
| -Pvividus.batch-1.resource-include-patterns=IPadVisualStepsTests.story \ | |
| -Pvividus.selenium.grid.capabilities.deviceName="iPad (8th generation) Simulator" \ | |
| -Pvividus.selenium.grid.username=${SAUCELABS_USER} \ | |
| -Pvividus.selenium.grid.password=${SAUCELABS_KEY} | |
| - name: SauceLabs - Mobile - Web - System tests | |
| env: | |
| SAUCELABS_USER: ${{ secrets.SAUCELABS_USER }} | |
| SAUCELABS_KEY: ${{ secrets.SAUCELABS_KEY }} | |
| shell: bash | |
| run: | | |
| declare -a profiles=( iphone android ) | |
| for profile in "${profiles[@]}"; do | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=system/saucelabs \ | |
| -Pvividus.configuration.suites=health_check \ | |
| -Pvividus.configuration.profiles=saucelabs/web/phone/${profile},web/phone/${profile} \ | |
| -Pvividus.selenium.grid.username=${SAUCELABS_USER} \ | |
| -Pvividus.selenium.grid.password=${SAUCELABS_KEY} | |
| done | |
| - name: SauceLabs - iOS - Mobile App - Run system tests | |
| env: | |
| SAUCELABS_USER: ${{ secrets.SAUCELABS_USER }} | |
| SAUCELABS_KEY: ${{ secrets.SAUCELABS_KEY }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=system/saucelabs/mobile_app/ios \ | |
| -Pvividus.configuration.suites=system/mobile_app/ios,ui \ | |
| -Pvividus.configuration.profiles=saucelabs/mobile_app,mobile_app/ios \ | |
| -Pvividus.selenium.grid.username=${SAUCELABS_USER} \ | |
| -Pvividus.selenium.grid.password=${SAUCELABS_KEY} \ | |
| -Pvividus.allure.history-directory=output/history/sl-ios-system-tests \ | |
| -Pvividus.allure.report-directory=output/reports/sl-ios-allure \ | |
| -Pvividus.allure.executor.name="Github Actions (Vividus)" \ | |
| -Pvividus.allure.executor.type=github \ | |
| -Pvividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions \ | |
| -Pvividus.allure.executor.build-order=${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.build-name="SauceLabs iOS System Tests ${GITHUB_RUN_ID}" \ | |
| -Pvividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-name="SauceLabs iOS System tests report" \ | |
| -Pvividus.variables.app-url=storage:filename=vividus-test-app-ios-$TEST_APP_VERSION.zip \ | |
| -Pvividus.statistics.print-failures=true \ | |
| -Pvividus.ui.context.self-healing=true | |
| - name: SauceLabs - iOS - Mobile App - Publish system tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: SauceLabs - System Tests - Report - iOS | |
| path: vividus-tests/output/reports/sl-ios-allure | |
| - name: SauceLabs - iOS Proxy - Mobile App - Run system tests | |
| env: | |
| SAUCELABS_USER: ${{ secrets.SAUCELABS_USER }} | |
| SAUCELABS_KEY: ${{ secrets.SAUCELABS_KEY }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=system/saucelabs/mobile_app/ios \ | |
| -Pvividus.configuration.suites= \ | |
| -Pvividus.configuration.profiles=saucelabs/mobile_app,mobile_app/ios \ | |
| -Pvividus.batch-1.resource-location=story/system/mobile_app \ | |
| -Pvividus.batch-1.resource-include-patterns=ProxyMobileStepsTests.story \ | |
| -Pvividus.selenium.grid.username=${SAUCELABS_USER} \ | |
| -Pvividus.selenium.grid.password=${SAUCELABS_KEY} \ | |
| -Pvividus.allure.history-directory=output/history/sl-ios-proxy-system-tests \ | |
| -Pvividus.allure.report-directory=output/reports/sl-ios-proxy-allure \ | |
| -Pvividus.allure.executor.name="Github Actions (Vividus)" \ | |
| -Pvividus.allure.executor.type=github \ | |
| -Pvividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions \ | |
| -Pvividus.allure.executor.build-order=${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.build-name="SauceLabs iOS Proxy Tests ${GITHUB_RUN_ID}" \ | |
| -Pvividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-name="SauceLabs iOS Proxy tests report" \ | |
| -Pvividus.saucelabs.sauce-connect.command-line-arguments="--proxy-localhost --no-ssl-bump-domains example.com" \ | |
| -Pvividus.variables.app-url=storage:filename=vividus-test-app-ios-$TEST_APP_VERSION.zip | |
| - name: SauceLabs - iOS Proxy - Mobile App - Publish system tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: SauceLabs - System Tests With Proxy - Report - iOS | |
| path: vividus-tests/output/reports/sl-ios-proxy-allure | |
| - name: SauceLabs - Android - Mobile App - Run system tests | |
| env: | |
| SAUCELABS_USER: ${{ secrets.SAUCELABS_USER }} | |
| SAUCELABS_KEY: ${{ secrets.SAUCELABS_KEY }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=system/saucelabs/mobile_app/android \ | |
| -Pvividus.configuration.suites=system/mobile_app/android \ | |
| -Pvividus.configuration.profiles=saucelabs/mobile_app,mobile_app/android \ | |
| -Pvividus.selenium.grid.username=${SAUCELABS_USER} \ | |
| -Pvividus.selenium.grid.password=${SAUCELABS_KEY} \ | |
| -Pvividus.allure.history-directory=output/history/sl-android-system-tests \ | |
| -Pvividus.allure.report-directory=output/reports/sl-android-allure \ | |
| -Pvividus.allure.executor.name="Github Actions (Vividus)" \ | |
| -Pvividus.allure.executor.type=github \ | |
| -Pvividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions \ | |
| -Pvividus.allure.executor.build-order=${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.build-name="SauceLabs Android System Tests ${GITHUB_RUN_ID}" \ | |
| -Pvividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-name="SauceLabs Android System tests report" \ | |
| -Pvividus.variables.app-url=storage:filename=vividus-test-app-android-$TEST_APP_VERSION.zip \ | |
| -Pvividus.statistics.print-failures=true | |
| - name: SauceLabs - Android - Mobile App - Publish system tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: SauceLabs - System Tests - Report - Android | |
| path: vividus-tests/output/reports/sl-android-allure | |
| - name: SauceLabs - Android Proxy- Mobile App - Run system tests | |
| env: | |
| SAUCELABS_USER: ${{ secrets.SAUCELABS_USER }} | |
| SAUCELABS_KEY: ${{ secrets.SAUCELABS_KEY }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments=system/saucelabs/mobile_app/android \ | |
| -Pvividus.configuration.suites= \ | |
| -Pvividus.configuration.profiles=saucelabs/mobile_app,mobile_app/android \ | |
| -Pvividus.batch-1.resource-location=story/system/mobile_app \ | |
| -Pvividus.batch-1.resource-include-patterns=ProxyMobileStepsTests.story \ | |
| -Pvividus.selenium.grid.username=${SAUCELABS_USER} \ | |
| -Pvividus.selenium.grid.password=${SAUCELABS_KEY} \ | |
| -Pvividus.allure.history-directory=output/history/sl-android-proxy-system-tests \ | |
| -Pvividus.allure.report-directory=output/reports/sl-android-proxy-allure \ | |
| -Pvividus.allure.executor.name="Github Actions (Vividus)" \ | |
| -Pvividus.allure.executor.type=github \ | |
| -Pvividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions \ | |
| -Pvividus.allure.executor.build-order=${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.build-name="SauceLabs Android Proxy Tests ${GITHUB_RUN_ID}" \ | |
| -Pvividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-name="SauceLabs Android Proxy tests report" \ | |
| -Pvividus.saucelabs.sauce-connect.command-line-arguments="--proxy-localhost --no-ssl-bump-domains example.com" \ | |
| -Pvividus.variables.app-url=storage:filename=vividus-test-app-android-$TEST_APP_VERSION.zip | |
| - name: SauceLabs - Android Proxy - Mobile App - Publish system tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: SauceLabs - System Tests With Proxy - Report - Android | |
| path: vividus-tests/output/reports/sl-android-proxy-allure | |
| - name: Cache tests history | |
| if: always() && github.ref == 'refs/heads/master' | |
| uses: actions/cache/save@v5 | |
| with: | |
| path: vividus-tests/output/history | |
| key: mobile-tests-on-saucelabs-history-cache-${{ github.sha }} | |
| restore-keys: | | |
| mobile-tests-on-saucelabs-history-cache- | |
| system-tests-on-browserstack: | |
| if: github.event.pull_request.head.repo.fork == false && github.actor != 'dependabot[bot]' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout (including submodules and tags) | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Restore cached ~/.gradle/caches | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: ~/.gradle/caches | |
| key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle-caches- | |
| - name: Restore cached ~/.gradle/wrapper | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('vividus-build-system/**/wrapper/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle-wrapper- | |
| - name: Restore cached tests history | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: vividus-tests/output/history | |
| key: tests-on-browserstack-history-cache-${{ github.sha }} | |
| restore-keys: | | |
| tests-on-browserstack-history-cache- | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: 25 | |
| - name: BrowserStack - Mobile - Web - System tests | |
| env: | |
| BROWSERSTACK_USER: ${{ secrets.BROWSERSTACK_USER }} | |
| BROWSERSTACK_KEY: ${{ secrets.BROWSERSTACK_KEY }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.profiles=browserstack/web/phone,web/phone/iphone \ | |
| -Pvividus.selenium.grid.capabilities.bstack\:options.deviceName="iPhone 15" \ | |
| -Pvividus.selenium.grid.capabilities.bstack\:options.appiumVersion=2.19.0 \ | |
| -Pvividus.selenium.grid.username=${BROWSERSTACK_USER} \ | |
| -Pvividus.selenium.grid.password=${BROWSERSTACK_KEY} \ | |
| -Pvividus.configuration.suites= \ | |
| -Pvividus.batch-1.resource-location=story/web/permissions \ | |
| -Pvividus.batch-1.meta-filters="groovy: !targetPlatform || targetPlatform == 'ios'" | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.profiles=browserstack/web/phone,web/phone/android \ | |
| -Pvividus.selenium.grid.capabilities.bstack\:options.deviceName="Samsung Galaxy S23 Ultra" \ | |
| -Pvividus.selenium.grid.capabilities.bstack\:options.appiumVersion=2.4.1 \ | |
| -Pvividus.selenium.grid.username=${BROWSERSTACK_USER} \ | |
| -Pvividus.selenium.grid.password=${BROWSERSTACK_KEY} \ | |
| -Pvividus.configuration.suites= \ | |
| -Pvividus.batch-1.resource-location=story/web/permissions \ | |
| -Pvividus.batch-1.meta-filters="groovy: !targetPlatform || targetPlatform == 'android'" | |
| - name: BrowserStack - Desktop - Web - System tests | |
| env: | |
| BROWSERSTACK_USER: ${{ secrets.BROWSERSTACK_USER }} | |
| BROWSERSTACK_KEY: ${{ secrets.BROWSERSTACK_KEY }} | |
| shell: bash | |
| run: | | |
| declare -a profiles=( iexplore firefox safari ) | |
| for profile in "${profiles[@]}"; do | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.profiles=browserstack/web,web/desktop/${profile} \ | |
| -Pvividus.configuration.suites=health_check \ | |
| -Pvividus.selenium.grid.username=${BROWSERSTACK_USER} \ | |
| -Pvividus.selenium.grid.password=${BROWSERSTACK_KEY} \ | |
| -Pvividus.selenium.grid.capabilities.bstack\:options.buildName="VIVIDUS BrowserStack Integration Tests" | |
| done | |
| declare -a geolocationProfiles=( chrome edge ) | |
| for profile in "${geolocationProfiles[@]}"; do | |
| # 0 - Default, 1 - Allow, 2 - Block | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.profiles=browserstack/web,web/desktop/${profile} \ | |
| -Pvividus.web.driver.${profile}.experimental-options='{"prefs": {"profile": {"default_content_setting_values": {"geolocation": 1}}}}' \ | |
| -Pvividus.configuration.suites= \ | |
| -Pvividus.batch-1.resource-location=story/web/permissions \ | |
| -Pvividus.batch-1.meta-filters="groovy: !targetPlatform" \ | |
| -Pvividus.selenium.grid.username=${BROWSERSTACK_USER} \ | |
| -Pvividus.selenium.grid.password=${BROWSERSTACK_KEY} \ | |
| -Pvividus.selenium.grid.capabilities.bstack\:options.buildName="VIVIDUS BrowserStack Integration Tests" | |
| done | |
| - name: BrowserStack - iOS - Mobile App - Run system tests | |
| env: | |
| BROWSERSTACK_USER: ${{ secrets.BROWSERSTACK_USER }} | |
| BROWSERSTACK_KEY: ${{ secrets.BROWSERSTACK_KEY }} | |
| GMAIL_PASSWORD: ${{ secrets.GMAIL_PASSWORD }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments= \ | |
| -Pvividus.configuration.suites=system/mobile_app/healthcheck/browserstack \ | |
| -Pvividus.configuration.profiles=browserstack/mobile_app/ios,mobile_app/ios \ | |
| -Pvividus.selenium.grid.username=${BROWSERSTACK_USER} \ | |
| -Pvividus.selenium.grid.password=${BROWSERSTACK_KEY} \ | |
| -Pvividus.mobile-environment.ios.use-workaround-to-hide-keyboard=false \ | |
| -Pvividus.selenium.grid.capabilities.bstack\:options.buildName="VIVIDUS iOS System Tests" \ | |
| -Pvividus.allure.history-directory=output/history/bs-ios-system-tests \ | |
| -Pvividus.allure.report-directory=output/reports/bs-ios-allure \ | |
| -Pvividus.allure.executor.name="Github Actions (Vividus)" \ | |
| -Pvividus.allure.executor.type=github \ | |
| -Pvividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions \ | |
| -Pvividus.allure.executor.build-order=${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.build-name="BrowserStack iOS System Tests ${GITHUB_RUN_ID}" \ | |
| -Pvividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-name="BrowserStack iOS System tests report" \ | |
| -Pvividus.variables.app-url=bs://82304ee9907f4ceb4c5db09519f0d45ee537f449 \ | |
| -Pvividus.notifications.base.comment="VIVIDUS CI - BrowserStack iOS System Tests" \ | |
| -Pvividus.notifications.base.report-link=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.notifications.base.project=vividus-tests \ | |
| -Pvividus.notifications.mail.host=smtp.gmail.com \ | |
| -Pvividus.notifications.mail.port=587 \ | |
| -Pvividus.notifications.mail.username=vividus.team@gmail.com \ | |
| -Pvividus.notifications.mail.password=${GMAIL_PASSWORD} \ | |
| -Pvividus.notifications.mail.from=vividus.team@gmail.com \ | |
| -Pvividus.notifications.mail.recipient="vividus.team@gmail.com, ivan@vividus.dev" \ | |
| -Pvividus.notifications.mail.security-protocol=STARTTLS | |
| - name: BrowserStack - iOS - Mobile App - Publish system tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: BrowserStack - System Tests - Report - iOS | |
| path: vividus-tests/output/reports/bs-ios-allure | |
| - name: BrowserStack - Android - Mobile App - Run system tests | |
| env: | |
| BROWSERSTACK_USER: ${{ secrets.BROWSERSTACK_USER }} | |
| BROWSERSTACK_KEY: ${{ secrets.BROWSERSTACK_KEY }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments= \ | |
| -Pvividus.configuration.suites=system/mobile_app/healthcheck/browserstack \ | |
| -Pvividus.configuration.profiles=browserstack/mobile_app/android,mobile_app/android \ | |
| -Pvividus.selenium.grid.username=${BROWSERSTACK_USER} \ | |
| -Pvividus.selenium.grid.password=${BROWSERSTACK_KEY} \ | |
| -Pvividus.selenium.grid.capabilities.bstack\:options.buildName="VIVIDUS Android System Tests" \ | |
| -Pvividus.allure.history-directory=output/history/bs-android-system-tests \ | |
| -Pvividus.allure.report-directory=output/reports/bs-android-allure \ | |
| -Pvividus.allure.executor.name="Github Actions (Vividus)" \ | |
| -Pvividus.allure.executor.type=github \ | |
| -Pvividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions \ | |
| -Pvividus.allure.executor.build-order=${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.build-name="BrowserStack Android System Tests ${GITHUB_RUN_ID}" \ | |
| -Pvividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-name="BrowserStack Android System tests report" \ | |
| -Pvividus.variables.app-url=bs://eaff5d456dfeca3e1a10e8a654d368f4c8cc8010 | |
| - name: BrowserStack - Android - Mobile App - Publish system tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: BrowserStack - System Tests - Report - Android | |
| path: vividus-tests/output/reports/bs-android-allure | |
| - name: Cache tests history | |
| if: always() && github.ref == 'refs/heads/master' | |
| uses: actions/cache/save@v5 | |
| with: | |
| path: vividus-tests/output/history | |
| key: tests-on-browserstack-history-cache-${{ github.sha }} | |
| restore-keys: | | |
| tests-on-browserstack-history-cache- | |
| system-mobile-tests-on-mobitru: | |
| if: github.event.pull_request.head.repo.fork == false && github.actor != 'dependabot[bot]' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout (including submodules and tags) | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Restore cached ~/.gradle/caches | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: ~/.gradle/caches | |
| key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle-caches- | |
| - name: Restore cached ~/.gradle/wrapper | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('vividus-build-system/**/wrapper/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle-wrapper- | |
| - name: Restore cached tests history | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: vividus-tests/output/history | |
| key: mobile-tests-on-mobitru-history-cache-${{ github.sha }} | |
| restore-keys: | | |
| mobile-tests-on-mobitru-history-cache- | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: 25 | |
| - name: Mobitru - Android - Mobile - Web - System tests | |
| env: | |
| MOBITRU_USER: ${{ secrets.MOBITRU_USER }} | |
| MOBITRU_KEY: ${{ secrets.MOBITRU_KEY }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.suites=health_check \ | |
| -Pvividus.configuration.profiles=mobitru/web,web/phone/android \ | |
| -Pvividus.selenium.grid.capabilities.appium\:platformVersion=16 \ | |
| -Pvividus.selenium.grid.username=${MOBITRU_USER} \ | |
| -Pvividus.selenium.grid.password=${MOBITRU_KEY} \ | |
| -Pvividus.allure.history-directory=output/history/mt-android-web-system-tests \ | |
| -Pvividus.allure.report-directory=output/reports/mt-android-web-allure | |
| - name: Mobitru - Android - Mobile - Web - Publish system tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: Mobitru - System Tests - Report - Web Android | |
| path: vividus-tests/output/reports/mt-android-web-allure | |
| - name: Mobitru - IOS - Mobile - Web - System tests | |
| env: | |
| MOBITRU_USER: ${{ secrets.MOBITRU_USER }} | |
| MOBITRU_KEY: ${{ secrets.MOBITRU_KEY }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.suites=health_check \ | |
| -Pvividus.configuration.profiles=mobitru/web,web/phone/iphone \ | |
| -Pvividus.selenium.grid.capabilities.appium\:platformVersion=26 \ | |
| -Pvividus.selenium.grid.username=${MOBITRU_USER} \ | |
| -Pvividus.selenium.grid.password=${MOBITRU_KEY} \ | |
| -Pvividus.allure.history-directory=output/history/mt-ios-web-system-tests \ | |
| -Pvividus.allure.report-directory=output/reports/mt-ios-web-allure | |
| - name: Mobitru - IOS - Mobile - Web - Publish system tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: Mobitru - System Tests - Report - Web IOS | |
| path: vividus-tests/output/reports/mt-ios-web-allure | |
| - name: Mobitru - Android - Mobile App - Run system tests | |
| env: | |
| MOBITRU_USER: ${{ secrets.MOBITRU_USER }} | |
| MOBITRU_KEY: ${{ secrets.MOBITRU_KEY }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments= \ | |
| -Pvividus.configuration.suites=system/mobile_app/healthcheck/mobitru,system/mobile_app/android \ | |
| -Pvividus.configuration.profiles=mobitru/mobile_app,mobile_app/android \ | |
| -Pvividus.selenium.grid.username=${MOBITRU_USER} \ | |
| -Pvividus.selenium.grid.password=${MOBITRU_KEY} \ | |
| -Pvividus.selenium.grid.capabilities.platformVersion=13 \ | |
| -Pvividus.allure.history-directory=output/history/mt-android-system-tests \ | |
| -Pvividus.allure.report-directory=output/reports/mt-android-allure \ | |
| -Pvividus.allure.executor.name="Github Actions (Vividus)" \ | |
| -Pvividus.allure.executor.type=github \ | |
| -Pvividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions \ | |
| -Pvividus.allure.executor.build-order=${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.build-name="Mobitru Android System Tests ${GITHUB_RUN_ID}" \ | |
| -Pvividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-name="Mobitru Android System tests report" \ | |
| -Pvividus.mobitru.app-file-name=Android.Sample.app.2.7.1.apk \ | |
| -Pvividus.mobile-application.bundle-id=com.swaglabsmobileapp | |
| - name: Mobitru - Android - Mobile App - Publish system tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: Mobitru - System Tests - Report - Android | |
| path: vividus-tests/output/reports/mt-android-allure | |
| - name: Mobitru - IOS - Mobile App - Run system tests | |
| env: | |
| MOBITRU_USER: ${{ secrets.MOBITRU_USER }} | |
| MOBITRU_KEY: ${{ secrets.MOBITRU_KEY }} | |
| shell: bash | |
| run: | | |
| ./gradlew :vividus-tests:debugStories -Pvividus.configuration.environments= \ | |
| -Pvividus.configuration.suites=system/mobile_app/healthcheck/mobitru,system/mobile_app/ios \ | |
| -Pvividus.configuration.profiles=mobitru/mobile_app,mobile_app/ios \ | |
| -Pvividus.selenium.grid.username=${MOBITRU_USER} \ | |
| -Pvividus.selenium.grid.password=${MOBITRU_KEY} \ | |
| -Pvividus.mobile-environment.ios.use-workaround-to-hide-keyboard=false \ | |
| -Pvividus.allure.history-directory=output/history/mt-ios-system-tests \ | |
| -Pvividus.allure.report-directory=output/reports/mt-ios-allure \ | |
| -Pvividus.allure.executor.name="Github Actions (Vividus)" \ | |
| -Pvividus.allure.executor.type=github \ | |
| -Pvividus.allure.executor.url=https://github.com/vividus-framework/vividus/actions \ | |
| -Pvividus.allure.executor.build-order=${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.build-name="Mobitru iOS System Tests ${GITHUB_RUN_ID}" \ | |
| -Pvividus.allure.executor.build-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-url=https://github.com/vividus-framework/vividus/actions/runs/${GITHUB_RUN_ID} \ | |
| -Pvividus.allure.executor.report-name="Mobitru iOS System tests report" \ | |
| -Pvividus.mobitru.app-file-name=iOS.Sample.app.2.7.1.ipa \ | |
| -Pvividus.mobile-application.bundle-id=com.saucelabs.SwagLabsMobileApp | |
| - name: Mobitru - iOS - Mobile App - Publish system tests report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: Mobitru - System Tests - Report - iOS | |
| path: vividus-tests/output/reports/mt-ios-allure | |
| - name: Cache tests history | |
| if: always() && github.ref == 'refs/heads/master' | |
| uses: actions/cache/save@v5 | |
| with: | |
| path: vividus-tests/output/history | |
| key: mobile-tests-on-mobitru-history-cache-${{ github.sha }} | |
| restore-keys: | | |
| mobile-tests-on-mobitru-history-cache- |