自動化
Rudelの自動化により、使い捨てのサンドボックスがいつまでも溜まらないようにできます。1時間ごとのWP-Cronイベントrudel_scheduled_cleanupでは、次の処理を実行できます。
- クリーンアップポリシー(有効期限、経過期間、アイドル状態)を実行する
- マージ済みブランチのクリーンアップを実行する
- 期限切れまたは期限が近いサンドボックスを報告する
設定
自動化では、rudel_configオプションから次のキーを読み取ります。全項目は設定に記載されています。
| キー | 目的 | 既定値 |
|---|---|---|
auto_cleanup_enabled |
イベントごとにクリーンアップポリシーを実行する | 1 |
auto_cleanup_merged |
マージ済みGit worktreeブランチを持つサンドボックスも削除する | 0 |
expiring_environment_notice_days |
N日以内に期限切れとなるサンドボックスを報告する | 0 |
max_age_days |
クリーンアップポリシーで使う経過期間の上限 | 0 |
max_idle_days |
クリーンアップポリシーで使うアイドル期間の上限 | 0 |
default_ttl_days |
新しいサンドボックスに設定する有効期限 | 0 |
既定の設定ではイベントは登録されますが、明示的な有効期限が過去になったサンドボックスだけが削除されます。経過期間やアイドル期間の上限、および既定の有効期限は設定されていません。
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が設定されていると、実行ごとに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イベントと同じ処理が実行されます。