on: workflow_dispatch: schedule: - cron: '@daily' jobs: integration-cleanup: if: vars.ROLE == 'forgejo-integration' runs-on: docker container: image: 'code.forgejo.org/oci/node:20-bookworm' steps: - name: apt install curl jq run: | export DEBIAN_FRONTEND=noninteractive apt-get update -qq apt-get -q install -qq -y curl jq - name: remove old releases and tags run: | url=https://any:${{ secrets.TOKEN }}@codeberg.org curl -sS "$url/api/v1/repos/forgejo-integration/forgejo/releases" | jq -r '.[] | "\(.published_at) \(.tag_name)"' | sort | while read published_at version ; do if echo $version | grep -e '-test$' >/dev/null; then old="18 months" else old="1 day" fi too_old=$(env -i date --date="- $old" +%F) too_old_seconds=$(env -i date --date="- $old" +%s) published_at_seconds=$(env -i date --date="$published_at" +%s) if test $published_at_seconds -le $too_old_seconds ; then echo "$version was published more than $old ago ($published_at <= $too_old) and will be removed" curl -X DELETE -sS "$url/api/v1/repos/forgejo-integration/forgejo/releases/tags/$version" curl -X DELETE -sS "$url/api/v1/repos/forgejo-integration/forgejo/tags/$version" else echo "$version was published less than $old ago" fi done