Files
werkjournal/docs/implementation/consecutive-rollback-acceptance.md

31 lines
1.7 KiB
Markdown

# Consecutive failed releases (WJ-022)
The real-H2 rollback harness accepts `--failures 2`. It stages two distinct
candidate manifests B and C descending from known-good A. Each candidate
contains an additional Liquibase migration that persists a schema change and
then fails. The real deployment implementation must restore A and its fresh
database snapshot after each failure.
An identifiable work entry is inserted after A first becomes ready. After B
has failed and A is restored, the fixture writes another entry before C is
deployed. Both entries must survive C's rollback. This detects accidental reuse
of B's older snapshot as well as publication of either failed candidate.
Every round independently verifies partial migration, process termination,
restored database checksums, the selected executable and deployed manifest,
schema and migration history, and maintenance until readiness. The resulting
report contains a separate record for each candidate and restored commit.
The unchanged local service/HTTP boundaries and notification isolation are
described in `migration-rollback-acceptance.md`.
WJ-022 runs in `productionAcceptance` alongside WJ-020 and WJ-021. Its report is
`build/reports/production/two-failures.json`; its JVM logs are in the sibling
`two-failures-logs` directory, separate from the WJ-021 logs.
Verification: the standalone two-failure probe passed, then all three
production Gherkin scenarios / 16 steps passed together on 0.1.81-SNAPSHOT in
2m 18.682s. The targeted Gradle invocation excluded the already-tested JVM
suite; the normal CI pipeline retains that mandatory stage. The completion
push increments the version to 0.1.82-SNAPSHOT. CI verification of WJ-022 is
pending.