Add stop.sh (compose down) and disable print_forge.
Sync runner checkout / sync (pull_request) Successful in 6s

Closes #33. Deploy skips host_apps.enabled: false so CI cannot resurrect a stopped app.
This commit is contained in:
2026-09-16 05:05:41 -05:00
parent 94fa05a952
commit 61382c254d
15 changed files with 307 additions and 29 deletions
+72
View File
@@ -0,0 +1,72 @@
---
# Compose-down one Django app+env. Called per item with loop_var app_item.
# No `down -v` — volumes stay. Checkout and secrets stay.
- name: "stop[{{ app_item.name }}/{{ app_item.env }}] locals"
ansible.builtin.set_fact:
_spec: "{{ app_catalog[app_item.name] }}"
_src: "{{ apps_src_dir }}/{{ app_item.name }}_{{ app_item.env }}"
_project: "{{ app_item.name }}_{{ app_item.env }}"
- name: "stop[{{ _project }}] checkout dir"
ansible.builtin.stat:
path: "{{ _src }}"
register: _src_stat
- name: "stop[{{ _project }}] compose file"
ansible.builtin.stat:
path: "{{ _src }}/{{ _spec.compose_file }}"
register: _compose_stat
when: _src_stat.stat.exists
- name: "stop[{{ _project }}] env file"
ansible.builtin.stat:
path: "{{ _src }}/.env"
register: _env_stat
when: _src_stat.stat.exists
- name: "stop[{{ _project }}] use compose down"
ansible.builtin.set_fact:
_use_compose: "{{ _src_stat.stat.exists and _compose_stat is defined and _compose_stat.stat.exists }}"
- name: "stop[{{ _project }}] compose down"
ansible.builtin.command:
cmd: >-
docker compose -f {{ _spec.compose_file }}
{{ '--env-file .env' if (_env_stat is defined and _env_stat.stat.exists) else '' }}
down
chdir: "{{ _src }}"
environment:
COMPOSE_PROJECT_NAME: "{{ _project }}"
WEB_PORT: "{{ app_item.port }}"
COMPOSE_PROFILES: "{{ (app_item.compose_profiles | default([])) | join(',') }}"
become: true
become_user: "{{ admin_user }}"
when: _use_compose | bool
changed_when: true
- name: "stop[{{ _project }}] find leftover project containers"
ansible.builtin.command:
cmd: docker ps -aq --filter label=com.docker.compose.project={{ _project }}
register: _leftovers
changed_when: false
become: true
when: not (_use_compose | bool)
- name: "stop[{{ _project }}] remove leftover project containers"
ansible.builtin.command:
cmd: "docker rm -f {{ _leftovers.stdout_lines | join(' ') }}"
become: true
when:
- not (_use_compose | bool)
- _leftovers is defined
- _leftovers.stdout_lines | length > 0
changed_when: true
- name: "stop[{{ _project }}] nothing to stop (no checkout)"
ansible.builtin.debug:
msg: "no checkout at {{ _src }} and no containers for project {{ _project }}"
when:
- not (_use_compose | bool)
- _leftovers is defined
- _leftovers.stdout_lines | length == 0