diff --git a/.github/workflows/cleanup-caches.yml b/.github/workflows/cleanup-caches.yml new file mode 100644 index 0000000..c8ed8e7 --- /dev/null +++ b/.github/workflows/cleanup-caches.yml @@ -0,0 +1,35 @@ +name: Cleanup Caches + +on: + workflow_dispatch: # Manual trigger + schedule: + - cron: '0 0 * * 0' # Run weekly at midnight on Sunday + +jobs: + cleanup: + runs-on: ubuntu-latest + steps: + - name: Cleanup + run: | + gh extension install actions/gh-actions-cache + + REPO=${{ github.repository }} + BRANCH=${{ github.ref }} + + echo "Fetching list of cache keys..." + cacheKeys=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1) + + ## Setting this to not fail the workflow while deleting cache keys + set +e + + echo "Deleting caches..." + for cacheKey in $cacheKeys + do + gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm + done + echo "Done" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +permissions: + actions: write \ No newline at end of file