Let a stalled apt mirror fail the job rather than hold it

Both Linux test jobs on this branch sat an hour in apt-get, on runners
where the same step takes seconds, and a job with nothing to time it out
holds the pull request red-free and unfinished until the six hour limit.
Three retries and a twenty second timeout give apt another mirror, and
five minutes on the step gives the job an end.
This commit is contained in:
2026-08-19 12:36:16 +03:00
parent 29643f26b3
commit d0c93e5a17
3 changed files with 19 additions and 7 deletions
+4 -2
View File
@@ -66,9 +66,11 @@ jobs:
# the build draws its own icon before it packages anything. # the build draws its own icon before it packages anything.
- name: Install the Qt runtime libraries - name: Install the Qt runtime libraries
if: runner.os == 'Linux' if: runner.os == 'Linux'
timeout-minutes: 5
run: | run: |
sudo apt-get update apt="-o Acquire::Retries=3 -o Acquire::http::Timeout=20"
sudo apt-get install --no-install-recommends -y \ sudo apt-get $apt update
sudo apt-get $apt install --no-install-recommends -y \
libegl1 libgl1 libxkbcommon0 libdbus-1-3 libglib2.0-0 \ libegl1 libgl1 libxkbcommon0 libdbus-1-3 libglib2.0-0 \
libfontconfig1 libfreetype6 libgssapi-krb5-2 libfontconfig1 libfreetype6 libgssapi-krb5-2
+5 -3
View File
@@ -46,9 +46,11 @@ jobs:
- uses: actions/setup-python@v5 - uses: actions/setup-python@v5
with: with:
python-version: "3.12" python-version: "3.12"
- run: | - timeout-minutes: 5
sudo apt-get update run: |
sudo apt-get install --no-install-recommends -y \ apt="-o Acquire::Retries=3 -o Acquire::http::Timeout=20"
sudo apt-get $apt update
sudo apt-get $apt install --no-install-recommends -y \
libegl1 libgl1 libxkbcommon0 libdbus-1-3 libglib2.0-0 \ libegl1 libgl1 libxkbcommon0 libdbus-1-3 libglib2.0-0 \
libfontconfig1 libfreetype6 libgssapi-krb5-2 libfontconfig1 libfreetype6 libgssapi-krb5-2
- run: python -m pip install --quiet PyQt6 - run: python -m pip install --quiet PyQt6
+10 -2
View File
@@ -24,10 +24,18 @@ jobs:
# for the offscreen platform the tests run on. QtNetwork wants the Kerberos # for the offscreen platform the tests run on. QtNetwork wants the Kerberos
# library, and the widgets want fontconfig, whether or not anything is # library, and the widgets want fontconfig, whether or not anything is
# ever drawn. # ever drawn.
#
# A mirror that stops answering is what the retries and the timeout are
# for: apt waits on it by default, and a job waiting on apt sits there
# until the six hour limit rather than going red in a minute. The same
# two lines are in build.yml and release.yml, which install the same
# eight libraries.
- name: Install the Qt runtime libraries - name: Install the Qt runtime libraries
timeout-minutes: 5
run: | run: |
sudo apt-get update apt="-o Acquire::Retries=3 -o Acquire::http::Timeout=20"
sudo apt-get install --no-install-recommends -y \ sudo apt-get $apt update
sudo apt-get $apt install --no-install-recommends -y \
libegl1 libgl1 libxkbcommon0 libdbus-1-3 libglib2.0-0 \ libegl1 libgl1 libxkbcommon0 libdbus-1-3 libglib2.0-0 \
libfontconfig1 libfreetype6 libgssapi-krb5-2 libfontconfig1 libfreetype6 libgssapi-krb5-2