Repository navigation
v1.1.12 — tier 4 cross-version upgrade test
What's new
The fourth and final tier of the testing strategy is in place. Every PR touching orchestration code now exercises both the brand-new-user install path AND the actual upgrade path before it can merge.
What's tested
| Tier | What it catches |
|---|---|
| 1. Install smoke | Container/network/install regressions |
| 2. API contracts | Backend ↔ frontend response-shape drift |
| 3. Playwright UI | Brand-new-user click-flow regressions |
| 4. Cross-version upgrade | Upgrade path itself broken — the bug class that historically hit hardest |
Tier 4 specifically:
- Detects the latest released tag (e.g. v1.1.11)
- Checks out that tag and runs
scripts/install.shagainst it - Waits for the baseline stack to be healthy
- Captures the baseline version + commit SHA
- Runs the baseline's
upgrade.shtargeting the PR HEAD commit (mirrors the actual user flow — the on-disk script is whatever version they're already on) - Asserts upgrade landed on the requested commit +
/healthstill answers + updater sidecar isn't crashlooping
PR-introduced upgrade.sh changes get caught in the next release's Tier 4 cycle. So every release validates the previous release's upgrade path before its own changes ever ship — a built-in regression net for the kind of bugs we kept hitting today (annotated-tag SHA dereference in #19, bootstrap untracked files in #19, env-merge openssl crash in #33).
Total CI cost
| wall-clock | |
|---|---|
| Existing CI (lint, unit, build) | ~3 min |
| Tier 1 + 2 + 3 (sequential, single Ubuntu runner) | ~10 min |
| Tier 4 (parallel, separate runner) | ~12 min |
| Total | ~12 min for orchestration PRs |
What's next
The four-tier scaffolding is complete. Future work fills it in:
- More Tier 3 Playwright tests (login, settings tabs, in-app upgrade click → progress log → restart UX)
- Tier 4 enhancement: also test rollback (
upgrade.sh --rollbackafter a deliberately-broken target) - Possibly: install-smoke matrix across Debian / Pi / minimal Alpine for prereq validation across distros
PRs in this release
- #39 `ci(e2e): tier 4 — cross-version upgrade test (v(N-1) → PR HEAD)`
Full changelog in CHANGELOG.md.