Skip to content

ci: migrate validation to GitHub Actions#9286

Open
manolo wants to merge 4 commits into
25.1from
ci/validation-gha-25.1
Open

ci: migrate validation to GitHub Actions#9286
manolo wants to merge 4 commits into
25.1from
ci/validation-gha-25.1

Conversation

@manolo
Copy link
Copy Markdown
Member

@manolo manolo commented May 13, 2026

Ports the GitHub Actions validation workflow from main to 25.1, replacing the legacy TeamCity build.sh.

  • Adds .github/workflows/validation.yml (node 20 for 25.1 compatibility)
  • Removes scripts/build.sh
  • Updates scripts/wtr.js: adds JUnit reporter, --ignore-scripts for npm install
  • Updates scripts/run.js: adds -Djetty.scan=5
  • Adds skipSvgChartsBuild to svg-generator pom.xml to skip npm/webpack when bundle is cached

@manolo manolo force-pushed the ci/validation-gha-25.1 branch from bb16c8a to c821b21 Compare May 13, 2026 10:46
@manolo manolo force-pushed the ci/validation-gha-25.1 branch 9 times, most recently from f371d01 to 8a11690 Compare May 13, 2026 14:18
@manolo manolo force-pushed the ci/validation-gha-25.1 branch from 8a11690 to 16ac381 Compare May 13, 2026 14:54
Revert the AbstractComponentIT rewrite from #9217 back to the original
25.1 implementation that delegates to flow-test-util. This restores the
known-working TestBench setup used by TeamCity.

Add two complementary Chrome flags in the GHA its job so Chrome can
start inside the GHA sandbox environment:

- TESTBENCH_CHROME_EXTRA_ARGS: picked up by updateHeadlessChromeOptions()
  for tests going through flow-test-util AbstractComponentIT
- -DchromeOptions: picked up by TestBench Parameters.getChromeOptions()
  for tests going through ParallelRunner / LocalDriver.createDriver()
  (Charts tests and any test annotated with RunWith(ParallelRunner))

Also revert the parallelism settings introduced in #9217 (testsInParallel=2,
test.reuseDriver, unit test thread parallelism) since the original
AbstractComponentIT does not implement thread-local driver management.

Restore the four source files changed in #9217:
- AbstractComponentIT.java: back to simple wrapper extending flow-test-util
- AbstractChartIT.java: @OverRide setup() instead of @before setup()
- LitRendererIT.java: drag(itemContent) instead of executeScript
- TimePickerLocalizationIT.java: restore getDeploymentPort() override

surefire-junit47 is kept in the failsafe plugin (from previous fix) as
it is required for correct test discovery with TestBench ParallelRunner
when using -Dit.test= shard filtering.
@vaadin vaadin deleted a comment from github-actions Bot May 13, 2026
manolo added 2 commits May 13, 2026 18:36
…yVariables

Maven -D properties set on the command line belong to the Maven JVM and
are NOT automatically forwarded to the JVM processes forked by Failsafe.
The correct mechanism is systemPropertyVariables.

Add a profile that activates when -DchromeOptions is explicitly passed
and injects the value into Failsafe systemPropertyVariables so that
TestBench's Parameters.getChromeOptions() receives the flags in the
forked test JVM.

The GHA its job already passes -DchromeOptions=--no-sandbox,--disable-dev-shm-usage.
This profile makes that flag actually reach Chrome inside the forked JVM.
TeamCity is unaffected because it does not pass -DchromeOptions.
@sonarqubecloud
Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant