name: CD - Docker - DOCR Cleanup Container Images on: workflow_dispatch: schedule: - cron: '5 0 * * 3,6' # 12:05 UTC on Wednesdays and Saturdays (6 hour maintenance window) jobs: remove: name: Delete Old Images runs-on: ubuntu-latest strategy: fail-fast: false matrix: repos: - learn-api variants: - dev - org steps: - name: Install doctl uses: digitalocean/action-doctl@v2 with: token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} - name: Log in to DigitalOcean Container Registry with short-lived credentials run: doctl registry login --expiry-seconds 1200 - name: Delete Images uses: raisedadead/action-docr-cleanup@62b968c928fbb2dbce8b0caf11c0391f0921ea46 # v1 with: repository_name: '${{ matrix.variants }}/${{ matrix.repos }}' days: '7' keep_last: '3' # NOTE: We don't need to trigger garbage collection because we have a cron job that runs on news repo, which # triggers garbage collection. This can be uncommented should a need arise. # clean: # name: Do Garbage Collection # runs-on: ubuntu-latest # needs: remove # steps: # - name: Install doctl # uses: digitalocean/action-doctl@v2 # with: # token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} # - name: Log in to DigitalOcean Container Registry with short-lived credentials # run: doctl registry login --expiry-seconds 1200 # - name: Trigger Garbage collection # run: doctl registry garbage-collection start --include-untagged-manifests --force