Consolidate run & post playbooks for all tests
When zuul executes jobs it adds all the post plays together and executes them in the inherited sequence. This is causing some confusion in our cross-repo testing where the logs are trying to be collected twice as the cross-repo test is based on the standard functional test. Instead of defining two sets of plays we can consolidate them into a single set, eliminating the confusion and repetition. At the same time we also do not try to collect logs if the script to prepare them was not able to execute, and we fix the conditional for the ARA report generation so that it works properly with the value being given it by zuul which is a boolean word. To make sure it still works outside of Zuul we leave the conditional which uses the standard success return code of 0. Change-Id: Id5027415f33a7a41650332a983cb87fab7ba2a4a
This commit is contained in:
parent
56a4eb8ade
commit
05d3ff4f5a
@ -90,11 +90,11 @@ ${RSYNC_CMD} "${TESTING_HOME}/.ara/ansible.sqlite" "${WORKING_DIR}/logs/" || tru
|
||||
# when the test result is a failure. The ARA sqlite database is
|
||||
# still available for self generation if desired for successful
|
||||
# tests.
|
||||
if [[ "${TEST_EXIT_CODE}" != "0" ]]; then
|
||||
echo "Generating ARA report due to non-zero exit code (${TEST_EXIT_CODE})."
|
||||
if [[ "${TEST_EXIT_CODE}" != "0" ]] && [[ "${TEST_EXIT_CODE}" != "true" ]]; then
|
||||
echo "Generating ARA report."
|
||||
${ARA_CMD} "${WORKING_DIR}/logs/ara" || true
|
||||
else
|
||||
echo "Not generating ARA report due to test pass."
|
||||
echo "Not generating ARA report."
|
||||
fi
|
||||
|
||||
# Get a dmesg output so we can look for kernel failures
|
||||
|
@ -167,6 +167,4 @@
|
||||
of the ``tox_env`` variable. The OpenStack-Ansible repo
|
||||
to execute the tests from must be specified in the
|
||||
``osa_test_repo`` variable.
|
||||
run: zuul.d/playbooks/cross-repo-run.yml
|
||||
post-run: zuul.d/playbooks/cross-repo-post.yml
|
||||
nodeset: ubuntu-xenial
|
||||
|
@ -1,36 +0,0 @@
|
||||
---
|
||||
# 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: 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/git.openstack.org/{{ osa_test_repo }}"
|
||||
environment:
|
||||
TEST_EXIT_CODE: "{{ zuul_success }}"
|
||||
|
||||
- name: Copy logs back to the executor
|
||||
synchronize:
|
||||
src: "{{ ansible_user_dir }}/src/git.openstack.org/{{ osa_test_repo }}/logs/"
|
||||
dest: "{{ zuul.executor.log_root }}"
|
||||
mode: pull
|
@ -1,23 +0,0 @@
|
||||
---
|
||||
# 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: Run testing script
|
||||
shell: |
|
||||
./run_tests.sh {{ tox_env }}
|
||||
args:
|
||||
executable: "/bin/bash"
|
||||
chdir: "{{ ansible_user_dir }}/src/git.openstack.org/{{ osa_test_repo }}"
|
@ -15,6 +15,18 @@
|
||||
|
||||
- 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: |
|
||||
echo "TEST_EXIT_CODE: ${TEST_EXIT_CODE}"
|
||||
@ -25,12 +37,24 @@
|
||||
fi
|
||||
args:
|
||||
executable: "/bin/bash"
|
||||
chdir: "{{ ansible_user_dir }}/src/{{ zuul.project.canonical_name }}"
|
||||
chdir: "{{ ansible_user_dir }}/src/{{ current_test_repo }}"
|
||||
environment:
|
||||
TEST_EXIT_CODE: "{{ zuul_success }}"
|
||||
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/{{ zuul.project.canonical_name }}/logs/"
|
||||
src: "{{ ansible_user_dir }}/src/{{ current_test_repo }}/logs/"
|
||||
dest: "{{ zuul.executor.log_root }}"
|
||||
mode: pull
|
||||
when:
|
||||
- logs_folder.stat is defined
|
||||
- logs_folder.stat.exists | bool
|
||||
|
@ -15,9 +15,21 @@
|
||||
|
||||
- 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 testing script
|
||||
shell: |
|
||||
./run_tests.sh {{ tox_env }}
|
||||
args:
|
||||
executable: "/bin/bash"
|
||||
chdir: "{{ ansible_user_dir }}/src/{{ zuul.project.canonical_name }}"
|
||||
chdir: "{{ ansible_user_dir }}/src/{{ current_test_repo }}"
|
||||
|
Loading…
Reference in New Issue
Block a user