Commit 98b86328b6e for php.net
commit 98b86328b6e94af3bd204e1bdc708888296416b9
Author: Jorg Sowa <jorg.sowa@gmail.com>
Date: Fri Jun 19 00:12:04 2026 +0200
ci: add 180-minute timeout to test-suite jobs
The GitHub-hosted test-suite jobs had no timeout-minutes and fell back
to GitHub's 6-hour default, so a hung step (e.g. apt) wasted ~6h of
runner time. Cap them at 180 min, which clears the slowest legitimate
nightly runs (LINUX_X64_ASAN ~158 min) with margin. The self-hosted
jobs keep their existing 50-minute caps.
Closes GH-22362
diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml
index 7b1850aa107..de1fbee018a 100644
--- a/.github/workflows/test-suite.yml
+++ b/.github/workflows/test-suite.yml
@@ -16,6 +16,7 @@ jobs:
name: LINUX_PPC64_ASAN_DEBUG_ZTS
# This runs on a self-hosted runner; see https://wiki.php.net/systems/ci
runs-on: [self-hosted, gentoo, ppc64]
+ timeout-minutes: 180
steps:
- name: git checkout
uses: actions/checkout@v6
@@ -55,6 +56,7 @@ jobs:
if: ${{ fromJson(inputs.branch).jobs.ALPINE }}
name: ALPINE_X64_ASAN_DEBUG_ZTS
runs-on: ubuntu-24.04
+ timeout-minutes: 180
container:
image: 'alpine:3.22'
steps:
@@ -130,6 +132,7 @@ jobs:
matrix: ${{ fromJson(inputs.branch).jobs.LINUX_X64.matrix }}
name: "LINUX_X64${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
runs-on: ubuntu-${{ fromJson(inputs.branch).config.ubuntu_version }}
+ timeout-minutes: 180
steps:
- name: git checkout
uses: actions/checkout@v6
@@ -228,6 +231,7 @@ jobs:
matrix: ${{ fromJson(inputs.branch).jobs.LINUX_X32.matrix }}
name: "LINUX_X32_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
runs-on: ubuntu-latest
+ timeout-minutes: 180
container:
image: ubuntu:${{ fromJson(inputs.branch).config.ubuntu_version }}
env:
@@ -309,6 +313,7 @@ jobs:
matrix: ${{ fromJson(inputs.branch).jobs.MACOS.matrix }}
name: "MACOS_${{ matrix.arch }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
runs-on: macos-${{ matrix.arch == 'X64' && '15-intel' || fromJson(inputs.branch).jobs.MACOS.config.arm64_version }}
+ timeout-minutes: 180
steps:
- name: git checkout
uses: actions/checkout@v6
@@ -386,6 +391,7 @@ jobs:
FIREBIRD_USER: test
FIREBIRD_PASSWORD: test
runs-on: ubuntu-24.04
+ timeout-minutes: 180
steps:
- name: git checkout
uses: actions/checkout@v6
@@ -642,6 +648,7 @@ jobs:
FIREBIRD_PASSWORD: test
name: OPCACHE_VARIATION
runs-on: ubuntu-${{ fromJson(inputs.branch).config.ubuntu_version }}
+ timeout-minutes: 180
steps:
- name: git checkout
uses: actions/checkout@v6
@@ -705,6 +712,7 @@ jobs:
if: ${{ fromJson(inputs.branch).jobs.MSAN }}
name: MSAN
runs-on: ubuntu-${{ fromJson(inputs.branch).config.ubuntu_version }}
+ timeout-minutes: 180
steps:
- name: git checkout
uses: actions/checkout@v6
@@ -796,6 +804,7 @@ jobs:
if: ${{ fromJson(inputs.branch).jobs.LIBMYSQLCLIENT }}
name: LIBMYSQLCLIENT
runs-on: ubuntu-${{ fromJson(inputs.branch).config.ubuntu_version }}
+ timeout-minutes: 180
steps:
- name: git checkout
uses: actions/checkout@v6
@@ -834,6 +843,7 @@ jobs:
matrix: ${{ fromJson(inputs.branch).jobs.WINDOWS.matrix }}
name: "WINDOWS_${{ matrix.x64 && 'X64' || 'X86' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || ''}}${{ matrix.clang && '_CLANG' || ''}}"
runs-on: ${{ fromJson(inputs.branch).jobs.WINDOWS.config.runs_on }}
+ timeout-minutes: 180
env:
PHP_BUILD_CACHE_BASE_DIR: C:\build-cache
PHP_BUILD_OBJ_DIR: C:\obj