Retention policy for web GHCR docker packages #723
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Retention policy for web GHCR docker packages | |
| on: | |
| schedule: | |
| - cron: '30 4 * * *' # Running everyday at 04:30 AM | |
| workflow_dispatch: | |
| jobs: | |
| cleanup-packages: | |
| name: Cleanup old GHCR docker packages | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read # Needed to checkout the repository if the action requires it (though this specific action might not) | |
| packages: write # This is the crucial permission for deleting packages from GHCR | |
| steps: | |
| - name: Cleanup web outdated PR packages | |
| uses: snok/container-retention-policy@v2 | |
| with: | |
| image-names: ${{ github.event.repository.name }}-web | |
| cut-off: 1 day ago UTC | |
| timestamp-to-use: created_at | |
| account-type: org | |
| org-name: ${{ github.repository_owner }} | |
| keep-at-least: 0 | |
| untagged-only: true | |
| token: ${{ secrets.SNOK_RETENTION_GITHUB_TOKEN }} | |
| - name: Cleanup web latest but old PR packages | |
| uses: snok/container-retention-policy@v2 | |
| with: | |
| image-names: ${{ github.event.repository.name }}-web | |
| cut-off: 3 days ago UTC | |
| timestamp-to-use: created_at | |
| account-type: org | |
| org-name: ${{ github.repository_owner }} | |
| keep-at-least: 0 | |
| filter-include-untagged: false | |
| filter-tags: pr-* | |
| token: ${{ secrets.SNOK_RETENTION_GITHUB_TOKEN }} | |
| - name: Cleanup web outdated master packages | |
| uses: snok/container-retention-policy@v2 | |
| with: | |
| image-names: ${{ github.event.repository.name }}-web | |
| cut-off: 2 days ago UTC | |
| timestamp-to-use: created_at | |
| account-type: org | |
| org-name: ${{ github.repository_owner }} | |
| keep-at-least: 0 | |
| filter-include-untagged: false | |
| filter-tags: master-* | |
| skip-tags: master # Don't remove the newest master image | |
| token: ${{ secrets.SNOK_RETENTION_GITHUB_TOKEN }} |