31 lines
1.7 KiB
Markdown
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.
|