From b88d467950f282b2a43584e498aa6b2ab708288f Mon Sep 17 00:00:00 2001 From: Kostya Farber Date: Fri, 2 Oct 2026 11:04:03 +0100 Subject: [PATCH] ci: time out stalled installs and jobs --- .github/workflows/ci.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9baad98..8ac4a138 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,6 +28,7 @@ jobs: detect-changes: name: Detect Changes runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read pull-requests: read @@ -101,6 +102,7 @@ jobs: needs: detect-changes if: needs.detect-changes.outputs.skills == 'true' runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read steps: @@ -125,6 +127,7 @@ jobs: needs: detect-changes if: needs.detect-changes.outputs.docs == 'true' || needs.detect-changes.outputs.typescript == 'true' || needs.detect-changes.outputs.rust == 'true' runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read steps: @@ -149,6 +152,7 @@ jobs: key: node-modules-v3-node24-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies + timeout-minutes: 10 run: pnpm install --frozen-lockfile --prefer-offline - name: Context drift check @@ -168,6 +172,7 @@ jobs: needs: detect-changes if: needs.detect-changes.outputs.typescript == 'true' runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read steps: @@ -192,6 +197,7 @@ jobs: key: node-modules-v3-node24-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies + timeout-minutes: 10 run: pnpm install --frozen-lockfile --prefer-offline - name: Lint (oxlint) @@ -206,6 +212,7 @@ jobs: needs: detect-changes if: needs.detect-changes.outputs.typescript == 'true' runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read steps: @@ -230,6 +237,7 @@ jobs: key: node-modules-v3-node24-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies + timeout-minutes: 10 run: pnpm install --frozen-lockfile --prefer-offline - name: Cache Typecheck Turbo results @@ -258,6 +266,7 @@ jobs: needs: detect-changes if: needs.detect-changes.outputs.typescript == 'true' runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read steps: @@ -282,6 +291,7 @@ jobs: key: node-modules-v3-node24-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies + timeout-minutes: 10 run: pnpm install --frozen-lockfile --prefer-offline - name: Cache native Turbo build @@ -306,6 +316,7 @@ jobs: needs: detect-changes if: needs.detect-changes.outputs.typescript == 'true' runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read steps: @@ -330,6 +341,7 @@ jobs: key: node-modules-v3-node24-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies + timeout-minutes: 10 run: pnpm install --frozen-lockfile --prefer-offline - name: Dead code check (knip) @@ -340,6 +352,7 @@ jobs: needs: detect-changes if: needs.detect-changes.outputs.release == 'true' runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read steps: @@ -374,6 +387,7 @@ jobs: needs: detect-changes if: needs.detect-changes.outputs.rust == 'true' runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read steps: @@ -392,6 +406,7 @@ jobs: needs: detect-changes if: needs.detect-changes.outputs.rust == 'true' runs-on: ubuntu-latest + timeout-minutes: 60 permissions: contents: read steps: @@ -429,6 +444,7 @@ jobs: needs: detect-changes if: needs.detect-changes.outputs.rust == 'true' runs-on: ubuntu-latest + timeout-minutes: 60 permissions: contents: read steps: @@ -462,6 +478,7 @@ jobs: key: node-modules-v3-node24-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies + timeout-minutes: 10 run: pnpm install --frozen-lockfile --prefer-offline - name: Build native module @@ -493,6 +510,7 @@ jobs: - name: Linux runner: ubuntu-latest runs-on: ${{ matrix.runner }} + timeout-minutes: 60 permissions: contents: read steps: @@ -520,6 +538,7 @@ jobs: key: node-modules-v3-node24-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies + timeout-minutes: 10 run: pnpm install --frozen-lockfile --prefer-offline - name: Cache native module binary @@ -591,6 +610,7 @@ jobs: shard: 1 shard-total: 1 runs-on: ${{ matrix.runner }} + timeout-minutes: 30 permissions: contents: read steps: @@ -618,6 +638,7 @@ jobs: key: node-modules-v3-node24-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies + timeout-minutes: 10 run: pnpm install --frozen-lockfile --prefer-offline - name: Download E2E app @@ -682,6 +703,7 @@ jobs: needs: e2e if: always() && needs.e2e.result != 'skipped' runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read steps: @@ -705,6 +727,7 @@ jobs: key: node-modules-v3-node24-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies + timeout-minutes: 10 run: pnpm install --frozen-lockfile --prefer-offline - name: Download blob reports @@ -755,6 +778,7 @@ jobs: - e2e-build - e2e runs-on: ubuntu-latest + timeout-minutes: 30 permissions: {} steps: - name: Check required jobs