Skip to content

[ZEPPELIN-6383] Restore Spark dynamic-form E2E coverage in frontend CI - #5615

Draft
miinhho wants to merge 4 commits into
apache:masterfrom
miinhho:ZEPPELIN-6383-spark-dynamic-forms-e2e
Draft

miinhho wants to merge 4 commits into
apache:masterfrom
miinhho:ZEPPELIN-6383-spark-dynamic-forms-e2e

Conversation

@miinhho

@miinhho miinhho commented Nov 12, 2026

Copy link
Copy Markdown
Contributor

What is this PR for?

Restore the missing Playwright scenario for Spark dynamic forms. The test verifies the default values of z.input and z.select, edits both controls, and checks that the next Spark execution uses the changed values. Interpreter errors and failed assertions fail the scenario; environments without declared Spark support report it as skipped.

Frontend CI provisions Spark 3.5.8 with Hadoop 3 and Scala 2.12, then runs the scenario in a dedicated step in both anonymous and authenticated modes. Spark is excluded from ordinary E2E interpreter discovery so installing it does not change those tests’ default interpreter selection. The dedicated step uses its own notebook directory and report, with one worker and no retries.

What type of PR is it?

Improvement

What is the Jira issue?

How should this be tested?

With a Zeppelin server built with the Spark interpreter and Scala 2.12 support, set SPARK_HOME before starting the server, then run:

cd zeppelin-web-angular
ZEPPELIN_E2E_REQUIRE_SPARK=true npm run e2e:fast -- tests/notebook/paragraph/dynamic-forms.spec.ts --retries=0

Verify that:

  • The forms initially show World and Under 18, with output containing Name: World and Age: 1.
  • Editing them to Zeppelin and 18-65 changes the next execution’s output to Name: Zeppelin and Age: 2.
  • Running without ZEPPELIN_E2E_REQUIRE_SPARK reports the scenario as skipped.
  • Changing an expected output in a disposable copy makes the command exit unsuccessfully.

In frontend CI, verify that Run Spark dynamic-form E2E executes in both authentication modes and uploads its separate Playwright report.

Questions:

  • Does the license files need to update? No.
  • Is there breaking changes for older versions? No.
  • Does this needs documentation? No.

Verify form defaults and edited values through real Spark execution. Report undeclared Spark support as skipped and propagate interpreter and assertion failures.
Build the Spark interpreter and Scala 2.12 support. Run the dynamic-form scenario with Spark 3.5.8 in both authentication modes, using isolated notebook storage and a separate report. Exclude Spark from ordinary E2E interpreter discovery.
@miinhho miinhho changed the title Zeppelin 6383 spark dynamic forms e2e [ZEPPELIN-6383] Restore Spark dynamic-form E2E coverage in frontend CI Nov 12, 2026
Keep web-dist active when spark-scala-2.12 is explicitly selected so the classic UI build generates dist/WEB-INF/web.xml before WAR packaging.
@miinhho
miinhho marked this pull request as draft November 12, 2026 13:56
@miinhho

miinhho commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor Author

This PR adds a new Spark cache, Linux-spark-e2e-3.5.8-hadoop3, which uses approximately 300 MB. The repository’s cache usage is already close to the 10 GB free limit, so merging this PR risks exceeding it.

If cache usage exceeds the limit, GitHub Actions can evict existing caches. Rebuilding those caches can add 10 minutes or more to CI jobs.

I plan to reduce the existing cache usage in ZEPPELIN-6773. Until then, I suggest keeping this PR in draft.

@miinhho

miinhho commented Nov 13, 2026

Copy link
Copy Markdown
Contributor Author

Commit 37d902d fixes an existing paragraph focus race exposed by the dynamic-form E2E test. A deferred paragraph focus callback could take focus away from the form input before text was inserted, causing the Firefox and WebKit scenarios to fail. The fix is included here because it is needed for the restored scenario to work reliably.

The commit also adds focused unit tests for the regression. There was no existing spec directly testing paragraph.component.ts; the new tests cover only its paragraph focus behavior. I plan to create a separate issue under ZEPPELIN-6647 to expand coverage of the component’s other behaviors with TestBed-based tests.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant