name: "π§Ή Prune CI images"
run-name: "${{ github.event_name == 'schedule' && 'β° ' || '' }}π§Ή Prune CI images"
on:
schedule:
- cron: "0 0 * * 6"
workflow_dispatch:
inputs:
days:
description: "π§Ή Delete CI images older than N days (default: 7)"
required: false
default: "7"
type: string
permissions:
contents: read
concurrency:
group: images-cleanup-ci
cancel-in-progress: false
jobs:
cleanup:
name: π§Ή Delete old ci-* image versions
runs-on: ubuntu-26.04
permissions:
actions: read
contents: read
packages: write
pull-requests: read
steps:
- uses: actions/checkout@v7.0.0
- name: π Resolve image metadata
id: vars
shell: bash
run: |
set -euo pipefail
source scripts/meta/env/load.sh
{
echo "owner=$(scripts/meta/resolve/repository/owner.sh)"
echo "repo_prefix=$(scripts/meta/resolve/repository/name.sh)"
echo "distros=${INFINITO_DISTROS}"
} >> "$GITHUB_OUTPUT"
- name: π¦ Install jq
shell: bash
run: ./scripts/install/apt.sh jq
- name: π§Ή Cleanup old ci-* versions
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OWNER: ${{ steps.vars.outputs.owner }}
DAYS: ${{ github.event.inputs.days || '7' }}
REPO_PREFIX: ${{ steps.vars.outputs.repo_prefix }}
INFINITO_DISTROS: ${{ steps.vars.outputs.distros }}
run: |
set -euo pipefail
./scripts/image/cleanup.sh