CI: route trinket FTs to test-FTs-room stage alongside game_room_*
All checks were successful
ci/woodpecker/push/pyswiss Pipeline was successful
ci/woodpecker/push/main Pipeline was successful

User ask: ensure trinket FTs (test_trinket_carte_blanche.py, test_trinket_coin_on_a_string.py, test_trinket_backstage_pass.py) run in the room-stage CI bucket so they exercise the same room-template surface as test_game_room_* — relevant when a sprint touches the table hex SCSS / chair geometry / gatekeeper flow, since trinket FTs create rooms + walk thru the gate. Previously they fell into test-FTs-non-room by elimination (the non-room glob was `grep -v 'test_game_room_'`) ; main.yaml updates: non-room step's grep is now `-vE 'test_(game_room|trinket)_'` to exclude both clusters; room step's ls now globs BOTH `test_game_room_*.py` AND `test_trinket_*.py` ; companion memory tweak in feedback_ft_naming_prefix.md documents the new convention so future trinket FTs end up in the right bucket without re-asking ; pipeline behavior unchanged otherwise — both steps still depend_on test-two-browser-FTs only, parallel re-enable still blocked by the shared-sqlite issue from 2026-05-12 (cf. memo note)

Code architected by Disco DeDisco <discodedisco@outlook.com>
Git commit message Co-Authored-By:
Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-05-18 19:41:37 -04:00
parent 5e5bc5a6af
commit df9cf1eee8

View File

@@ -107,10 +107,11 @@ steps:
commands:
- pip install -r requirements.dev.txt
- cd ./src
# Every FT file EXCEPT test_game_room_* — that cluster runs in
# test-FTs-room. Channels + two-browser tags already covered upstream.
# `ls | grep -v | sed` enumerates module dotted-paths from filenames.
- python manage.py test --exclude-tag=channels --exclude-tag=two-browser $(ls functional_tests/test_*.py | grep -v 'test_game_room_' | sed 's|/|.|g;s|\.py||')
# Every FT file EXCEPT test_game_room_* and test_trinket_* — both
# clusters run in test-FTs-room. Channels + two-browser tags already
# covered upstream. `ls | grep -v | sed` enumerates module dotted-paths
# from filenames.
- python manage.py test --exclude-tag=channels --exclude-tag=two-browser $(ls functional_tests/test_*.py | grep -vE 'test_(game_room|trinket)_' | sed 's|/|.|g;s|\.py||')
when:
- event: push
path:
@@ -137,11 +138,14 @@ steps:
commands:
- pip install -r requirements.dev.txt
- cd ./src
# Heavy Selenium room flows — 9 files (deck_contrib, gatekeeper,
# invite, select_role/sea/sig/sky, tray, tray_tooltip) isolated
# into their own sub-step. Runs in parallel w. test-FTs-non-room
# Heavy Selenium room flows — test_game_room_* (deck_contrib,
# gatekeeper, invite, select_role/sea/sig/sky, tray, tray_tooltip)
# AND test_trinket_* (carte_blanche, coin_on_a_string, backstage_pass)
# since trinket FTs create rooms + load the room template (where the
# table hex SCSS + chair geometry live), so they exercise the same
# surface as test_game_room_*. Runs in parallel w. test-FTs-non-room
# (distinct DATABASE_URL paths under /tmp; see split-rationale).
- python manage.py test --exclude-tag=channels --exclude-tag=two-browser $(ls functional_tests/test_game_room_*.py | sed 's|/|.|g;s|\.py||')
- python manage.py test --exclude-tag=channels --exclude-tag=two-browser $(ls functional_tests/test_game_room_*.py functional_tests/test_trinket_*.py | sed 's|/|.|g;s|\.py||')
when:
- event: push
path: