zuul-jobs/roles/upload-logs/tasks/main.yaml
Ian Wienand af3f79121a
linter: Use capitals for names
This is pretty trivial, but consistency is probably better in this
regard and it does guide you to writing a sentence that is human
parsable, which is the point of it.

Change-Id: Iaab9bb6aec0ad0f1d3cae10364c1f1b37d02801e
2022-11-07 10:37:53 +11:00

86 lines
2.6 KiB
YAML

- name: Set zuul-log-path fact
include_role:
name: set-zuul-log-path-fact
# Always upload (true), never upload (false) or only on failure ('failure')
- name: Upload logs
when: zuul_site_upload_logs | default(true) | bool or
(zuul_site_upload_logs == 'failure' and not zuul_success | bool)
block:
- name: Create log directories
file:
path: "{{ zuul_logserver_root }}/{{ zuul_log_path }}"
state: directory
recurse: yes
mode: 0775
# Use chmod instead of file because ansible 2.5 file with recurse and
# follow can't really handle symlinks to .
- name: Ensure logs are readable before uploading
delegate_to: localhost
command: "chmod -R u=rwX,g=rX,o=rX {{ zuul.executor.log_root }}/"
# ANSIBLE0007 chmod used in place of argument mode to file
tags:
- skip_ansible_lint
- name: Upload logs to log server
synchronize:
src: "{{ zuul.executor.log_root }}/"
dest: "{{ zuul_logserver_root }}/{{ zuul_log_path }}/"
owner: no
group: no
rsync_opts:
- "--exclude=job-output.txt"
- "--exclude=job-output.json"
no_log: "{{ not zuul_log_verbose }}"
# After this point there are no more logs
- name: Compress console log and json output
delegate_to: localhost
archive:
path: "{{ zuul.executor.log_root }}/{{ zj_log }}"
mode: 0644
with_items:
- job-output.txt
- job-output.json
loop_control:
loop_var: zj_log
when: zuul_log_compress | bool
- name: Upload compressed console log and json output
synchronize:
src: "{{ zuul.executor.log_root }}/{{ zj_log }}.gz"
dest: "{{ zuul_logserver_root }}/{{ zuul_log_path }}/{{ zj_log }}.gz"
verify_host: true
owner: no
group: no
with_items:
- job-output.txt
- job-output.json
loop_control:
loop_var: zj_log
when: zuul_log_compress | bool
- name: Upload console log and json output
synchronize:
src: "{{ zuul.executor.log_root }}/{{ zj_log }}"
dest: "{{ zuul_logserver_root }}/{{ zuul_log_path }}/{{ zj_log }}"
verify_host: true
owner: no
group: no
with_items:
- job-output.txt
- job-output.json
loop_control:
loop_var: zj_log
when: not zuul_log_compress | bool
- name: Return log URL to Zuul
delegate_to: localhost
zuul_return:
data:
zuul:
log_url: "{{ zuul_log_url }}/{{ zuul_log_path }}/"
when: zuul_log_url is defined