From 58258c64002188e500eaf706a9a280895375ce0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Desbiens?= Date: Wed, 30 Sep 2026 12:08:31 -0400 Subject: [PATCH] Made the build step timeout a template input The build step is capped at fifteen minutes for every consumer, on the same shape of assumption the install step carried: that a consumer builds once. Measured build steps are 0.5 minutes for LevelX, 1.1 for FileX and 6.4 for USBX, so fifteen is right for them. GUIX builds five configurations in that step, because its suite is staged across the three steps, and reaches 11.8 minutes. That is 79 per cent of the cap, and it grows with every regression test added -- six advisories landed tests this week. The cap is now an input defaulting to fifteen, matching install_timeout_minutes above. No consumer changes unless it asks to. Assisted-by: Claude Code (Opus 5) --- .github/workflows/regression_template.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/regression_template.yml b/.github/workflows/regression_template.yml index eca637def..064f2ebea 100644 --- a/.github/workflows/regression_template.yml +++ b/.github/workflows/regression_template.yml @@ -32,6 +32,15 @@ on: default: 10 required: false type: number + # Minutes for the build step, on the same reasoning as the install step + # above. Fifteen suits a consumer that builds once: measured build steps + # are 0.5 minutes for LevelX, 1.1 for FileX and 6.4 for USBX. GUIX builds + # five configurations here as part of its staging and reaches 11.8, which + # is 79 per cent of the cap and shrinking as tests are added. + build_timeout_minutes: + default: 15 + required: false + type: number skip_test: default: false required: false @@ -127,7 +136,7 @@ jobs: # test: the build is where -fprofile-arcs is decided, and the test run is # where the reports are collected and merged. - name: Build - timeout-minutes: 15 + timeout-minutes: ${{ inputs.build_timeout_minutes }} env: TX_COVERAGE: ${{ inputs.skip_coverage && 'OFF' || 'ON' }} run: ${{ inputs.build_script }}