43a69b82db
- Add `retention run` command (ports Invoke-RetentionPolicy.ps1): purges old artifact/log dirs with aggressive mode when disk space is low. - Add `template backup` command (ports Backup-CITemplate.ps1): 7z -mx=1 compressed archives in /var/lib/ci/backups/, prunes to keep-count=3, stops/restarts act-runner.service around the copy. - Update ci-retention-policy.service and ci-backup-template.service to use Python; pwsh is no longer required on the Linux host. - Fix ci-watch-runner-health.service: pass --service-name act-runner (Linux service name, not Windows act_runner default). - Fix _list_orphans in vm.py: wrap is_dir() inside the OSError try block so a stat() failure on an entry is silently skipped rather than raised. - Mark B5 complete in PhaseB-user-checklist.md. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
23 lines
571 B
Desktop File
23 lines
571 B
Desktop File
[Unit]
|
|
Description=Local CI/CD — purge old artifacts/logs/IP leases (retention policy)
|
|
Documentation=file:///opt/ci/local-ci-cd-system/deploy/systemd/README.md
|
|
After=network-online.target
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
User=ci-runner
|
|
Group=ci-runner
|
|
EnvironmentFile=/etc/ci/environment
|
|
WorkingDirectory=/opt/ci/local-ci-cd-system
|
|
ExecStart=/opt/ci/venv/bin/python -m ci_orchestrator retention run
|
|
TimeoutStartSec=1h
|
|
Nice=15
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
PrivateTmp=true
|
|
NoNewPrivileges=true
|
|
ReadWritePaths=/var/lib/ci /var/log/ci
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|