Skip to content

Chrome (non-gating) #20

Chrome (non-gating)

Chrome (non-gating) #20

Workflow file for this run

name: Chrome (non-gating)
# Chrome on GitHub's Ubuntu runners intermittently drops clicks against this
# application: WebDriver accepts the click, the page never receives it, and
# three retries in a row fail. The same commit is green on Chrome locally
# (repeatedly, headless and headed) and green on Firefox on this same runner.
#
# Four things were tried and did not fix it — fewer parallel threads, a
# hit-test and layout-stability probe before each click, a verified-click retry
# loop, and running headed under Xvfb. The verified-click retry stays in the
# framework because it turns a silent wrong result into a clear failure message.
#
# Rather than leave a red badge on work that passes everywhere else, Chrome runs
# here: scheduled and on demand, reported, and not gating. The README documents
# the full investigation under "An open finding".
on:
schedule:
# Nightly, an hour after the gating suite.
- cron: '30 19 * * *'
workflow_dispatch:
inputs:
suite:
description: 'TestNG suite to run'
type: choice
default: testng.xml
options: [testng.xml, testng-smoke.xml]
headless:
description: 'Run headless'
type: boolean
default: true
permissions:
contents: read
jobs:
chrome:
name: Chrome
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
cache: maven
- name: Record the browser and driver versions
run: |
google-chrome --version || true
# Selenium Manager resolves the driver, so the pair it actually picks
# is worth recording: a patch-level drift between Chrome and
# chromedriver was one of the hypotheses investigated.
echo "Selenium Manager will resolve chromedriver at run time."
- name: Run the suite
run: |
./mvnw -B test \
-Dsuite=${{ inputs.suite || 'testng.xml' }} \
-Dbrowser=chrome \
-Dheadless=${{ inputs.headless == null && 'true' || inputs.headless }} \
-Dthreads=2
- name: Upload Allure results
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v5
with:
name: allure-results-chrome
path: target/allure-results
retention-days: 7
- name: Upload Surefire reports
if: failure()
uses: actions/upload-artifact@v5
with:
name: surefire-reports-chrome
path: target/surefire-reports
retention-days: 7