Lewati ke konten

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:

Shell
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.

PHP
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:

Shell
wp rudel cleanup --dry-run
wp rudel cleanup

Dari PHP, Rudel::run_automation() menjalankan tugas yang sama dengan event cron.