Αυτοματοποίηση
Η αυτοματοποίηση του Rudel αποτρέπει την επ' αόριστον συσσώρευση προσωρινών sandbox. Ένα ωριαίο συμβάν WP-Cron, το rudel_scheduled_cleanup, μπορεί να:
- εκτελεί την πολιτική εκκαθάρισης (λήξη, ηλικία και αδράνεια)
- εκτελεί εκκαθάριση συγχωνευμένων κλάδων
- αναφέρει sandbox που έχουν λήξει ή πλησιάζουν στη λήξη
Διαμόρφωση
Η αυτοματοποίηση διαβάζει αυτά τα κλειδιά από την επιλογή rudel_config. Η πλήρης λίστα βρίσκεται στη Διαμόρφωση.
| Κλειδί | Σκοπός | Προεπιλογή |
|---|---|---|
auto_cleanup_enabled |
Εκτέλεση της πολιτικής εκκαθάρισης σε κάθε συμβάν | 1 |
auto_cleanup_merged |
Αφαίρεση επίσης των sandbox με συγχωνευμένους κλάδους worktree Git | 0 |
expiring_environment_notice_days |
Αναφορά sandbox που λήγουν μέσα σε N ημέρες | 0 |
max_age_days |
Όριο ηλικίας που χρησιμοποιεί η πολιτική εκκαθάρισης | 0 |
max_idle_days |
Όριο αδράνειας που χρησιμοποιεί η πολιτική εκκαθάρισης | 0 |
default_ttl_days |
Λήξη που δίνεται στα νέα sandbox | 0 |
Με τις προεπιλεγμένες ρυθμίσεις, το συμβάν είναι προγραμματισμένο, αλλά αφαιρεί μόνο sandbox με ρητά ορισμένη λήξη στο παρελθόν, επειδή δεν έχει οριστεί όριο ηλικίας ή αδράνειας ούτε προεπιλεγμένος χρόνος ζωής (TTL).
WP-Cron
Η ενεργοποίηση προγραμματίζει το συμβάν και κάθε αίτημα ελέγχει ξανά το πρόγραμμα: το συμβάν υπάρχει όσο οποιοδήποτε από τα auto_cleanup_enabled, auto_cleanup_merged ή expiring_environment_notice_days είναι μη μηδενικό και αφαιρείται διαφορετικά. Η απενεργοποίηση το αφαιρεί.
Δεν υπάρχουν εντολές αυτοματοποίησης. Αλλάξτε τις ρυθμίσεις στο 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 εμφανίζει τα Auto cleanup, Auto cleanup merged, Expiry notice days και Automation scheduled.
Αναφορές λήξης
Όταν οριστεί το expiring_environment_notice_days, κάθε εκτέλεση συλλέγει τα sandbox με expires_at μέσα σε τόσες ημέρες και τα περνά στην ενέργεια rudel_after_automation_expiring_environments, χωρισμένα σε expiring και expired. Το Rudel δεν στέλνει ειδοποιήσεις από μόνο του· συνδέστε την ενέργεια με ειδοποίηση των κατόχων.
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'] );
}
}
);
Άμεση εκτέλεση
Χρησιμοποιήστε χειροκίνητη εκκαθάριση για προβλέψιμες τοπικές εκτελέσεις ή εκτελέσεις CI:
wp rudel cleanup --dry-run
wp rudel cleanup
Από το PHP, το Rudel::run_automation() εκτελεί τις ίδιες εργασίες με το συμβάν cron.