[5.1.x] Added timeout-minutes directive to all GitHub Actions workflows.

GitHub Actions defaults to a 360-minute (6-hour) timeout. We've had jobs
hang due to issues in the parallel test runner, causing them to run for
the full 6 hours. This wastes resources and negatively impacts CI
availability, so explicit timeouts have been added to prevent
long-running hangs.

Backport of e48527f91d from main.
This commit is contained in:
Natalia
2025-11-25 22:18:50 -03:00
committed by Jacob Walls
parent 6f35c2e1fd
commit cae6f5c3b1
11 changed files with 21 additions and 0 deletions

View File

@@ -11,6 +11,7 @@ jobs:
Run_benchmarks:
if: contains(github.event.pull_request.labels.*.name, 'benchmark')
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout Benchmark Repo
uses: actions/checkout@v4

View File

@@ -15,6 +15,7 @@ jobs:
check-commit-prefix:
if: startsWith(github.event.pull_request.base.ref, 'stable/')
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
with:

View File

@@ -23,6 +23,7 @@ jobs:
docs:
runs-on: ubuntu-24.04
name: docs
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -43,6 +44,7 @@ jobs:
blacken-docs:
runs-on: ubuntu-latest
name: blacken-docs
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4

View File

@@ -21,6 +21,7 @@ jobs:
flake8:
name: flake8
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -40,6 +41,7 @@ jobs:
isort:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -59,6 +61,7 @@ jobs:
black:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -69,6 +72,7 @@ jobs:
zizmor:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v5

View File

@@ -15,6 +15,7 @@ jobs:
if: github.repository == 'django/django'
name: Hello new contributor
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/first-interaction@v1
with:

View File

@@ -20,6 +20,7 @@ jobs:
runs-on: ubuntu-latest
outputs:
python_versions_output: ${{ steps.set-matrix.outputs.python_versions }}
timeout-minutes: 60
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -36,6 +37,7 @@ jobs:
strategy:
matrix:
python-version: ${{ fromJson(needs.define-matrix.outputs.python_versions_output) }}
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4

View File

@@ -21,6 +21,7 @@ jobs:
- '3.12'
- '3.13'
name: Windows, SQLite, Python ${{ matrix.python-version }}
timeout-minutes: 60
continue-on-error: true
steps:
- name: Checkout
@@ -42,6 +43,7 @@ jobs:
pyc-only:
runs-on: ubuntu-latest
name: Byte-compiled Django with no source files (only .pyc files)
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -70,6 +72,7 @@ jobs:
pypy-sqlite:
runs-on: ubuntu-latest
name: Ubuntu, SQLite, PyPy3.10
timeout-minutes: 60
continue-on-error: true
steps:
- name: Checkout
@@ -93,6 +96,7 @@ jobs:
pypy-postgresql:
runs-on: ubuntu-latest
name: Ubuntu, PostgreSQL, PyPy3.10
timeout-minutes: 60
continue-on-error: true
services:
postgres:

View File

@@ -14,6 +14,7 @@ jobs:
runs-on: ubuntu-latest
environment: schedules
name: Trigger Full Build
timeout-minutes: 60
# Only trigger on the main Django repository
if: (github.event_name == 'schedule' && github.repository == 'django/django') || (github.event_name != 'schedule')
strategy:

View File

@@ -18,6 +18,7 @@ jobs:
if: contains(join(github.event.pull_request.labels.*.name, '|'), 'screenshots')
runs-on: ubuntu-latest
name: Screenshots
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4

View File

@@ -18,6 +18,7 @@ jobs:
if: contains(github.event.pull_request.labels.*.name, 'selenium')
runs-on: ubuntu-latest
name: SQLite
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -43,6 +44,7 @@ jobs:
if: contains(github.event.pull_request.labels.*.name, 'selenium')
runs-on: ubuntu-latest
name: PostgreSQL
timeout-minutes: 60
services:
postgres:
image: postgres:13-alpine

View File

@@ -25,6 +25,7 @@ jobs:
python-version:
- '3.13'
name: Windows, SQLite, Python ${{ matrix.python-version }}
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -45,6 +46,7 @@ jobs:
javascript-tests:
runs-on: ubuntu-latest
name: JavaScript tests
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4