Release and recovery
A release process must answer three questions:
- What changed?
- Is the service healthy?
- How will the owner recover?
Normal release
Section titled “Normal release”-
Merge a valid pull request.
Confirm that all required GitHub checks pass.
-
Watch the Cloudflare build.
Confirm that Workers Builds uses the merged commit.
-
Check the service.
Test the public entry point and one critical path. Review errors and latency.
-
Record the result.
Keep the commit, deployment result, and any migration result.
Recovery decision
Section titled “Recovery decision”Use a code rollback when the previous code still supports the current data. Use a roll-forward when data or bindings make rollback unsafe.
Treat a database migration as a separate recovery problem. Reverting Worker code does not reverse a D1 schema or data change.
Required recovery information
Section titled “Required recovery information”- The current and previous deploy identifiers.
- The last known healthy commit.
- The migration state.
- The affected bindings and routes.
- The rollback or roll-forward action.
- The health check that ends the recovery.
Test schedule
Section titled “Test schedule”Test code recovery at least twice each year. Test database backup and restore when a project uses important D1 data.
High-risk projects need a shorter schedule. They can also require a human release gate or a staged production rollout.