Skip to content

Add CI smoke tests that each service boots successfully #6220

Closed

Description

@mengw15

Task Summary

CI builds each service's distributable and runs its unit tests, but never starts the packaged service. Runtime classpath problems that compile cleanly and pass unit tests — but crash the moment main runs — slip through. Two recent dependency upgrades did exactly this on main:

Both were found and fixed manually after landing on main. A per-service boot check in CI would have caught them before merge.

Current state

The platform job builds each service (sbt "${sbt_project}/dist" "${sbt_project}/jacoco"), unzips the dist, and validates LICENSE/NOTICE — but there is no step that launches the built service and confirms it starts. The affected services: config-service, access-control-service, file-service, computing-unit-managing-service, workflow-compiling-service, notebook-migration-service, plus the amber texera-web app.

Suggested direction

Add a CI step/job that launches each packaged service from its built dist and asserts it reaches a started state (health endpoint responds, or a "server started" log line, or simply the process survives N seconds) rather than crashing on boot.

  • Both incidents crashed early in initialization (Dropwizard Jersey setup / ComputingUnitManagingService.initialize), before touching a database — so even a shallow "launch and assert the process doesn't die with a linkage / NoClassDefFoundError / module error within N seconds" check catches them, without a fully provisioned backing environment.
  • Services that need backing infra to start fully (postgres, minio, …) can reuse what the platform / amber-integration jobs already provision, or run a fail-fast boot mode.

References — incidents: #6204 / #6205 (texera-web), #6206 / #6209 (computing-unit-managing-service); triggering upgrades: #6201 (Hadoop), #6185 (Arrow).

Task Type

  • Refactor / Cleanup
  • DevOps / Deployment / CI
  • Testing / QA
  • Documentation
  • Performance
  • Other

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions