ansible block w/ error handling was incorrect: the first block failed when tempest executed, then the second one (which creates stackviz) never got executed. It also includes in the block assertion to check if tempest failed (this is actually redundant check, not really needed). Change-Id: Ie99060fce29f35ced77efb7b29b8f5f6e37abbcd Closes-Bug: #1905460
149 lines
4.6 KiB
YAML
149 lines
4.6 KiB
YAML
---
|
|
# Copyright 2016, 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.
|
|
|
|
- block:
|
|
- name: Execute tempest tests
|
|
shell: |
|
|
set -e
|
|
if [ -d {{ tempest_venv_bin }} ];
|
|
then
|
|
. {{ tempest_venv_bin }}/activate
|
|
fi
|
|
tempest run \
|
|
{% if tempest_run_concurrency is defined %}
|
|
--concurrency {{ tempest_run_concurrency }} \
|
|
{% else %}
|
|
--serial \
|
|
{% endif %}
|
|
{% if tempest_test_worker_file_path is defined %}
|
|
--worker-file {{ tempest_test_worker_file_path }} \
|
|
{% endif %}
|
|
{% if tempest_test_blacklist | length > 0 %}
|
|
--blacklist-file {{ tempest_test_blacklist_file_path }} \
|
|
{% endif %}
|
|
--whitelist-file {{ tempest_test_whitelist_file_path }} > {{ tempest_log_dir }}/tempest_run.log
|
|
args:
|
|
chdir: "{{ tempest_workspace }}"
|
|
executable: /bin/bash
|
|
changed_when: false
|
|
register: tempest_tests_run
|
|
tags:
|
|
# don't trigger ANSIBLE0013
|
|
- skip_ansible_lint
|
|
|
|
always:
|
|
- name: Generate raw subunit results
|
|
# Despite not using testrepository, we leave the output filename as
|
|
# testrepository.subunit as the OpenStack Health dashboard relies on
|
|
# subunit files with this particular name.
|
|
# NOTE(mattt): At present we're not placing this file in a valid location
|
|
# to be used by the OpenStack Health dashboard.
|
|
shell: |
|
|
set -e
|
|
if [ -d {{ tempest_venv_bin }} ];
|
|
then
|
|
. {{ tempest_venv_bin }}/activate
|
|
fi
|
|
{{ stestr_executable }} last --subunit > {{ tempest_log_dir }}/testrepository.subunit
|
|
args:
|
|
chdir: "{{ tempest_workspace }}"
|
|
executable: /bin/bash
|
|
changed_when: false
|
|
failed_when: false
|
|
tags:
|
|
# don't trigger ANSIBLE0013
|
|
- skip_ansible_lint
|
|
|
|
- name: Generate xml subunit results
|
|
shell: |
|
|
set -e
|
|
if [ -d {{ tempest_venv_bin }} ];
|
|
then
|
|
. {{ tempest_venv_bin }}/activate
|
|
fi
|
|
subunit2junitxml {{ tempest_log_dir }}/testrepository.subunit > {{ tempest_log_dir }}/tempest_results.xml
|
|
args:
|
|
chdir: "{{ tempest_workspace }}"
|
|
executable: /bin/bash
|
|
changed_when: false
|
|
failed_when: false
|
|
tags:
|
|
# don't trigger ANSIBLE0013
|
|
- skip_ansible_lint
|
|
|
|
- name: Generate html subunit results
|
|
shell: |
|
|
set -e
|
|
if [ -d {{ tempest_venv_bin }} ];
|
|
then
|
|
. {{ tempest_venv_bin }}/activate
|
|
fi
|
|
subunit2html {{ tempest_log_dir }}/testrepository.subunit {{ tempest_log_dir }}/stestr_results.html
|
|
args:
|
|
chdir: "{{ tempest_workspace }}"
|
|
executable: /bin/bash
|
|
changed_when: false
|
|
failed_when: false
|
|
tags:
|
|
# don't trigger ANSIBLE0013
|
|
- skip_ansible_lint
|
|
|
|
- name: Generate test-list file
|
|
shell: |
|
|
set -e
|
|
if [ -d {{ tempest_venv_bin }} ];
|
|
then
|
|
. {{ tempest_venv_bin }}/activate
|
|
fi
|
|
tempest run \
|
|
--whitelist-file {{ tempest_test_whitelist_file_path }} \
|
|
{% if tempest_test_blacklist | length > 0 %}
|
|
--blacklist-file {{ tempest_test_blacklist_file_path }} \
|
|
{% endif %}
|
|
--list-tests &> {{ tempest_log_dir }}/test_list.txt
|
|
args:
|
|
chdir: "{{ tempest_workspace }}"
|
|
executable: /bin/bash
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
# Copy module doesn't copy recursively with remote_src set to true
|
|
- name: Copy stackviz-html to home directory
|
|
shell: |
|
|
cp -r {{ stackviz_venv_bin | dirname }}/share/stackviz-html {{ tempest_log_dir }}/stackviz
|
|
args:
|
|
executable: /bin/bash
|
|
tags:
|
|
# don't trigger ANSIBLE0013
|
|
- skip_ansible_lint
|
|
when: tempest_run_stackviz | bool
|
|
|
|
- name: Collecting data from tempest run
|
|
shell: |
|
|
. {{ stackviz_venv_bin }}/activate
|
|
stackviz-export -f {{ tempest_log_dir }}/testrepository.subunit --env {{ tempest_log_dir }}/stackviz/data
|
|
args:
|
|
chdir: "{{ tempest_workspace }}"
|
|
executable: /bin/bash
|
|
tags:
|
|
# don't trigger ANSIBLE0013
|
|
- skip_ansible_lint
|
|
when: tempest_run_stackviz | bool
|
|
|
|
- name: Fail if tempest tests did not succeed
|
|
assert:
|
|
that:
|
|
- "tempest_tests_run.rc == 0"
|