From a3b139c9b1d281c55c140a1360b4b3c36c60a140 Mon Sep 17 00:00:00 2001 From: mengw15 <125719918+mengw15@users.noreply.github.com> Date: Fri, 10 Jul 2026 12:35:19 -0700 Subject: [PATCH] ci: add a texera-web boot smoke test in amber-integration Boot the packaged texera-web (bin/texera-web-application) against amber-integration's infra and assert it reaches a listening state without a runtime classpath/linkage crash -- the check that would have caught #6204 (Hadoop 3.4 -> Jersey NoClassDefFoundError) before merge. Mirrors the platform-integration boot checks (#6274): the dist is built in-job (self-contained, no artifact hand-off from the amber job) and booted via .github/scripts/smoke-boot.sh. texera-web boots on postgres only (TexeraWebApplication.run -> SqlServer.initConnection; no S3 / LakeFS), which amber-integration already provisions. ubuntu-only, since the boot is pure-JVM and OS-independent. Closes #6276. --- .github/workflows/build.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a501a70369..67943b907e6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -613,6 +613,32 @@ jobs: sbt scalafmtCheckAll \ "scalafixAll --check" \ "WorkflowExecutionService/test" + - name: Build amber dist for the texera-web boot test + # Boot smoke test for texera-web (mirrors platform-integration for the + # platform services): launch the packaged app and assert it reaches a + # listening state without a runtime classpath/linkage crash — the check + # that would have caught #6204 (Hadoop 3.4 -> Jersey NoClassDefFoundError) + # before merge. Self-build the dist here rather than pulling it in from + # the `amber` job as an artifact, so this job stays independent of + # `amber` and runs in parallel (as platform-integration does vs + # platform); the sbt compile is already warm from the integration-test + # run above. ubuntu-only: the boot is pure-JVM and OS-independent. + if: matrix.os == 'ubuntu-latest' + run: sbt "WorkflowExecutionService/dist" + - name: Unzip amber dist + if: matrix.os == 'ubuntu-latest' + run: | + mkdir -p /tmp/dists + unzip -q amber/target/universal/amber-*.zip -d /tmp/dists/ + - name: Smoke-test texera-web boots + # texera-web boots on postgres only (TexeraWebApplication.run -> + # SqlServer.initConnection; no S3 / LakeFS), already provisioned above. + # It resolves its config via Utils.amberHomePath, which searches the + # working directory for a directory named `amber`; run from the checkout + # root (the default) that resolves to ./amber and reads + # amber/src/main/resources/web-config.yml (port 8080). + if: matrix.os == 'ubuntu-latest' + run: .github/scripts/smoke-boot.sh "/tmp/dists/amber-*/bin/texera-web-application" 8080 - name: Run Python integration tests # --junit-xml feeds the Test Analytics upload below. run: |