9b86311836
Currently the ARA database is not collected after each test, nor is the reporting done as it should be. This patch does the following to resolve that: 1. Informs the log collection to collect to and from the right source folder. 2. Verifies that the logs directory exists to ensure that a missing directory does not cause the job to fail. 3. Makes the log collection quiet, so that only errors are reported when pulling them back to the zuul executor. 4. Removes a layer of indirection by making zuul use the scripts library directly instead of working through yet another wrapper script. 5. Sets the exit code properly so that the ARA report is run on test execution failure. Change-Id: Ie8da165a33180d03c840a69dae0aa5f424a69e50
65 lines
2.1 KiB
YAML
65 lines
2.1 KiB
YAML
---
|
|
# Copyright 2017, Logan Vig <logan2211@gmail.com>
|
|
#
|
|
# 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: "git.openstack.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: |
|
|
source scripts/scripts-library.sh
|
|
gate_job_exit_tasks
|
|
become: yes
|
|
become_user: root
|
|
args:
|
|
chdir: "{{ ansible_user_dir }}/src/{{ current_test_repo }}"
|
|
executable: /bin/bash
|
|
environment:
|
|
# ZUUL_PROJECT is used by the log collection functions to enable
|
|
# log collection configuration specific to OpenStack CI
|
|
ZUUL_PROJECT: "{{ zuul.project.short_name }}"
|
|
TEST_EXIT_CODE: "{{ zuul_success | lower }}"
|
|
GATE_LOG_DIR: "{{ ansible_user_dir }}/src/{{ current_test_repo }}/logs"
|
|
|
|
- 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
|