Skip to content

ci: add release-to-current multi-service upgrade coverage? #107

Description

@Sam-Hui-dot

Hi! I noticed Spliit Cloud's CI covers fresh PostgreSQL migrations, application
tests, integration tests, and Compose validation, but does not currently
exercise a coordinated upgrade from published migrate/api/worker/web images
while retaining an existing PostgreSQL volume.

Would you be open to adding a focused regression check for that path?

I prepared a fork-only candidate that:

  • starts the latest immutable rolling release of the migrate, API, worker, and
    web images;
  • creates a synthetic three-person group and expense through the real
    anonymous-auth and tRPC application paths;
  • builds all four application services from the current checkout;
  • converges the same Compose project while retaining the PostgreSQL container
    and named volume;
  • verifies the exact expense, payer, split relationships, and calculated
    balances;
  • confirms the target migration service reruns successfully with no pending
    migrations.

The GitHub-hosted validation passed here:

https://github.com/Sam-Hui-dot/spliit-cloud/actions/runs/33253615776

The candidate uses a dedicated test Compose file and does not modify
application code or the production Compose topology. UpgradeProof v0.1.0 is
pinned to its immutable Action commit, and the workflow requires no secrets or
production runtime dependencies.

One limitation is that the latest immutable release currently points at the
same product commit as main, so today's run validates the published-image →
current-build release-state convergence and persistent-state invariants, but
does not yet exercise an actual product or migration delta. The check would
begin exercising those deltas automatically as future PRs introduce
state-affecting changes or migrations.

If this kind of coverage fits the project's CI preferences, I can provide the
prepared candidate diff for review and adjust its scope if needed.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions