Landingpage/.forgejo/workflows/purge-logs.yml
JaysonCleve 2535f60422
All checks were successful
Deploy landingpage / deploy (push) Successful in 1s
purge fensterputzer logs too
2026-11-05 21:04:37 +01:00

38 lines
1.1 KiB
YAML

name: Purge logs
# Die Datenschutzerklaerung sagt: Logfiles werden nach spaetestens 4 Wochen geloescht.
# Docker loescht das Log eines Containers beim Neuerstellen. Der Job laeuft taeglich
# und prueft das Alter, damit ein ausgefallener Lauf am naechsten Tag nachgeholt wird.
on:
schedule:
- cron: "0 3 * * *"
workflow_dispatch:
concurrency:
group: purge-logs
jobs:
purge:
runs-on: deploy-host
steps:
- name: Recreate containers once their logs are 27 days old
run: |
set -e
max_age_days=27
for target in portfolio:/opt/noctura/noctura fensterputzer:/opt/fensterputzer; do
container=${target%%:*}
dir=${target#*:}
created=$(docker inspect --format '{{.Created}}' "$container")
age_days=$(( ($(date +%s) - $(date -d "$created" +%s)) / 86400 ))
echo "$container log age: $age_days days"
if [ "$age_days" -ge "$max_age_days" ]; then
cd "$dir"
docker compose up -d --force-recreate --no-build
echo "$container log deleted"
fi
done