-
Notifications
You must be signed in to change notification settings - Fork 1
81 lines (71 loc) · 2.59 KB
/
Copy pathchrome.yml
File metadata and controls
81 lines (71 loc) · 2.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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