Skip to content

chore: delete untagged images (keeping 10) #5

chore: delete untagged images (keeping 10)

chore: delete untagged images (keeping 10) #5

Workflow file for this run

name: Cleanup old images
on:
schedule:
- cron: '0 0 * * *' # 12am every day
workflow_dispatch:
pull_request:
permissions:
packages: write
jobs:
cleanup:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
image: [lumina]
steps:
- name: Delete untagged images
uses: actions/delete-package-versions@0d39a63126868f5eefaa47169615edd3c0f61e20 # v4
with:
package-name: eternal-linux/${{ matrix.image }}
package-type: container
min-versions-to-keep: 10
delete-only-untagged-versions: 'true'
token: ${{ secrets.GITHUB_TOKEN }}
- name: Wait for rate limit reset
uses: actions/github-script@v3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const rateLimitInfo = github.getOctokit(context.token).rest.rateLimit.get().then(result => result.data.resources.core);
const resetTimestamp = new Date(rateLimitInfo.reset * 1000);
const sleepTime = resetTimestamp - new Date() + 5000; // add 5 seconds to be sure the rate limit has been reset
console.log(`Rate limit reset at ${resetTimestamp}`);
console.log(`Sleeping for ${sleepTime}ms`);
await new Promise(resolve => setTimeout(resolve, sleepTime));
- name: Delete PR images
uses: actions/delete-package-versions@0d39a63126868f5eefaa47169615edd3c0f61e20 # v4
with:
package-name: eternal-linux/${{ matrix.image }}
package-type: container
min-versions-to-keep: 50
ignore-versions: '^(?!pr[0-9]{2}-).+$'
token: ${{ secrets.GITHUB_TOKEN }}