Stop Convex contract previews from piling up and steady the upgrade test cleanup (#205)

The convex-contract job left one preview deployment behind per PR, and
after about 25 merged PRs the team hit its deployment quota of 40, so
every PR failed with DeploymentQuotaReached. The job now records the
preview's URL when Convex claims it (via --cmd, which runs before the
push), sets it to expire in an hour, and deletes it in a final always()
step through the Management API using the same preview deploy key.

The Windows upgrade and rollback test removed the app support folder
straight after killing Icarus, so a helper still holding 000003.log made
the delete fail, and because it threw inside finally it hid the real
result. Cleanup now waits for Icarus and any process using the support
folder to exit, retries the delete, and only fails the run when the test
itself passed.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
8ce645e605Dara Adedeji committed on 9/27/2026, 1:59:10 AM· committed by GitHubparent66dc33d
3 files changedLine totals unavailable