Otomatisasi
Otomatisasi Rudel mencegah sandbox sementara menumpuk selamanya. Satu event rudel_scheduled_cleanup WP-Cron per jam dapat:
- menjalankan kebijakan pembersihan (masa berlaku, usia, dan waktu tidak aktif)
- menjalankan pembersihan cabang yang telah digabung
- melaporkan sandbox yang sudah melewati masa berlaku atau hampir kedaluwarsa
Konfigurasi
Otomatisasi membaca kunci ini dari opsi rudel_config. Daftar lengkapnya ada di Konfigurasi.
| Kunci | Tujuan | Default |
|---|---|---|
auto_cleanup_enabled |
Menjalankan kebijakan pembersihan pada setiap event | 1 |
auto_cleanup_merged |
Juga menghapus cabang worktree Git yang telah digabung | 0 |
expiring_environment_notice_days |
Melaporkan sandbox yang akan kedaluwarsa dalam N hari | 0 |
max_age_days |
Batas usia yang digunakan kebijakan pembersihan | 0 |
max_idle_days |
Batas waktu tidak aktif yang digunakan kebijakan pembersihan | 0 |
default_ttl_days |
Masa berlaku untuk sandbox baru | 0 |
Dengan default, event dijadwalkan tetapi hanya menghapus sandbox yang memiliki masa berlaku eksplisit di masa lalu, karena batas usia dan waktu tidak aktif serta TTL default tidak ditetapkan.
WP-Cron
Aktivasi menjadwalkan event, dan setiap permintaan memeriksa ulang jadwal: event ada selama salah satu dari auto_cleanup_enabled, auto_cleanup_merged, atau expiring_environment_notice_days bernilai bukan nol, dan dihapus jika tidak. Penonaktifan menghapusnya.
Tidak ada perintah otomatisasi. Ubah pengaturan di rudel_config:
wp option update rudel_config '{"auto_cleanup_enabled":1,"max_idle_days":7,"expiring_environment_notice_days":2}' --format=json
wp rudel status
wp rudel status menampilkan Auto cleanup, Auto cleanup merged, Expiry notice days, dan Automation scheduled.
Laporan masa berlaku
Jika expiring_environment_notice_days ditetapkan, setiap proses mengumpulkan sandbox dengan expires_at dalam jumlah hari tersebut dan meneruskannya ke tindakan rudel_after_automation_expiring_environments, yang dibagi menjadi expiring dan expired. Rudel tidak mengirim notifikasi sendiri; hubungkan tindakan tersebut ke notifikasi bagi pemilik.
add_action(
'rudel_after_automation_expiring_environments',
function ( array $report ): void {
foreach ( $report['expiring'] as $sandbox ) {
error_log( $sandbox['id'] . ' expires at ' . $sandbox['expires_at'] );
}
}
);
Menjalankannya sekarang
Gunakan pembersihan manual untuk proses lokal atau CI yang hasilnya dapat dipastikan:
wp rudel cleanup --dry-run
wp rudel cleanup
Dari PHP, Rudel::run_automation() menjalankan tugas yang sama dengan event cron.