Migrations: a live test against a server image #278

Merged
jcoffey-dev merged 1 commits from feat/migrations-live-test into main 2026-10-31 05:10:09 +00:00
Owner

Step 4 of the migrations work: a live test against a server image, run on demand.

python3 tests/resources/migrations/live-image-test.py IMAGE (Docker and python3 only; it removes everything it starts):

  1. Dovecot with a@ (3 messages) and b@ (2, plus a 2,000-message Bulk folder), and a master login.
  2. The server: recovery mode for a domain and an administrator, then a normal start.
  3. Preview; the image's own inbuxa-migrate runs it.
  4. Move, and docker restart the server once a@ is done: the run is interrupted, and a move without the secret is refused.
  5. Move again with the secret: the report has a@ done earlier and b@ carried on to the end; the mailboxes are whole, nothing twice (b@: Inbox 1, Projects 1, Bulk 2000).
  6. The passwords sign both in; a message sent to a@ at Dovecot comes over with the final pass.
  7. Close: the work directory is gone.

Passed against an image built from main at 2189c4a (docker buildx build --platform linux/amd64 --load), which carries inbuxa-migrate 27.1-rc.8.

Also: seed.py --bulk N, and a Tests section in docs/spec/features/migrations.md naming all three migration tests.

Step 4 of the migrations work: a live test against a server image, run on demand. `python3 tests/resources/migrations/live-image-test.py IMAGE` (Docker and python3 only; it removes everything it starts): 1. Dovecot with a@ (3 messages) and b@ (2, plus a 2,000-message Bulk folder), and a master login. 2. The server: recovery mode for a domain and an administrator, then a normal start. 3. Preview; the image's own inbuxa-migrate runs it. 4. Move, and `docker restart` the server once a@ is done: the run is `interrupted`, and a move without the secret is refused. 5. Move again with the secret: the report has a@ `done earlier` and b@ carried on to the end; the mailboxes are whole, nothing twice (b@: Inbox 1, Projects 1, Bulk 2000). 6. The passwords sign both in; a message sent to a@ at Dovecot comes over with the final pass. 7. Close: the work directory is gone. Passed against an image built from main at 2189c4a (`docker buildx build --platform linux/amd64 --load`), which carries inbuxa-migrate 27.1-rc.8. Also: `seed.py --bulk N`, and a Tests section in docs/spec/features/migrations.md naming all three migration tests.
jcoffey-dev added 1 commit 2026-10-31 04:59:27 +00:00
Migrations: a live test against a server image
ci / fork-checks (pull_request) Skipped
ci / build (pull_request) Skipped
github/ci (branch) GitHub Actions
ci / github (pull_request) Successful in 10m25s
d85c6cf291
tests/resources/migrations/live-image-test.py IMAGE moves two accounts
from a Dovecot with the image's own inbuxa-migrate, and restarts the
server once the first is done. The run shows as interrupted, the secret
is gone with the restart, and the move carries on with it given again:
the first account "done earlier", the second to the end, every mailbox
whole and nothing twice. Then the passwords, a final pass that brings a
late message, and close. Docker and python3 only; it removes what it
starts.

seed.py takes --bulk N, a folder big enough for a run to be cut off.
jcoffey-dev merged commit 13618afb86 into main 2026-10-31 05:10:09 +00:00
jcoffey-dev deleted branch feat/migrations-live-test 2026-10-31 05:10:09 +00:00
Sign in to join this conversation.