Drop the windows/macos CI job: it can never run on this Gitea
Build PCM package / build (push) Successful in 6s
tests / ubuntu-latest · py3.11 (push) Successful in 57s
tests / ubuntu-latest · py3.13 (push) Successful in 2m22s
tests / archlinux:latest (push) Successful in 39s
tests / debian:12 (push) Successful in 47s
tests / fedora:latest (push) Successful in 58s
tests / ubuntu:24.04 (push) Successful in 1m13s
tests / NixOS (FHS wrapper from docs/NIXOS.md) (push) Has been skipped

Gitea evaluates a job's if-gate only once a runner with a matching
label claims it, so windows-latest cells wait forever and pin every
run (and the badge) at Waiting. The README table now says plainly
which rows CI covers (the Linux ones) and which are field-tested.
This commit is contained in:
2026-07-23 18:56:35 +07:00
parent 1cc48993af
commit 4f361d846a
2 changed files with 14 additions and 26 deletions
+6 -19
View File
@@ -128,25 +128,12 @@ jobs:
- run: uv run python -c "import PySide6.QtWidgets" - run: uv run python -c "import PySide6.QtWidgets"
- run: uv run pytest -q - run: uv run pytest -q
desktop: # No windows/macos job: Gitea evaluates a job's `if` only after a
name: ${{ matrix.os }} · py${{ matrix.python }} # runner with a matching label claims it, so runs-on: windows-latest
# github.com only: no free Windows/macOS runners on self-hosted # cells sit in "Waiting" forever on this instance and pin the whole
# Gitea/Forgejo. Skipped (not queued) elsewhere. # run (and badge) there. On a github.com mirror, add the job back:
if: github.server_url == 'https://github.com' # matrix os [windows-latest, macos-latest] x python [3.11, 3.13],
runs-on: ${{ matrix.os }} # steps: checkout, setup-uv, uv sync --frozen, pytest.
strategy:
fail-fast: false
matrix:
os: [windows-latest, macos-latest]
python: ["3.11", "3.13"]
env:
UV_PYTHON: ${{ matrix.python }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
- run: uv sync --frozen
- run: uv run python -c "import PySide6.QtWidgets"
- run: uv run pytest -q
nixos: nixos:
name: NixOS (FHS wrapper from docs/NIXOS.md) name: NixOS (FHS wrapper from docs/NIXOS.md)
+8 -7
View File
@@ -34,9 +34,9 @@ SWIG API. Requires KiCad **10.0.1+**.
| Platform | Status | Verified by | | Platform | Status | Verified by |
|-----------------------------|:------:|-------------| |-----------------------------|:------:|-------------|
| Windows | ✅ | development platform; CI test suite | | Windows | ✅ | development platform, full suite before every release |
| macOS | ✅ | field-tested in KiCad 10; CI test suite | | macOS | ✅ | field-tested in KiCad 10 |
| NixOS | ✅ | field-tested in KiCad 10 ([setup](docs/NIXOS.md)); CI runs the suite inside the documented FHS env | | NixOS | ✅ | field-tested in KiCad 10 ([setup](docs/NIXOS.md)) |
| Debian 12 | ✅ | CI test suite in container | | Debian 12 | ✅ | CI test suite in container |
| Ubuntu 24.04 | ✅ | CI test suite in container | | Ubuntu 24.04 | ✅ | CI test suite in container |
| Fedora (latest) | ✅ | CI test suite in container | | Fedora (latest) | ✅ | CI test suite in container |
@@ -44,10 +44,11 @@ SWIG API. Requires KiCad **10.0.1+**.
CI (`.gitea/workflows/ci.yml`) runs the full pytest suite — solver, CI (`.gitea/workflows/ci.yml`) runs the full pytest suite — solver,
rasterizer, and the platform-fallback regressions — headless against rasterizer, and the platform-fallback regressions — headless against
the real pip wheels of each row, including the `PySide6.QtWidgets` the real pip wheels of each Linux row, including the
import probe that decides the matplotlib backend. What CI *cannot* do `PySide6.QtWidgets` import probe that decides the matplotlib backend.
is launch KiCad itself, so "runs inside KiCad" remains field-tested What CI *cannot* do is launch KiCad itself, so "runs inside KiCad"
(Windows continuously, macOS and NixOS per release). remains field-tested (Windows continuously, macOS and NixOS per
release).
## Setup (one-time) ## Setup (one-time)