--- # Copyright 2017, Rackspace US, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - hosts: all tasks: - name: Set current test repo (cross-repo) set_fact: current_test_repo: "opendev.org/{{ osa_test_repo }}" when: - osa_test_repo is defined - name: Set current test repo (non-cross-repo) set_fact: current_test_repo: "{{ zuul.project.canonical_name }}" when: - osa_test_repo is not defined - name: Run log collection script shell: | echo "TEST_EXIT_CODE: ${TEST_EXIT_CODE}" if [[ -d "tests/common" ]]; then source tests/common/test-log-collect.sh else echo "The common tests repo has not been cloned yet. Logs cannot be collected without it." fi args: executable: "/bin/bash" chdir: "{{ ansible_user_dir }}/src/{{ current_test_repo }}" environment: TEST_EXIT_CODE: "{{ zuul_success | lower }}" - name: Check whether a logs folder exists stat: path: "{{ ansible_user_dir }}/src/{{ current_test_repo }}/logs" get_attributes: no get_checksum: no get_md5: no get_mime: no register: logs_folder - name: Copy logs back to the executor synchronize: src: "{{ ansible_user_dir }}/src/{{ current_test_repo }}/logs" dest: "{{ zuul.executor.log_root }}/" mode: pull rsync_opts: - "--quiet" when: - logs_folder.stat is defined - logs_folder.stat.exists | bool