Commit Graph
20 Commits
Author SHA1 Message Date
dtourolleandClaude Opus 5 745fc8687e ci: run tests in a prebuilt container image
Python CI / test (3.10) (push) Successful in 1m21s
Python CI / test (3.11) (push) Successful in 1m7s
Python CI / test (3.12) (push) Successful in 1m9s
Python CI / test (3.13) (push) Successful in 1m23s
Matches the convention used by pyPhotoAlbum and the other projects here:
runs-on: linux/amd64 with a container image from the Gitea registry,
instead of setup-python plus an ad-hoc `pip install pytest pytest-cov
flake8 coverage-badge interrogate` on a self-hosted runner.

pyWebLayout is a library, so the image carries all four interpreters
pyproject.toml claims to support - 3.10, 3.11, 3.12, 3.13 - each in its
own venv at /opt/py<version> with every dependency pre-installed. The
matrix picks one per job. A CI run now downloads nothing, and coverage
widens from 3.10/3.12/3.13 to the full declared range.

Ubuntu marks its system Python externally-managed, so per-interpreter
venvs are used rather than --break-system-packages; that also keeps the
four dependency sets isolated.

Two defects in the existing workflow are fixed while rewriting it:

- pytest runs under continue-on-error so the badge steps still execute,
  but nothing afterwards checked its outcome - the job reported green on
  a red suite. An explicit gate now fails the job.
- Every matrix leg ran the badge steps and force-pushed the badges
  branch, so three jobs raced to publish. Badges and artifacts are now
  produced by the 3.13 leg only.

setuptools is pinned below 81 in the image: that release dropped
pkg_resources, which coverage-badge imports at startup, and without the
pin the badge step dies with ModuleNotFoundError. Found by running the
workflow's own commands in the image rather than assuming they work.

Also raises the test Flask server's readiness budget from 5s to 30s.
Making that check raise instead of silently falling through (737cf07)
turned runner load into a hard failure; it showed up as 17 spurious
errors in one containerised run and did not reproduce in three repeats.
The loop still exits as soon as the server answers.

Verified locally: image builds, and tests/ passes 916 on each of 3.10,
3.11, 3.12 and 3.13 inside it. The publishing leg was run end to end -
clean-install dependency check, pytest with coverage, both badges,
coverage summary at 81.5%.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 14:10:05 +02:00
dtourolle 889f27e1a3 added fotn change API and examples
Python CI / test (3.10) (push) Successful in 2m18s
Python CI / test (3.12) (push) Successful in 2m8s
Python CI / test (3.13) (push) Successful in 2m6s
2025-11-11 12:44:18 +01:00
dtourolle 40c1b913ec doc updates
Python CI / test (3.10) (push) Has been cancelled
Python CI / test (3.12) (push) Has been cancelled
Python CI / test (3.13) (push) Has been cancelled
2025-11-09 22:06:42 +01:00
dtourolle cc34c79495 more examples
Python CI / test (3.10) (push) Successful in 2m6s
Python CI / test (3.12) (push) Successful in 1m57s
Python CI / test (3.13) (push) Successful in 1m52s
2025-11-09 21:40:59 +01:00
dtourolle af18b1794a update readme 2025-11-08 19:25:32 +01:00
dtourolle 39622c7dd7 integration of functional elements
Python CI / test (push) Successful in 6m46s
2025-11-08 10:17:01 +01:00
dtourolle 03918fc716 complete the table rendering
Python CI / test (push) Successful in 6m37s
2025-11-07 19:45:47 +01:00
dtourolle b1553f1628 refactor continues
Python CI / test (push) Successful in 6m35s
2025-11-07 19:26:32 +01:00
dtourolle 6bb43db8d5 fix examples
Python CI / test (push) Successful in 9m48s
2025-11-06 18:01:22 +01:00
dtourolle bde846bc3e example in use
Python CI / test (push) Has been cancelled
2025-11-06 17:58:35 +01:00
dtourolle 993095caf9 Update repo
Python CI / test (push) Failing after 6m22s
2025-11-04 19:25:44 +01:00
dtourolle 2b1170cac7 put badges in different branch
Python CI / test (push) Successful in 49s
2025-06-07 19:10:12 +02:00
dtourolle 099a1c9d5f different CI approach
Python CI / test (push) Failing after 35s
2025-06-07 16:55:03 +02:00
dtourolle a4accf4070 CI fix
Python CI / test (push) Successful in 38s
2025-06-07 16:28:03 +02:00
dtourolle 9baabc205a trying again with badge
Python CI / test (push) Successful in 37s
2025-06-07 16:25:04 +02:00
dtourolle 8236ee768d fixed url in badge
Python CI / test (push) Successful in 37s
2025-06-07 16:20:47 +02:00
dtourolle 57c927efc5 ci test
Python CI / test (push) Successful in 38s
2025-06-07 16:15:33 +02:00
dtourolle 835ae7cad1 automation of badges
Python CI / test (push) Successful in 41s
2025-06-07 15:50:48 +02:00
dtourolle c39b9f9eb7 test coverage 2025-06-07 15:40:42 +02:00
dtourolle f7ad69f9ec first code commit 2025-05-27 11:58:19 +02:00