Kevin Veen-Birkenbach 53e5c563ae
Refactor MIG build process to run asynchronously with optional wait control
- Moved MIG data build commands into a dedicated 02_build_data.yml task file.
- Added async execution (async: 3600, poll: 0) for non-blocking build.
- Introduced mig_wait_for_build variable to optionally wait for completion.
- Added debug message to inform how to disable waiting via build_data.wait_for=false for performance.
- Updated config to use nested build_data.enabled and build_data.wait_for structure.
- Adjusted variable lookups accordingly.

https://chatgpt.com/share/689b54d2-e3b0-800f-91df-939ebc5e12ef
2025-08-12 16:51:24 +02:00

39 lines
1.2 KiB
YAML

- name: Build data (single async task)
shell: |
set -euo pipefail
infinito build tree --no-signal --alarm-timeout 0 -s {{ mig_roles_meta_volume }}
infinito build roles_list --no-signal --alarm-timeout 0 -o {{ mig_roles_meta_list }}
async: 3600
poll: 0
register: mig_build_job
- name: Fail if MIG build job did not start
fail:
msg: >
MIG build job failed to start. No job ID returned.
when: mig_build_job.ansible_job_id is not defined
- name: Debug MIG build job ID
debug:
msg: "MIG build job started with ID: {{ mig_build_job.ansible_job_id }}"
when: enable_debug | bool
- debug:
msg: "Waiting for MIG build job to finish. Set 'build_data.wait_for=false' in the application config to skip waiting and improve performance."
when: mig_wait_for_build | bool
- name: Wait for MIG build job to finish (enforce failure)
async_status:
jid: "{{ mig_build_job.ansible_job_id }}"
register: mig_build_result
until: mig_build_result.finished
retries: 360
delay: 10
when:
- mig_wait_for_build | bool
failed_when:
- mig_build_result.result is defined
- mig_build_result.result.rc is defined
- mig_build_result.result.rc != 0