| name | deploy-movie-planner |
| description | Деплой Movie Planner: bot/site через safe-prod-deploy (PR→main→Railway), мобилка — локальная EAS-сборка. Токены, smoke, /api/app/release. Триггеры: задеплой, пуш в прод, Railway, EAS build. |
Деплой Movie Planner
Репозитории
| Что | Путь на диске (типично) | GitHub |
|---|
| Бот, веб, Mini App | movie_planner_bot | zapnikita95/movie_planner_bot |
| Сайт / кабинет | movie_planner_bot/movie_planner_site | zapnikita95/movie_planner_site |
| Android / Expo | Кино/movieplanner-mobile | zapnikita95/movieplanner-mobile |
Бот и веб (Railway) — только через PR
Канон: skill safe-prod-deploy.
- Прод = ветка
main на GitHub → Railway.
- Агент не делает
git push origin main с кодом.
- Поток: ветка → self-review → PR → merge → smoke.
Токен для push feature-ветки: GITHUB_TOKEN в .env корня movie_planner_bot.
export GITHUB_TOKEN=$(grep '^GITHUB_TOKEN=' .env | cut -d= -f2-) && \
git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/zapnikita95/movie_planner_bot.git" && \
git push -u origin HEAD && \
git remote set-url origin git@github.com:zapnikita95/movie_planner_bot.git
Секреты бота — в Railway Variables, не в репо.
После merge в main
bash scripts/smoke_home_prod.sh
curl -sS -m 20 "https://movie-planner.ru/api/app/release?refresh=1" | python3 -m json.tool
(Аpex movie-planner.ru, не api.*.)
Сайт (movie_planner_site)
Тот же PR-процесс в своём git-репо. После merge Railway proxy подтянет raw/jsDelivr; при необходимости — redeploy web.
Мобильное приложение
- Код:
movieplanner-mobile.
- По умолчанию — локальная сборка (
LOCAL=1). Облачный EAS — только по явной просьбе.
- Очередь:
.cursor/skills/local-build-queue/SKILL.md.
- Пуш мобильного репо: желательно тоже ветка → PR → main; техника remote —
push-to-github-myself.
Локальная сборка (основной путь)
См. .cursor/rules/mobile-local-build-default.mdc и skills local-ios-build-movieplanner-mobile / local-android-build-movieplanner-mobile.
Артефакты после ./scripts/copy-release-artifacts.sh:
MoviePlanner-release.ipa
MoviePlanner-release.aab (Play)
MoviePlanner-RuStore-release.aab (RuStore)
Важно
- Не вставлять секреты из
.env в чат и не коммитить .env.
- Mini App кэширует статику — при изменениях в
index.html поднимать ?v= у app.js / style.css.
- Перед закрытием задачи —
verify-push-deploy: PR merged, main на origin содержит коммит.