From 0bca9f21e9fe801c358e6843f220e7aa6926071e Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Wed, 12 Mar 2025 14:12:10 +0200 Subject: [PATCH] improve rescue handling with logs and chroot cleanup --- data/ansible/deb_packages/main.yaml | 49 ++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/data/ansible/deb_packages/main.yaml b/data/ansible/deb_packages/main.yaml index 93f26f31a..9e89369ce 100644 --- a/data/ansible/deb_packages/main.yaml +++ b/data/ansible/deb_packages/main.yaml @@ -214,19 +214,58 @@ with_items: "{{ package_files.files }}" rescue: - - name: Find files in incoming directory + - name: Find all files in incoming directory ansible.builtin.find: paths: /var/packages/debian/incoming file_type: file - register: debug_files + register: all_incoming_files - - name: Display files + - name: Display files for debugging ansible.builtin.debug: - msg: "{{ debug_files.files | map(attribute='path') | list }}" + msg: "{{ all_incoming_files.files | map(attribute='path') | list }}" + + - name: Find build log files + ansible.builtin.find: + paths: /var/packages/debian/incoming + patterns: "*.build" + file_type: file + register: build_log_files + ignore_errors: true + + - name: Ensure log directory exists + become: true + ansible.builtin.file: + path: "/tmp/ansible_build_logs" + state: directory + mode: "0755" + ignore_errors: true + + - name: Copy build logs to a safe location + become: true + ansible.builtin.copy: + src: "{{ item.path }}" + dest: "/tmp/ansible_build_logs/{{ item.path | basename }}" + remote_src: true + with_items: "{{ build_log_files.files }}" + ignore_errors: true + when: build_log_files.matched > 0 + + - name: Remove chroot environments + become: true + ansible.builtin.file: + path: "/var/cache/pbuilder/base-{{ item.codename }}+go.cow" + state: absent + with_items: "{{ distributions }}" + + - name: Remove update timestamp + become: true + ansible.builtin.file: + path: "/var/cache/pbuilder/update-timestamp" + state: absent - name: Fail with error ansible.builtin.fail: - msg: "Task failed - see original error above" + msg: "Task failed - see original error above. Build logs saved to /tmp/ansible_build_logs/ if available." always: - name: Clean the incoming folder