e054c4410d
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
(cherry picked from commit 9b86311836
)
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
|