Fail when --app / --env match no host_apps row (was silent no-op)
Fail when --app missing from app_catalog
Prevents "deploy succeeded" that only refreshed web-static nginx while skipping Django — what happened on chat_backend run 205 before chat_backend was registered on master.
Test plan
./scripts/deploy.sh --app does_not_exist --env prod should fail with catalog message
./scripts/deploy.sh --app chat_backend --env prod should proceed with Django once catalog/host_apps present
## Summary
- Fail when `--app` / `--env` match no `host_apps` row (was silent no-op)
- Fail when `--app` missing from `app_catalog`
Prevents "deploy succeeded" that only refreshed web-static nginx while skipping Django — what happened on [chat_backend run 205](https://git.aimloperations.com/ai_ml_operations/chat_backend/actions/runs/205) before `chat_backend` was registered on master.
## Test plan
- [ ] `./scripts/deploy.sh --app does_not_exist --env prod` should fail with catalog message
- [ ] `./scripts/deploy.sh --app chat_backend --env prod` should proceed with Django once catalog/host_apps present
Explicit deploys with empty host_apps used to skip Django and still
refresh web-static, which looked like a static-only deploy.
Co-authored-by: Cursor <cursoragent@cursor.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
--app/--envmatch nohost_appsrow (was silent no-op)--appmissing fromapp_catalogPrevents "deploy succeeded" that only refreshed web-static nginx while skipping Django — what happened on chat_backend run 205 before
chat_backendwas registered on master.Test plan
./scripts/deploy.sh --app does_not_exist --env prodshould fail with catalog message./scripts/deploy.sh --app chat_backend --env prodshould proceed with Django once catalog/host_apps present