Donavan Fritz f1dbdafb0c fix(prune): paginate package list so old tags past page 1 are actually pruned
The org now has more container versions than one API page returns; the
unpaginated list dropped a package's older numeric tags, so KEEP-based
pruning silently left them (base/runner crept to 5). Loop pages at the
max page size instead.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 21:21:23 -05:00
2026-05-06 08:07:18 -05:00

action/image-push

Composite Gitea Action that pushes a locally-built image to code.fritzlab.net and prunes old numeric tags via the Gitea package API.

Pair with action/image-build — image-build loads the image to the runner's local Docker daemon, image-push uploads it.

Usage

- uses: actions/checkout@v4
- uses: https://code.fritzlab.net/action/image-build@v1
  with:
    image: code.fritzlab.net/fritzlab/chrony
- uses: https://code.fritzlab.net/action/image-push@v1
  with:
    image: code.fritzlab.net/fritzlab/chrony
    token: ${{ secrets.CI_BOT_TOKEN }}
    org: fritzlab
    name: chrony

Inputs

Name Required Default Description
image yes Full image name without tag.
tag no github.run_number Tag to push (must already exist locally).
token yes CI_BOT_TOKEN — registry login + cleanup API.
org yes Gitea org for package API (fritzlab, dns).
name yes Package name as registered in the registry.
latest no true Also push a :latest tag.
keep no 3 Numeric tags to retain. Older are deleted.

Behavior

  1. docker login code.fritzlab.net as ci-bot.
  2. docker push <image>:<tag>.
  3. If latest=true, also docker push <image>:latest.
  4. Prune: list numeric tags from Gitea package API, keep the newest keep, delete the rest. Failures here do not fail the workflow (continue-on-error: true).
S
Description
fritzlab composite action: image-push
Readme 30 KiB