diff --git a/.github/workflows/cleanup.yml b/.github/workflows/cleanup.yml new file mode 100644 index 000000000..9ca616be5 --- /dev/null +++ b/.github/workflows/cleanup.yml @@ -0,0 +1,46 @@ +name: "Cleanup" +on: + workflow_dispatch: + inputs: + days: + description: 'Retain days' + required: true + default: 30 + minimum_runs: + description: 'Minimum runs to keep for each workflow' + required: true + default: 6 + delete_workflow_pattern: + description: 'Name/filename of workflow. Default is all.' + required: false + delete_workflow_by_state_pattern: + description: 'Remove workflow by state: active, deleted, disabled_fork, disabled_inactivity, disabled_manually' + required: true + default: "All" + type: choice + options: + - "All" + - active + - deleted + - disabled_inactivity + - disabled_manually + dry_run: + description: 'Dry run?' + required: false + +jobs: + + del-runs: + name: "Delete old workflow runs" + runs-on: ubuntu-latest + + steps: + - uses: Mattraks/delete-workflow-runs@v2 + with: + token: ${{ github.token }} + repository: ${{ github.repository }} + retain_days: ${{ github.event.inputs.days }} + keep_minimum_runs: ${{ github.event.inputs.minimum_runs }} + delete_workflow_pattern: ${{ github.event.inputs.delete_workflow_pattern }} + delete_workflow_by_state_pattern: ${{ github.event.inputs.delete_workflow_by_state_pattern }} + dry_run: ${{ github.event.inputs.dry_run }}