diff --git a/.github/workflows/check-label-in-progress.yml b/.github/workflows/check-label-in-progress.yml new file mode 100644 index 0000000..55d71c2 --- /dev/null +++ b/.github/workflows/check-label-in-progress.yml @@ -0,0 +1,20 @@ +# Workflow automatically executed to check if a pull request has label `status: in progress` to prevent +# merging incomplete work + +name: Check label in-progress to prevent merging + +on: + pull_request_target: + types: [synchronize, opened, reopened, labeled, unlabeled] + +jobs: + do-not-merge: + if: "${{ contains(github.event.*.labels.*.name, 'status: in progress') }}" + name: Check do not merge + runs-on: ubuntu-latest + steps: + - name: check for label + run: | + echo "Pull request is labeled as 'status: in progress'" + echo "This workflow fails to prevent merging" + exit 1 \ No newline at end of file diff --git a/.github/workflows/workflow-runs-purge.yml b/.github/workflows/workflow-runs-purge.yml index 3a92433..e69508d 100644 --- a/.github/workflows/workflow-runs-purge.yml +++ b/.github/workflows/workflow-runs-purge.yml @@ -1,7 +1,8 @@ # Workflow automatically executed so that to clean up workflow runs pilling in the GitHub Actions tab # # By default, workflow runs older than 30 days (see 'retain_days' parameter) are removed, every day at -# midnight (see and 'cron' parameters, respectively). +# midnight (see and 'cron' parameters, respectively). The workflow purges his own run to only keep +# 3 of them in a second step (see 'keep_minimum runs'). # A token with the necessary permission for deleting workflow runs must be provided or the 'github.token' # can also be used. name: Purge workflow runs automatically @@ -22,3 +23,11 @@ jobs: repository: ${{ github.repository }} retain_days: 30 keep_minimum_runs: 6 + - name: Delete runs of purge workflow runs + uses: Mattraks/delete-workflow-runs@v2 + with: + token: ${{ github.token }} + repository: ${{ github.repository }} + delete_workflow_pattern: "Purge workflow runs automatically" + retain_days: 3 + keep_minimum_runs: 3