# Simple job to clear the cache used by a workflow. This automatically runs when a PR is closed/merged # to clean up the corresponding PR's cache. name: "clear workflow cache" on: workflow_dispatch: inputs: id: description: "Which id to clear. Type main/master/all to clean all, and keep-main/keep-master to clean all but the main branch." required: false pull_request: types: - closed schedule: - cron: "0 11 * * 0" permissions: {} jobs: clear-cache: permissions: actions: write if: ${{ github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork }} # If it is a PR, only if not a fork runs-on: ubuntu-24.04 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 1 # We run each script twice with a small delay in between to try and catch everything. - name: Clear cache run: | if [[ -n "${{ github.event.schedule }}" ]]; then python ./scripts/clear_cache.py keep-main sleep 5 python ./scripts/clear_cache.py keep-main elif [[ -z "${{ github.event.inputs.id }}" ]]; then python ./scripts/clear_cache.py ${{ github.event.pull_request.number }} sleep 5 python ./scripts/clear_cache.py ${{ github.event.pull_request.number }} else python ./scripts/clear_cache.py ${{ github.event.inputs.id }} sleep 5 python ./scripts/clear_cache.py ${{ github.event.inputs.id }} fi