| name | local-build-queue |
| description | ОБЯЗАТЕЛЬНО перед любой локальной сборкой movieplanner-mobile (IPA, AAB, APK). Одна сборка на Mac, очередь, проверка что другой чат/агент уже не собирает. Use when user asks «собери ipa», «aab», «локальная сборка», «build app», or agent is about to run eas-build-ios, build-play-aab, gradlew, xcodebuild. |
Локальные сборки — очередь (один Mac, одна сборка)
Жёсткое правило
Никогда не запускать две локальные сборки параллельно — ни в одном чате, ни в разных.
iOS (eas build --local, xcodebuild) и Android (gradlew bundleRelease) вместе тоже нельзя.
Перед стартом — всегда проверить очередь. Если занято — ждать или сообщить пользователю, не стартовать вторую.
Проверка (каждый раз)
bash /Users/nikitazaporohzets/Desktop/Кино/movieplanner-mobile/scripts/local-build-lock.sh status
IDLE — можно собирать (после acquire).
BUSY — не запускать новую сборку; wait или дождаться в том же терминале.
Быстрая ручная проверка:
pgrep -fl 'eas build.*--local|xcodebuild|gradlew (bundleRelease|assembleRelease)|build-testflight-ipa|build-play-aab'
Если что-то есть — сборка уже идёт.
Порядок работы агента
status — если BUSY, не плодить процессы; при необходимости wait (до 2 ч).
acquire "ios-testflight" (или android-play, android-rustore) — взять lock.
- Одна команда сборки (см. скиллы iOS/Android).
release — в trap или после успеха/ошибки.
- Следующая платформа/артефакт — только после
release и IDLE.
Обёртка (предпочтительно)
Скрипты build-ios-xcode-ipa.sh, eas-build-ios.sh, build-testflight-ipa.sh, build-play-aab.sh, build-rustore-aab.sh сами берут lock — агент вызывает только их, не дублирует eas build / xcodebuild вручную без скрипта.
Запрещено
- Два
eas build --local одновременно (даже «в фоне» из другого чата).
- iOS + Android параллельно «чтобы быстрее».
- Запуск сборки, не глянув
local-build-lock.sh status.
- Несколько background shell с build-командами — максимум один активный build shell.
Несколько артефактов (IPA + Play AAB + RuStore)
Строго по очереди:
- iOS IPA → дождаться конца →
copy-release-artifacts.sh
- Play AAB → дождаться конца → copy
- RuStore AAB → …
Если пользователь ругается «комп в кирпич»
local-build-lock.sh status + pgrep — показать, что крутится.
- Не стартовать новую сборку.
- Лишние дубли (если два eas) — убить только дубликаты, одну оставить только по согласованию с пользователем.
Связанные скиллы
- iOS подпись (Share Extension):
movieplanner-mobile/.cursor/skills/ios-xcode-ipa-signing/SKILL.md
- iOS:
.cursor/skills/local-ios-build-movieplanner-mobile/SKILL.md
- Android:
.cursor/skills/local-android-build-movieplanner-mobile/SKILL.md
- Правило:
.cursor/rules/mobile-local-build-default.mdc