stage-output: fix the archiving of all files

The archival task currently relies on the content of all_sources,
but some files are renamed afterwards if their extensions match
one of the special extension of the list.
This means that few files from all_sources are not found and then
not compressed.
Change then the logic: simply discover all files inside logs
and compress all of them.

Change-Id: I7d34d7d90849736b7b842c0bdd67492816f98ebc
This commit is contained in:
Luigi Toscano 2019-03-22 16:05:43 +01:00
parent a5dbe86b4b
commit d89f67aadf

View File

@ -88,18 +88,25 @@
tags: tags:
- skip_ansible_lint - skip_ansible_lint
# NOTE(andreaf) The ansible module does not support recursive archive, so - block:
# using gzip is the only option here. The good bit is that gzip itself is - name: Discover log files for compression
# almost idempotent, as it will not compress again files with .gz extension. find:
# gzip will however return 1 if any compressed file is encountered, so we paths: "{{ stage_dir }}/logs"
# must ignore that (there's no specific error code). recurse: true
- name: Archive everything from docs sources file_type: 'file'
shell: gzip --recursive --best {{ item.dest }} || true register: log_files_to_compress
args:
chdir: "{{ stage_dir }}" # NOTE(andreaf) The ansible module does not support recursive archive, so
with_items: "{{ all_sources }}" # using gzip is the only option here. The good bit is that gzip itself is
# almost idempotent, as it will not compress again files with .gz extension.
# gzip will however return 1 if any compressed file is encountered, so we
# must ignore that (there's no specific error code).
- name: Archive everything from logs
shell: gzip --recursive --best {{ item.path }} || true
args:
chdir: "{{ stage_dir }}/logs"
with_items: "{{ log_files_to_compress.files }}"
tags:
- skip_ansible_lint
when: when:
- stage_compress_logs - stage_compress_logs
- item.type == 'logs'
tags:
- skip_ansible_lint