From 770b6433fa1af5ca16e8ad9149d7ba80ef1986e1 Mon Sep 17 00:00:00 2001 From: Andy Lech Date: Thu, 15 May 2025 19:54:45 -0400 Subject: [PATCH] Add script to delete older workflow runs --- .github/workflows/delete-workflow-runs.yml | 67 ++++++++++++++++++++++ .vscode/settings.json | 1 + 2 files changed, 68 insertions(+) create mode 100644 .github/workflows/delete-workflow-runs.yml diff --git a/.github/workflows/delete-workflow-runs.yml b/.github/workflows/delete-workflow-runs.yml new file mode 100644 index 0000000..a55c48e --- /dev/null +++ b/.github/workflows/delete-workflow-runs.yml @@ -0,0 +1,67 @@ +# From https://github.com/Mattraks/delete-workflow-runs/tree/main +name: Delete old workflow runs +on: + workflow_dispatch: + inputs: + # days: + # description: 'Days-worth of runs to keep for each workflow' + # required: true + # default: '30' + minimum_runs: + description: 'Minimum runs to keep for each workflow' + required: true + default: '6' + # delete_workflow_pattern: + # description: 'Name or filename of the workflow (if not set, all workflows are targeted)' + # required: false + # delete_workflow_by_state_pattern: + # description: 'Filter workflows by state: active, deleted, disabled_fork, disabled_inactivity, disabled_manually' + # required: true + # default: "ALL" + # type: choice + # options: + # - "ALL" + # - active + # - deleted + # - disabled_inactivity + # - disabled_manually + # delete_run_by_conclusion_pattern: + # description: 'Remove runs based on conclusion: action_required, cancelled, failure, skipped, success' + # required: true + # default: "ALL" + # type: choice + # options: + # - "ALL" + # - "Unsuccessful: action_required,cancelled,failure,skipped" + # - action_required + # - cancelled + # - failure + # - skipped + # - success + dry_run: + description: 'Logs simulated changes, no deletions are performed' + required: true + +jobs: + del_runs: + runs-on: ubuntu-latest + permissions: + actions: write + contents: read + steps: + - name: Delete workflow runs + 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 }} + delete_run_by_conclusion_pattern: >- + ${{ + startsWith(github.event.inputs.delete_run_by_conclusion_pattern, 'Unsuccessful:') + && 'action_required,cancelled,failure,skipped' + || github.event.inputs.delete_run_by_conclusion_pattern + }} + dry_run: ${{ github.event.inputs.dry_run }} diff --git a/.vscode/settings.json b/.vscode/settings.json index f93eaf1..3f5b18f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,6 +15,7 @@ "Highcharts", "Isabelline", "Kaggle", + "Mattraks", "MVVM", "navicon", "noopener",