summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatalia <124304+nessita@users.noreply.github.com>2025-11-25 22:18:50 -0300
committerJacob Walls <jacobtylerwalls@gmail.com>2025-11-26 08:03:38 -0500
commit93fd01d641147d35768e129fcd0163f78e07807b (patch)
treea0115f7689c85d83af6e307950e775cb491bd063
parentbbbe64a262b214b08575f6ade8c0428df2f8377b (diff)
[5.2.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 e48527f91d341c85a652499a5baaf725d36ae54f from main.
-rw-r--r--.github/workflows/benchmark.yml1
-rw-r--r--.github/workflows/check_commit_messages.yml1
-rw-r--r--.github/workflows/docs.yml2
-rw-r--r--.github/workflows/linters.yml4
-rw-r--r--.github/workflows/new_contributor_pr.yml1
-rw-r--r--.github/workflows/python_matrix.yml2
-rw-r--r--.github/workflows/schedule_tests.yml5
-rw-r--r--.github/workflows/schedules.yml1
-rw-r--r--.github/workflows/screenshots.yml1
-rw-r--r--.github/workflows/selenium.yml2
-rw-r--r--.github/workflows/tests.yml2
11 files changed, 22 insertions, 0 deletions
diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
index 6c9d2a3e1a..b5bdb74954 100644
--- a/.github/workflows/benchmark.yml
+++ b/.github/workflows/benchmark.yml
@@ -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
diff --git a/.github/workflows/check_commit_messages.yml b/.github/workflows/check_commit_messages.yml
index a4594d611c..16b67ea9a3 100644
--- a/.github/workflows/check_commit_messages.yml
+++ b/.github/workflows/check_commit_messages.yml
@@ -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:
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index eeef40c462..a21f9398bc 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -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
diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml
index d18921cf33..c4d249551a 100644
--- a/.github/workflows/linters.yml
+++ b/.github/workflows/linters.yml
@@ -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
diff --git a/.github/workflows/new_contributor_pr.yml b/.github/workflows/new_contributor_pr.yml
index 3602abf109..7a28b6cdde 100644
--- a/.github/workflows/new_contributor_pr.yml
+++ b/.github/workflows/new_contributor_pr.yml
@@ -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:
diff --git a/.github/workflows/python_matrix.yml b/.github/workflows/python_matrix.yml
index 2b7a257f5e..63b22bd78f 100644
--- a/.github/workflows/python_matrix.yml
+++ b/.github/workflows/python_matrix.yml
@@ -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
diff --git a/.github/workflows/schedule_tests.yml b/.github/workflows/schedule_tests.yml
index da0bbea552..91723695be 100644
--- a/.github/workflows/schedule_tests.yml
+++ b/.github/workflows/schedule_tests.yml
@@ -22,6 +22,7 @@ jobs:
- '3.13'
- '3.14'
name: Windows, SQLite, Python ${{ matrix.python-version }}
+ timeout-minutes: 60
continue-on-error: true
steps:
- name: Checkout
@@ -43,6 +44,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
@@ -71,6 +73,7 @@ jobs:
pypy-sqlite:
runs-on: ubuntu-latest
name: Ubuntu, SQLite, PyPy3.10
+ timeout-minutes: 60
continue-on-error: true
steps:
- name: Checkout
@@ -94,6 +97,7 @@ jobs:
pypy-postgresql:
runs-on: ubuntu-latest
name: Ubuntu, PostgreSQL, PyPy3.10
+ timeout-minutes: 60
continue-on-error: true
services:
postgres:
@@ -219,6 +223,7 @@ jobs:
server_side_bindings: [0, 1]
runs-on: ubuntu-latest
name: PostgreSQL Versions
+ timeout-minutes: 60
env:
SERVER_SIDE_BINDING: ${{ matrix.server_side_bindings }}
services:
diff --git a/.github/workflows/schedules.yml b/.github/workflows/schedules.yml
index 041a0b3362..3674d18cdf 100644
--- a/.github/workflows/schedules.yml
+++ b/.github/workflows/schedules.yml
@@ -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:
diff --git a/.github/workflows/screenshots.yml b/.github/workflows/screenshots.yml
index 4c67c7fc72..5020631d36 100644
--- a/.github/workflows/screenshots.yml
+++ b/.github/workflows/screenshots.yml
@@ -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
diff --git a/.github/workflows/selenium.yml b/.github/workflows/selenium.yml
index 2e7e8f187d..e093515188 100644
--- a/.github/workflows/selenium.yml
+++ b/.github/workflows/selenium.yml
@@ -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:14-alpine
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 559868a279..2e64c04330 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -25,6 +25,7 @@ jobs:
python-version:
- '3.14'
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