From 1889339f2d578674f3696d2d0a79580ea3d8a63e Mon Sep 17 00:00:00 2001 From: Ryan Westfall Date: Sat, 25 Jul 2026 07:52:32 -0500 Subject: [PATCH] Fail loud when --app/--env matches nothing. 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 --- roles/app-deploy/tasks/main.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/roles/app-deploy/tasks/main.yml b/roles/app-deploy/tasks/main.yml index e8a87b3..761547e 100644 --- a/roles/app-deploy/tasks/main.yml +++ b/roles/app-deploy/tasks/main.yml @@ -24,6 +24,29 @@ ansible.builtin.debug: msg: "ref={{ app_ref | default('(per-app default branch)') }} targets={{ deploy_targets | map(attribute='name') | zip(deploy_targets | map(attribute='env')) | list }}" +# Explicit --app/--env with no host_apps match used to silently no-op Django +# and still refresh web-static (looked like a "static-only" deploy). Fail loud. +- name: Fail when requested app+env is not on this host + ansible.builtin.fail: + msg: >- + No host_apps entry for app={{ app }} env={{ app_env }} on + {{ inventory_hostname }}. Check inventory/host_vars and app_catalog + (django apps need type: django + compose_file). Catalog keys: + {{ app_catalog.keys() | list }}. + when: + - app is defined + - app_env is defined + - deploy_targets | length == 0 + +- name: Fail when requested app missing from app_catalog + ansible.builtin.fail: + msg: >- + app={{ app }} is not in app_catalog. Add it with type: django (docker) + or type: node-static. Known: {{ app_catalog.keys() | list }}. + when: + - app is defined + - app not in app_catalog + - name: Deploy Django (docker compose) apps ansible.builtin.include_tasks: django.yml loop: "{{ deploy_targets | selectattr('name', 'in', django_names) | list }}"