From aabe8663e5e6cdb658659dd23c3e56e96b1e9e2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Desbiens?= Date: Fri, 23 Oct 2026 23:18:29 -0400 Subject: [PATCH] Moved the regression template to the commit that adds the apt cache The regression workflow called the ThreadX template at b37cd4a8, so every run fetched all its apt packages from the Ubuntu mirror again. On 23 Oct 2026 the mirror served package files at 50 to 250 KB/s and ThreadX install steps timed out on all three attempts. install.sh also fetched the apt cmake package, which a GitHub runner never runs: the image's own CMake in /usr/local/bin comes first on PATH. The template is now pinned at c735b12c from eclipse-threadx/threadx#823, which restores the apt archives from the Actions cache before the install step and saves them after it, behind a new apt_cache input that defaults to on. Since b37cd4a8 the template has also gained install_timeout_minutes and build_timeout_minutes inputs whose defaults keep the former 10 and 15 minutes, gated the coverage deploy on run_tests succeeding, and moved upload-artifact, download-artifact and deploy-pages to their current patch releases. The coverage floor and its inputs are unchanged. install.sh installs cmake from apt only when none is on PATH, so contributors' machines still get it. The ThreadX source revision the tests build stays at b37cd4a8. check_ai_disclosure.sh passes and the workflow parses as YAML. The new package list omits cmake when one is on PATH and adds it when none is. Assisted-by: Claude Code (Opus 5.5) --- .github/workflows/regression_test.yml | 2 +- scripts/install.sh | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/regression_test.yml b/.github/workflows/regression_test.yml index 73de83c..858f9fb 100644 --- a/.github/workflows/regression_test.yml +++ b/.github/workflows/regression_test.yml @@ -22,7 +22,7 @@ jobs: # The reusable test job scopes its token separately. pages: write id-token: write - uses: eclipse-threadx/threadx/.github/workflows/regression_template.yml@b37cd4a81a1cb8c2ebefc438220ab7f009e13362 + uses: eclipse-threadx/threadx/.github/workflows/regression_template.yml@c735b12c714e27431374a40163aa0af9619a52d3 with: coverage_name: merged coverage_thresholds: '68 100' diff --git a/scripts/install.sh b/scripts/install.sh index 17575bc..b5381e2 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -10,6 +10,8 @@ # SPDX-License-Identifier: MIT ############################################################################## +# Portions of this file were generated with AI assistance. + set -euo pipefail # Retry transient package and network failures a bounded number of times. @@ -30,9 +32,14 @@ apt_options=(-o Acquire::Retries=3 -o DPkg::Lock::Timeout=60) if ! retry sudo timeout 150 apt-get "${apt_options[@]}" update; then echo "Package index update failed; package installation will verify availability." >&2 fi -retry sudo timeout 150 apt-get "${apt_options[@]}" install -y \ - cmake gcc-14 gcc-14-multilib git ninja-build python3-venv \ - unifdef p7zip-full tofrodos gawk +# CMake is installed only when none is on PATH. A GitHub runner image carries a +# newer one in /usr/local/bin, which shadows the apt package. +packages=(gcc-14 gcc-14-multilib git ninja-build python3-venv + unifdef p7zip-full tofrodos gawk) +if ! command -v cmake > /dev/null; then + packages+=(cmake) +fi +retry sudo timeout 150 apt-get "${apt_options[@]}" install -y "${packages[@]}" venv_dir="${RUNNER_TEMP:-${TMPDIR:-/tmp}}/levelx-ci-venv" python3 -m venv "$venv_dir"