Files
computer-playbook/tests/unit/utils/annotations
kevinveenbirkenbachandClaude Opus 4.7 478d0679dd refactor(roles): drop compose-nocheck flags + extract include-gated sub-tasks
Refactors four roles that previously used `# nocheck: compose-chdir-in-task` /
`compose-verb-in-task` / `container-exec-resolver` markers to follow the
canonical swarm-aware pattern:

- web-app-bigbluebutton: adds BBB_POSTGRES_CONTAINER_ADDRESS /
  BBB_GREENLIGHT_CONTAINER_ADDRESS vars; 02a_postgres_password_sync.yml +
  03_administrator.yml use `container exec -i {{ ..._CONTAINER_ADDRESS | quote }}`;
  02_compose.yml's compose-build-phase tasks (generate-compose +
  prebuild etherpad) move into the new
  02b_bootstrap_compose_project.yml (>3 entries cannot live in a block)
  under a single `when: DEPLOYMENT_MODE \!= "swarm"` include guard.
- web-app-baserow: BASEROW_APP_CONTAINER_ADDRESS var + 02_manager_ops.yml
  converted to container exec + container restart canonical pattern.
- web-app-matomo: MATOMO_APP_CONTAINER_ADDRESS var; 07_patch_database.yml
  swaps MATOMO_LOCAL_CID for the proper resolver-backed address.
- web-app-matrix: 01_docker.yml's two consecutive `compose pull` /
  `compose up` tasks extract into 03_compose_pull_and_up.yml (with the new
  `# include-gated: when: DEPLOYMENT_MODE \!= "swarm"` header marker) and
  the previous 03_webserver.yml renames to 04_webserver.yml to keep the
  numeric file sequence contiguous.

Supporting lint infrastructure changes so file-level include-gated
sub-task lists survive the swarm-compat lints:

- utils/annotations/task_gate.py: `is_task_compose_only_gated` now walks
  up nested parent blocks (a single `when: DEPLOYMENT_MODE \!= 'swarm'`
  on `- block:` exempts every child task underneath) and a new
  `is_file_compose_only_by_header` recognises files declaring
  `# include-gated: when: DEPLOYMENT_MODE \!= "swarm"` in their first
  five lines as compose-only-by-include.
- tests/lint/ansible/shell/test_no_compose_chdir_in_shell_tasks.py and
  test_no_compose_verb_in_shell_tasks.py call the header helper before
  the per-line scan, so include-only sub-files are exempt.
- tests/unit/utils/annotations/test_task_gate.py covers both new
  behaviours (recursive parent walk plus file header) end-to-end.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-14 19:08:46 +02:00
..