| - 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 |