Add nightly CI base image and migrate workflows to python-repositories-ci #40

Merged
brian merged 4 commits from cursor/ci-base-image into main 2026-07-09 22:51:33 +02:00
Owner

Summary

  • Add docker/ci/Dockerfile with Node 20, Python 3.12, pinned uv, and pre-synced dev dependencies
  • Add .gitea/workflows/ci-image.yml to build and push gitea.lille-vemmelund.dk/brian/python-repositories-ci nightly, on uv.lock changes, and manually
  • Migrate Python workflows to runs-on: python-repositories-ci with fast uv sync --frozen (removes repeated setup-python + pip install uv)
  • Document setup in docs/ci-image.md (registry auth via homelab-platform secret, bootstrap order, ci-bot credentials)

Test plan

  • Merge and run Build CI Image workflow manually once to seed latest in Gitea registry
  • Confirm python-repositories-ci label and gitea-registry-dockerconfig are active on k8s runners
  • Open a follow-up PR or push to verify test.yml and code-quality.yml pass on the new image
  • Confirm integration tests still pull redis/minio via Harbor
## Summary - Add `docker/ci/Dockerfile` with Node 20, Python 3.12, pinned `uv`, and pre-synced dev dependencies - Add `.gitea/workflows/ci-image.yml` to build and push `gitea.lille-vemmelund.dk/brian/python-repositories-ci` nightly, on `uv.lock` changes, and manually - Migrate Python workflows to `runs-on: python-repositories-ci` with fast `uv sync --frozen` (removes repeated `setup-python` + `pip install uv`) - Document setup in `docs/ci-image.md` (registry auth via homelab-platform secret, bootstrap order, `ci-bot` credentials) ## Test plan - [ ] Merge and run **Build CI Image** workflow manually once to seed `latest` in Gitea registry - [ ] Confirm `python-repositories-ci` label and `gitea-registry-dockerconfig` are active on k8s runners - [ ] Open a follow-up PR or push to verify `test.yml` and `code-quality.yml` pass on the new image - [ ] Confirm integration tests still pull redis/minio via Harbor
brian added 1 commit 2026-07-09 22:24:33 +02:00
Add nightly CI base image and migrate workflows to python-repositories-ci.
Code Quality Pipeline / code-quality (pull_request) Failing after 1s
Test Python Package / unit-tests (pull_request) Failing after 0s
Test Python Package / integration-tests (pull_request) Failing after 0s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / coverage-report (pull_request) Has been skipped
3b05260323
Pre-build Python, uv, and locked deps in a Gitea container image so daily jobs skip repeated bootstrap; document runner registry auth and ci-bot credentials.

Co-authored-by: Cursor <[email protected]>
brian added 1 commit 2026-07-09 22:31:01 +02:00
Read Python version from .python-version in CI image build.
PR Title Check / check-title (pull_request) Successful in 41s
Code Quality Pipeline / code-quality (pull_request) Failing after 1s
Test Python Package / integration-tests (pull_request) Failing after 34s
Test Python Package / unit-tests (pull_request) Failing after 40s
Test Python Package / coverage-report (pull_request) Has been skipped
f2a8581de2
Avoid hardcoding 3.12 in the Dockerfile so the CI image tracks the same source of truth as local tooling and uv sync.

Co-authored-by: Cursor <[email protected]>
brian added 1 commit 2026-07-09 22:39:43 +02:00
Add local CI image build script and document bootstrap flow.
Code Quality Pipeline / code-quality (pull_request) Failing after 1s
Test Python Package / unit-tests (pull_request) Failing after 1s
Test Python Package / integration-tests (pull_request) Failing after 1s
Test Python Package / coverage-report (pull_request) Has been skipped
PR Title Check / check-title (pull_request) Successful in 34s
441a21204d
Co-authored-by: Cursor <[email protected]>
brian added 1 commit 2026-07-09 22:47:58 +02:00
Revert workflows to ubuntu-latest until CI image is seeded.
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / unit-tests (pull_request) Successful in 1m4s
Code Quality Pipeline / code-quality (pull_request) Successful in 1m48s
Test Python Package / integration-tests (pull_request) Successful in 2m10s
Test Python Package / coverage-report (pull_request) Successful in 20s
b21fd247c5
Co-authored-by: Cursor <[email protected]>
Member

Test Coverage Report:

Name                                                            Stmts   Miss    Cover   Missing
-----------------------------------------------------------------------------------------------
python_repositories/__init__.py                                    12      0  100.00%
python_repositories/adapters/__init__.py                           13      0  100.00%
python_repositories/adapters/connection_aware_adapter.py           61      0  100.00%
python_repositories/adapters/minio_adapter.py                     117      0  100.00%
python_repositories/adapters/redis_adapter.py                     105      0  100.00%
python_repositories/config/__init__.py                              4      0  100.00%
python_repositories/config/dotenv_loader.py                         7      0  100.00%
python_repositories/config/env_bool.py                             14      0  100.00%
python_repositories/config/minio_config.py                         21      0  100.00%
python_repositories/config/redis_config.py                         14      0  100.00%
python_repositories/examples/__init__.py                            0      0  100.00%
python_repositories/examples/artifact_object_repository.py          9      0  100.00%
python_repositories/examples/user_json_repository.py               11      0  100.00%
python_repositories/interfaces/__init__.py                          5      0  100.00%
python_repositories/interfaces/connection_aware_interface.py        8      0  100.00%
python_repositories/interfaces/context_aware_interface.py           8      0  100.00%
python_repositories/interfaces/json_repository_interface.py        15      0  100.00%
python_repositories/interfaces/object_repository_interface.py      11      0  100.00%
-----------------------------------------------------------------------------------------------
TOTAL                                                             435      0  100.00%

**Test Coverage Report:** ``` Name Stmts Miss Cover Missing ----------------------------------------------------------------------------------------------- python_repositories/__init__.py 12 0 100.00% python_repositories/adapters/__init__.py 13 0 100.00% python_repositories/adapters/connection_aware_adapter.py 61 0 100.00% python_repositories/adapters/minio_adapter.py 117 0 100.00% python_repositories/adapters/redis_adapter.py 105 0 100.00% python_repositories/config/__init__.py 4 0 100.00% python_repositories/config/dotenv_loader.py 7 0 100.00% python_repositories/config/env_bool.py 14 0 100.00% python_repositories/config/minio_config.py 21 0 100.00% python_repositories/config/redis_config.py 14 0 100.00% python_repositories/examples/__init__.py 0 0 100.00% python_repositories/examples/artifact_object_repository.py 9 0 100.00% python_repositories/examples/user_json_repository.py 11 0 100.00% python_repositories/interfaces/__init__.py 5 0 100.00% python_repositories/interfaces/connection_aware_interface.py 8 0 100.00% python_repositories/interfaces/context_aware_interface.py 8 0 100.00% python_repositories/interfaces/json_repository_interface.py 15 0 100.00% python_repositories/interfaces/object_repository_interface.py 11 0 100.00% ----------------------------------------------------------------------------------------------- TOTAL 435 0 100.00% ```
brian merged commit fa2554ef5f into main 2026-07-09 22:51:33 +02:00
brian deleted branch cursor/ci-base-image 2026-07-09 22:51:33 +02:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lille-vemmelund/python-repositories#40