Commit Graph
300 Commits
Author SHA1 Message Date
Environment TestandClaude Sonnet 4.6 83262816a3 docs(contributing): apply documentation.md rules across all staged files
- Move emojis after headline text (CONTRIBUTING.md, actions/, design/, tools/, tests/)
- Replace em dashes with colons, semicolons, or complete sentences throughout
- Add missing emojis to all headlines in exceptions.md, principles.md, services.md, shell.md, setup.md, pull-request.md, commit.md, act.md, docker.md, pr/README.md
- Update H1 titles to reflect renamed directories (actions/, design/)
- Fix broken relative links in workflow.md after directory moves
- Fix full-path link texts in services.md (style.css.md, javascript.js.md)
- Fix broken principles.md link to lint.md after testing/ → actions/testing/ move

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 21:06:17 +02:00
Environment TestandClaude Sonnet 4.6 08bb7fefc0 refactor(docs): move code/tests → contributing/testing, lint tests to lint/ansible, apply documentation.md rules
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 19:55:25 +02:00
Environment TestandClaude Sonnet 4.6 eebb3b9788 refactor(utils): move utils/docker/image_*.py into utils/docker/image/ subpackage
- Move image_discovery.py → utils/docker/image/discovery.py
- Move image_ref.py → utils/docker/image/ref.py
- Add utils/docker/image/__init__.py
- Update all imports and references across cli/, tests/, utils/, and docs/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 19:00:02 +02:00
Environment TestandClaude Sonnet 4.6 9ea2ad6ff1 refactor(docker): introduce utils/docker/image_discovery as single SPOT for image enumeration
- Move iter_role_images + all helpers + ImageRef from cli/mirror/util.py and
  cli/mirror/model.py into utils/docker/image_discovery.py; add source_file field
  to ImageRef to distinguish config/main.yml vs vars/main.yml entries
- Delete cli/mirror/util.py; update all callers to import from utils.docker.image_discovery
- Move utils into subpackages: utils/docker/ (image_ref, paths_utils, hadolint) and
  utils/roles/ (dependency_resolver, resource_validation); update all imports
- Reorganise tests into subpackages: tests/lint/docker/dockerfile/, tests/integration/docker/,
  tests/unit/utils/docker/, tests/unit/utils/roles/; fix parents[N] offsets after relocation
- tests/lint/docker/test_image_versions.py now uses iter_role_images (same SPOT as mirror)
- Add vars/main.yml images.<name>.{image,version} support for non-application roles
  (test-e2e-playwright, sys-ctl-hlth-csp); eliminate hardcoded duplicates in defaults/tasks
- Add web-app-matrix matrix-chatgpt-bot and web-app-mini-qr mini-qr entries in config/main.yml;
  replace hardcoded image strings in vars/templates with lookup('config', ...) references
- Fix sync/__main__.py log line to use correct registry prefix for non-Docker-Hub images
- Update docs/contributing/code/role/dockerfile.md with image declaration rules and SPOT reference

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 19:32:31 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 eee3a4487c fix(tests): update shopware integration test for files/Dockerfile migration
The test was still pointing to templates/Dockerfile.j2 and checking for
Jinja2 syntax. Update path to files/Dockerfile and assertion to ARG/Docker
variable syntax after the Dockerfile.j2 → files/Dockerfile refactor.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 00:52:39 +02:00
kevinveenbirkenbach db44c998c2 fix codeql workflow coverage 2026-04-08 18:14:10 +02:00
kevinveenbirkenbach 3dc243fb0d fix dependabot coverage and environment test scripts 2026-04-08 18:01:42 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 72d3f4c23e docs(tests): add README.md to all test directories with links to SPOT docs
Replace stale unit test README with a pointer to the canonical unit.md guide.
Add index README to tests/ and per-directory READMEs for e2e, integration,
lint, and regression — each linking to the matching docs/contributing page.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 23:52:45 +02:00
kevinveenbirkenbach 60beb236a6 refactor(pixelfed): replace structural bootstrap test with code comments 2026-04-01 23:04:36 +02:00
kevinveenbirkenbach 5db1ff8e7f fix(services): resolve transitive shared asset dependencies 2026-04-01 23:01:09 +02:00
kevinveenbirkenbach 8141c4281a fix(pixelfed): stabilize bootstrap with managed entrypoint 2026-04-01 22:09:36 +02:00
kevinveenbirkenbach 9ccdde2b5b refactor(services): extract shared frontend service loader role 2026-04-01 04:05:44 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 a2d844e798 refactor: move frontend service loading out of sys-front-inj-all into global stage
Extracts the shared frontend service loader from sys-front-inj-all into
tasks/utils/load_services.yml and tasks/utils/_load_frontend_service.yml,
called once from tasks/stages/02_server.yml before web-svc and web-app
roles. This decouples service loading from per-app injection and makes
load order explicit via SERVICE_REGISTRY entry order. Updates docs,
comments, and adds an integration test enforcing the new SPOT.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 03:30:19 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 be341234bb feat: register web-app-mailu as 'email' service and enforce dependency
- Add 'email' key (role: web-app-mailu, type: frontend) to SERVICE_REGISTRY
- Declare compose.services.email with enabled: true and shared: true in all
  33 app roles that reference web-app-mailu or use SYSTEM_EMAIL_* variables
- Add integration test test_mailu_service_dependency.py that enforces this
  constraint for any future role additions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 01:13:56 +02:00
kevinveenbirkenbach 00193b4a23 Rename the canonical services map to SERVICE_REGISTRY 2026-03-31 21:43:29 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 ec2b513bde feat(config): enforce shared consistency for all enabled services
- Add shared: true to logout, oauth2, and greenlight services wherever
  enabled: true was set without a shared declaration
- Add # noqa: shared comment before role-local internal containers
  (redis, worker, web, opensearch, search) that are intentionally
  not shared
- Add missing enabled: false to ollama in svc-ai-ollama (shared was
  declared without enabled, violating the new consistency rule)
- Add integration test test_service_shared_consistency to enforce:
  Rule 1: enabled=true requires shared=true or a # noqa: shared comment
  Rule 2: shared key requires enabled key to be present

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 20:13:34 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 1241fa4011 style(tests): apply linter formatting to test_services_canonical.py
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 16:14:33 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 c74bd98969 feat(services): introduce canonical field for shared-role service entries
Adds canonical: cdn to css/javascript entries in 20_services.yml so that
role-based reverse lookup (web-svc-cdn → cdn) is deterministic. Updates
_build_role_to_key to use the canonical field. Adds an integration test
verifying bidirectional resolution and a lint test enforcing canonical
consistency rules (exactly one primary, no chaining, matching roles).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 15:58:54 +02:00
kevinveenbirkenbach b8a2b4337b Move web app playwright spec test to lint 2026-03-28 09:18:47 +01:00
kevinveenbirkenbach 327179b0c2 Format cancel pull request test path 2026-03-28 09:17:58 +01:00
kevinveenbirkenbach a67df006aa Fix stale cancel pull request test path 2026-03-28 09:10:45 +01:00
kevinveenbirkenbach 698f589a65 move todo transparency test to lint 2026-03-28 02:30:06 +01:00
kevinveenbirkenbach 507f1386a7 refactor: reorganize agent docs 2026-03-28 01:29:16 +01:00
kevinveenbirkenbach 4e05f4ddeb Move static checks to lint 2026-03-27 23:28:44 +01:00
kevinveenbirkenbach 50bde25f58 docs: move environment guides 2026-03-27 23:10:33 +01:00
kevinveenbirkenbach c2438c2b6a ci: reorganize PR resolver scripts 2026-03-27 15:17:17 +01:00
kevinveenbirkenbach 11149f3434 ci: gate PR workflow by file scope 2026-03-27 14:54:54 +01:00
kevinveenbirkenbach 4a9ae3b706 Deleted tests/integration/TODO.md 2026-03-27 14:09:31 +01:00
kevinveenbirkenbach 7b61f515f1 Refine TODO transparency warnings 2026-03-27 13:49:05 +01:00
kevinveenbirkenbach cd7f6f050a Add Dockerfile template warning test 2026-03-27 00:30:07 +01:00
kevinveenbirkenbach b4b863676c Fix cancellation of closed fork PR runs 2026-03-26 08:31:12 +01:00
kevinveenbirkenbach a2219a3af7 Add OIDC and OAuth2 mutual exclusion test 2026-03-26 02:39:12 +01:00
kevinveenbirkenbach 66bbffe963 Fix docker image reference scan hints 2026-03-25 19:24:53 +01:00
kevinveenbirkenbach 80d879c271 Ignore JS and JSON files in raw docker command test 2026-03-25 17:56:38 +01:00
kevinveenbirkenbach cc910167e9 Guard empty deploy matrices and ignore JSON docker scan 2026-03-25 15:44:56 +01:00
kevinveenbirkenbach 38cf91aaef Removed unneccessary warning emoji 2026-03-25 15:44:55 +01:00
kevinveenbirkenbach aa6b7de00d fix(shopware): pin secure build configuration 2026-03-25 15:44:55 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 ad7c3e29d1 style: apply ruff formatting to test_docker_image_versions.py
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 15:44:55 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 b075b480fc feat: add ghcr.io support and depth-aware version comparison
- Support docker.io/ prefix by stripping it and querying Docker Hub
- Add ghcr.io support via anonymous Bearer token flow (no secrets needed)
- Depth-aware version comparison: version: "15" compares only x tags,
  version: "8.3" only x.x tags, version: "2.12.0" only x.x.x tags

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 15:44:55 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 dc9ef23df8 feat: add Docker image version check integration test and CI workflow
- Add tests/integration/test_docker_image_versions.py that checks all
  roles/web-*/config/main.yml for outdated semver-compatible Docker image
  versions against Docker Hub
- Non-Docker-Hub images (ghcr.io etc.) are listed as unchecked with their
  current version
- Suppress individual checks with # nocheck: docker-version above version:
- GitHub Actions ::warning:: annotations are emitted in CI
- Add .github/workflows/test-docker-image-versions.yml as standalone workflow
- Integrate workflow into ci-orchestrator.yml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 15:44:54 +01:00
kevinveenbirkenbach 903fc897f4 Merge branch 'main' into feature/playwright-e2e-test 2026-03-24 21:44:11 +01:00
kevinveenbirkenbach 281b9cc081 docs: cleanup mailu administration guide and fix todo formatting 2026-03-23 23:59:21 +01:00
kevinveenbirkenbach 35130ec524 Merge branch 'main' into feature/playwright-e2e-test 2026-03-23 20:25:21 +01:00
kevinveenbirkenbach e0a163cf15 docs: cleanup mailu administration guide and fix todo formatting 2026-03-23 18:59:59 +01:00
kevinveenbirkenbach 289a05ac13 Merge branch 'main' into feature/lint 2026-03-23 10:23:08 +01:00
kevinveenbirkenbach 65abbb0695 Merge branch 'main' into feature/playwright-e2e-test 2026-03-22 23:09:03 +01:00
kevinveenbirkenbach f45e0b001e fix(codeql): resolve remaining python alerts 2026-03-21 11:06:59 +01:00
kevinveenbirkenbach 81a445cfe2 Annotate missing Playwright specs in CI 2026-03-21 11:00:43 +01:00
kevinveenbirkenbach 189267496d Rename module_utils package to utils 2026-03-21 02:05:39 +01:00
kevinveenbirkenbach 003a3a0b84 Merge branch 'main' into feature/lint
Resolve merge conflicts, keep the cleanup script move to scripts/image, and fix the resulting lint regressions.
2026-03-21 01:36:58 +01:00