Skip to content

Automatic Cleanup

Shipfe provides configurable automatic cleanup of old releases and unused shared resources.

Configuration Options

json
{
  "keep_releases": 5,
  "delete_old": false
}
  • Keep the most recent 5 releases
  • Automatically delete old releases
  • Works with shared resource cleanup

delete_old (Legacy)

json
{
  "delete_old": true
}
  • Delete all old releases after each deployment
  • Keep only the current deployment
  • Overrides keep_releases setting

Cleanup Process

Release Cleanup

  1. Sort releases by modification time (newest first)
  2. Keep the specified number of recent releases
  3. Completely delete old release directories

Shared Resource Cleanup (when enable_shared: true)

  1. Scan all remaining release snapshots
  2. Collect all currently referenced hashed resources
  3. Delete unreferenced files from shared/assets/

Cleanup Behavior Example

Before Cleanup (7 releases)

releases/
├── 20260301_100000/  (oldest)
├── 20260302_100000/
├── 20260303_100000/
├── 20260304_100000/
├── 20260305_100000/
├── 20260306_100000/
└── 20260307_100000/  (newest, current)

After Cleanup (keep_releases: 3)

releases/
├── 20260305_100000/  (kept)
├── 20260306_100000/  (kept)
└── 20260307_100000/  (kept, current)

Old releases automatically deleted

Monitoring Cleanup

bash
# Check current releases
ls -la releases/

# View cleanup logs in shipfe.log
tail -f shipfe.log | grep -i "cleanup\|remove"