openstack-ansible-tests/zuul.d/playbooks/post.yml

63 lines
2.0 KiB
YAML

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