From bcead7b3eb065703de182f1054800f83137122a8 Mon Sep 17 00:00:00 2001 From: woksin Date: Tue, 25 Aug 2026 22:19:12 +0200 Subject: [PATCH] chore: add job timeouts and pull request concurrency to workflows Jobs had no timeout-minutes, so a hung job could hold one of the organization's 20 shared hosted-runner slots for the 6 hour default - a contributor to the 2026-08-25 runner starvation. Verification workflows triggered by pull requests also lacked a concurrency group, so rapid successive pushes stacked duplicate runs instead of cancelling stale ones. Rules applied: quick checks 15 min, builds 30 min, publish/release 60 min, integration/benchmarks 120 min; cancel-in-progress only on pull-request verification workflows, never on publish, release or deploy workflows. --- .github/workflows/auto-approve-publish-deployments.yml | 1 + .github/workflows/cleanup-pr-artifacts.yml | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/.github/workflows/auto-approve-publish-deployments.yml b/.github/workflows/auto-approve-publish-deployments.yml index 921dfb3..f12cb01 100644 --- a/.github/workflows/auto-approve-publish-deployments.yml +++ b/.github/workflows/auto-approve-publish-deployments.yml @@ -17,6 +17,7 @@ permissions: jobs: approve: runs-on: ubuntu-latest + timeout-minutes: 60 steps: - name: Approve pending npm/nuget deployments env: diff --git a/.github/workflows/cleanup-pr-artifacts.yml b/.github/workflows/cleanup-pr-artifacts.yml index 448a2d3..3874a79 100644 --- a/.github/workflows/cleanup-pr-artifacts.yml +++ b/.github/workflows/cleanup-pr-artifacts.yml @@ -1,5 +1,9 @@ name: Cleanup PR Artifacts +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + on: pull_request: types: [closed]