CI: fit the dependency set on the runner's disk
tests / macos-latest · py3.11 (push) Waiting to run
tests / macos-latest · py3.13 (push) Waiting to run
tests / windows-latest · py3.11 (push) Waiting to run
tests / windows-latest · py3.13 (push) Waiting to run
Build PCM package / build (push) Successful in 17s
tests / ubuntu-latest · py3.11 (push) Successful in 1m36s
tests / ubuntu-latest · py3.13 (push) Successful in 2m7s
tests / archlinux:latest (push) Successful in 3m0s
tests / debian:12 (push) Successful in 49s
tests / fedora:latest (push) Successful in 1m22s
tests / ubuntu:24.04 (push) Successful in 1m5s
tests / NixOS (FHS wrapper from docs/NIXOS.md) (push) Has been skipped

uv's cache moves into the workspace so it shares a filesystem with
.venv and hardlinks instead of double-storing ~1.3 GB per job (the
'Failed to hardlink, falling back to full copy' warning was the tell
before ENOSPC), and both matrices run max-parallel 1 so the host
holds one dependency set at a time instead of six.
This commit is contained in:
2026-07-23 17:35:56 +07:00
parent 72bb46e9b5
commit 1cc48993af
+9
View File
@@ -22,6 +22,10 @@ on:
env:
UV_PYTHON: "3.12"
# Cache on the same filesystem as .venv so uv hardlinks instead of
# double-storing ~1.3 GB per job (PySide6 + scipy + matplotlib) —
# the runner host ran out of disk with the default cache location.
UV_CACHE_DIR: .uv-cache
# No test opens a window, but if one ever creates a figure the Qt
# backend must not try to reach a display on a headless runner.
QT_QPA_PLATFORM: offscreen
@@ -32,6 +36,9 @@ jobs:
runs-on: ubuntu-latest
strategy:
fail-fast: false
# Serialized: the runner host has limited disk; one dependency
# set at a time keeps peak usage at a single job's worth.
max-parallel: 1
matrix:
python: ["3.11", "3.13"]
env:
@@ -55,6 +62,8 @@ jobs:
container: ${{ matrix.distro }}
strategy:
fail-fast: false
# See the linux job: serialized for the runner host's disk.
max-parallel: 1
matrix:
include:
# git in every list: the checkout below is plain git because